HPDFCreateXPSDocumentHandler Function
function HPDFCreateXPSDocumentHandler: IHPDFDocumentHandler;
Tworzy opcjonalny handler stałostronicowych XPS i OpenXPS z uporządkowanym tekstem Glyphs i natywną konwersją wektorowych Path
Importer ścieżek przyjmuje ograniczoną skróconą geometrię, reguły wypełniania F0 i F1, jednolite wypełnienia i obrysy ARGB oraz RGB z atrybutów lub elementów właściwości, wielostopowe wartości LinearGradientBrush i eliptyczne RadialGradientBrush z elementów właściwości, jednolitą alfę stopów, krycie pędzla i ścieżki, mapowanie gradientu względem granic lub bezwzględne, szerokość obrysu oraz sześcioparametrowe wartości RenderTransform
Pakietowe wypełnienia ImageBrush JPEG, PNG, TIFF i JPEG XR obsługują tryby kafelków None, Tile, FlipX, FlipY i FlipXY, mapowanie Viewbox i Viewport bezwzględne lub RelativeToBoundingBox, natywne przycinanie ścieżki i rozmieszczenia, skończone atrybuty Transform o sześciu parametrach albo elementy MatrixTransform ImageBrush.Transform we współrzędnych lokalnych pędzla, krycie pędzla i ścieżki, alfę miękkiej maski PNG, wewnętrzne wymiary świadome DPI oraz jedną pamięć podręczną zdekodowanych zasobów na konwersję
Powtarzane pędzle obrazów używają natywnych wzorów kafelkowania obrazów PDF z jednym, dwoma lub czterema przyciętymi rozmieszczeniami dla zwykłych lub odbitych komórek, przy czym jeden XObject obrazu i jego miękka maska pozostają współdzielone; macierze wzorów łączą transformacje stałej strony, ścieżki i pędzla bez zmiany geometrii wektorowej ścieżki
Path.OpacityMask przyjmuje maski jednolite, liniowe z wieloma stopami albo eliptyczne radialnych gradientów oraz maski PNG ImageBrush z rozmieszczeniem zwykłym, kafelkowym lub odbitym; jednolita alfa jest wchłaniana w istniejące stany wypełnienia i obrysu, a alfa zmienna używa ograniczonych natywnych grup przezroczystości DeviceGray, które ponownie używają wzorów cieniowania i strumieni miękkich masek obrazów
VisualBrush przyjmuje wizualia Canvas, Path i Glyphs inline lub oparte na zasobach, rozwiązuje wartości StaticResource przez zagnieżdżone i zdalne zakresy ResourceDictionary oraz mapuje bezwzględny Viewbox na bezwzględny Viewport lub RelativeToBoundingBox
Każdy odrębny wizual jest raz kompilowany do wielokrotnego użytku PDF Form XObject z wymaganymi zasobami czcionek, XObjectów, wzorów, stanu grafiki i przestrzeni kolorów; zwykłe rozmieszczenie wykonuje Form bezpośrednio, a Tile, FlipX, FlipY i FlipXY używają ograniczonych natywnych wzorów kafelkowania zamiast rozwijać polecenia rysowania wizualu per komórka
Transformacje i krycie wizualiów, pędzli oraz zawierającej ścieżki składają się we własnych przestrzeniach współrzędnych, natomiast rekurencyjne zasoby, wadliwe mapowania, nieobsługiwana zagnieżdżona zawartość oraz przekroczone budżety głębokości, zawartości, cache czy rozmieszczeń kończą się fail closed, zanim częściowy Form zostanie opublikowany
Canvas.Clip przyjmuje skróconą geometrię, wartości PathGeometry z lokalnych lub zdalnych StaticResource oraz bezpośrednie elementy właściwości zawierające ograniczone ustrukturyzowane segmenty PathFigure: linie, polilinie, Béziera, krzywe kwadratowe albo łuki; transformacje geometrii i reguły wypełniania EvenOdd lub NonZero składają się z transformacją Canvas przed natywnym przycinaniem PDF W* lub W
Zagnieżdżone przycięcia Canvas zachowują swoje przecięcie stanu grafiki PDF, ograniczają potomne adnotacje linków do aktywnych przekształconych granic przycięcia, traktują pustą geometrię jako puste przycięcie bez diagnostyki, ograniczają sparsowaną geometrię do 100,000 wartości liczbowych i kończą się fail closed przed malowaniem potomków, gdy geometria lub jej efektywna macierz jest wadliwa lub osobliwa
Opacity Canvas oraz jednolite, liniowo-gradientowe, radialno-gradientowe albo obrazowe PNG wartości Canvas.OpacityMask przechwytują potomków do jednego odizolowanego DeviceRGB Form XObject, więc nachodzące na siebie dzieci są komponowane przed nałożeniem alfy grupy; jednolita alfa maski jest wchłaniana w stan tej grupy, a alfa zmienna przestrzennie ponownie używa ograniczonych natywnych zasobów miękkich masek
Zagnieżdżone grupy Canvas zachowują własne transformacje, przycięcia, przekazane zasoby czcionek, XObjectów, wzorów, stanu grafiki i przestrzeni kolorów oraz przycięte linki; konwersja dopuszcza najwyżej 4,096 Formów grup Canvas i 16 MiB przechwyconych poleceń na grupę, a odrzuca zduplikowane, nieobsługiwane, wadliwe, osobliwe lub przewymiarowane maski przed opublikowaniem częściowych lub nieosiągalnych zasobów
Glyphs parsuje najwyżej 65,536 ścisłych mapowań Indices, zachowuje liczby jednostek kodu i glifów klastra, jawne advances w setnych em, przesunięcia poziome i pionowe, odwrotny bieg przy nieparzystym BidiLevel, jednolite pędzle z atrybutu lub właściwości Glyphs.Fill, krycie i ekstrakcję Unicode, grupuje proste mapowania w natywne tablice TJ PDF i kończy się fail closed przy wejściu wadliwym lub nieograniczonym
Pakietowe zasoby FontUri przyjmują programy TrueType i OpenType, fragmenty członków TTC oraz fonty XPS zaciemnione GUID, zachowują bezpośrednie wartości GlyphIndex lub glify wywiedzione z cmap, używają bajtów czcionek ponownie między przebiegami, respektują uprawnienia osadzania i zakaz subsettingu oraz publikują mapy ToUnicode świadome klastrów
FixedPage.NavigateUri na przekształconych wizualiach Path i Glyphs tworzy natywne adnotacje linków PDF, których granice kliknięcia podążają za geometrią ścieżki lub metrykami glifów; linki HTTP, HTTPS i mail stają się akcjami URI, a odniesienia stron względem pakietu i fragmenty LinkTarget zdekodowane z procentów stają się akcjami GoTo w przód lub w tył po utworzeniu wszystkich stron
FixedPage.NavigateUri Canvas jest dziedziczone przez potomne wizualia Path, Glyphs i zagnieżdżone Canvas, dopóki potomek go nie nadpisze; każda adnotacja zachowuje granice i transformację swojego wizualu, aktywne przycięcia Canvas ograniczają odziedziczone regiony kliknięcia, zagnieżdżone zakresy przywracają zewnętrzny cel, odizolowane grupy krycia zachowują adnotacje, a przechwytywanie do wielokrotnego użytku VisualBrush pozostaje nieinteraktywne
Nawigacja przyjmuje najwyżej 65,536 linków i 8,192 znaki na URI, sprawdza anulowanie w trakcie publikowania, wycisza adnotacje, gdy przechwytywana jest zawartość wielokrotnego użytku VisualBrush, i kończy się fail closed przy znakach kontrolnych, niebezpiecznych schematach, brakujących celach albo niedopasowaniach strony i fragmentu
Nieobsługiwane niestandardowe RelativeTransform, nierozwiązane zasoby macierzy, rozłożenie gradientu Repeat lub Reflect, interpolacja poza sRGB, zmienna alfa stopów w pędzlach malujących, zdegenerowane osie, konwersja kolorów, obrysy obrazami, względne viewboxy VisualBrush, symulacja stylów, glify boczne i zaawansowane właściwości obrysu pozostają jawną diagnostyką