THotPDF.BuildLoadedPageSVG Method
Erzeugt aus der gewählten geladenen PDF-Seite ein eigenständiges SVG-Dokument
Deklaration
function BuildLoadedPageSVG(PageIndex: Integer): AnsiString; overload;
function BuildLoadedPageSVG(PageIndex: Integer;
EmbedFonts: boolean): AnsiString; overload;
Unit
HPDFDoc
Parameter
| Name | Zweck |
|---|---|
PageIndex | Nullbasierter Index der geladenen Seite |
EmbedFonts | True schreibt die Glyphen eingebetteter Fonts als Konturen in das SVG, sodass die Seite dort gleich aussieht, wo diese Fonts nicht installiert sind. False, und der Overload ohne diesen Parameter, überlassen den Text den installierten Fonts des Betrachters |
Rückgabewert
Liefert das vollständige SVG-Dokument oder einen leeren String, wenn die Seite nicht exportiert werden kann
Verwendungshinweise
- Pfade, dekodierter Text, Bild-XObjects, Inline-Bilder und rekursive Form-XObjects werden über den gemeinsamen Content-Device-Interpreter ausgegeben; ein Form-XObject beginnt mit den Farben, die an der Stelle gelten, an der es gemalt wird
- Die Zeichenfläche deckt den sichtbaren Teil der Seite ab — die
/CropBox, beschnitten auf die/MediaBox(sieheGetLoadedPageVisibleBox), gedreht um/Rotate; die linke untere Ecke der Box landet auf der Ecke der Zeichenfläche, auch wenn die Box nicht im Ursprung startet - Text wird als UTF-8 geschrieben, mit einer
x-Position pro Zeichen undxml:space="preserve", sodass Leerzeichen erhalten bleiben; Ligatur-Glyphen expandieren zu allen Zeichen, für die sie stehen, und Codes, die XML 1.0 nicht erlaubt, werden zu U+FFFD - Die Textplatzierung folgt der vollständigen Textmatrix, einschließlich Zeichen- und Wortabstand, horizontale Skalierung, Rise und
TJ-Anpassungen; die Rendermodi 0 bis 2 füllen, striichen oder tun beides, Modus 3 zeichnet nichts, und die Glyphen von Text in den Modi 4 bis 7 werden zusätzlich vom Ende des Textobjekts (ET) bis zum Ende des Grafikzustands zu einem Clipping-Pfad - Standardmäßig verwendet Text installierte Fonts: die 14 Standardfamilien und ihre TrueType-Pendants mappen auf Helvetica oder Arial, Times New Roman und Courier New, andere Fonts werden nach ihrer Familie benannt, auch mit Leerzeichen zwischen ihren Worten (
MyriadPro, Myriad Pro), gefolgt von einer generischen Familie aus den Flags des Font-Deskriptors oder dem Namen. Fetter und kursiver Text erhältfont-weightundfont-styleaus dem Stilteil des Fontnamens (Arial-BoldMT,Helvetica-Oblique,MinionPro-It) sowie aus Weight, Flags und Italic-Angle des Font-Deskriptors - Mit
EmbedFontsaufTruewird Text in einem Font, dessen TrueType- oder CFF-Programm im PDF eingebettet ist, aus den Glyphenkonturen des Programms gezeichnet. Jede Glyphe wird einmal als<path>in<defs>definiert und überall mit<use>platziert, sodass wiederholte Zeichen ihre Konturen nicht wiederholen; Füll- und Strichmodi, Linienbreiten und Text-Clipping folgen dem Text wie bei SVG-Text. Der Text selbst bleibt als transparenter SVG-Text über den Konturen erhalten und bleibt so auswählbar, durchsuchbar und mit Hilfstechnologien lesbar - Nicht eingebettete Fonts, Type 1-Fontprogramme (
/FontFile), vertikale CJK-Schrift und Läufe mit einem Code, für den das eingebettete Programm keine Glyphe hat, bleiben SVG-Text, selbst wennEmbedFontsgesetzt ist. Die Konturen machen die Datei größer, oft um das Zwei- bis Dreifache bei textreichen Seiten - Füll- und Strichfarben in beliebigen Farbräumen (
DeviceGray,DeviceRGB,DeviceCMYK, ICCBased, kalibriert, Lab, Indexed, Separation und DeviceN) werden zu sRGB konvertiert, so wie der Seitenrenderer sie konvertiert - Pfade, die mit einem Tiling-Pattern gefüllt werden, erhalten ein SVG-
<pattern>, das die Pattern-Zelle alleXStepundYStepwiederholt, beschnitten auf ihre/BBox; farblose Patterns malen die Zelle in der Farbe, die mit dem Pattern angegeben wurde. Pfade, die mit einem Shading-Pattern gefüllt werden, erhalten den Verlauf oder das Mesh seines Shadings, beschnitten auf den Pfad. Die Pattern-Matrix wird im Raum der Seite oder des Forms angewandt, das das Pattern verwendet. Striche mit einem Pattern verwenden dessen Farbe, Schwarz bei farbigen Patterns - Axiale Shadings vom Typ 2 und radiale vom Typ 3 verwenden SVG-Verläufe mit begrenzt vielen abgetasteten Stopps; ein Ende, das
Extendnicht erweitert, bleibt wie in PDF unbemalt - Mesh-Shadings der Typen 4 bis 7 verwenden einen begrenzten transparenten PNG-Data-URI mit höchstens 16 Millionen Pixeln
- Inline-Bilder werden über denselben Bildpfad für geladene Dokumente dekodiert und als PNG-Data-URIs eingebettet
- Bildmasken, Inline-Bilder eingeschlossen, werden zu PNG-Bildern in der aktuellen Füllfarbe, die dort transparent sind, wo nichts gemalt wird;
/SMask- und/Mask-Schablonen geben dem Bild einen Alphakanal, mit der Maskenauflösung, wenn diese feiner als das Bild ist. Color-Key-/Mask-Arrays machen die passenden Pixel für Flate-, LZW- und ungefilterte Bilder transparent - Clipping-Pfade per
WundW*werden zu SVG-<clipPath>-Elementen, die mit dem Grafikstate enden, in dem sie gesetzt wurden; Form-XObjects werden auf ihre/BBoxbeschnitten, axiale und radiale Shadings ebenso auf ihre - Text in Type-3-Fonts wird mit den Glyphenprozeduren des Fonts gezeichnet, platziert über dessen
/FontMatrix, statt als SVG-Text; Glyphen, die mitd1beginnen, malen in der aktuellen Füllfarbe. Type-3-Glyphen tragen nicht zum Clipping-Pfad der Rendermodi 4 bis 7 bei - Die
Background-Farbe eines Shadings füllt den Bereich eines Shading-Patterns vor dem Shading, sodass sie sichtbar ist, wo das Shading nicht malt; wie in PDF wird sie ignoriert, wenn das Shading mitshgemalt wird - Funktionsbasierte Shadings des Typs 1 werden über ihre
Domainin einen PNG-Data-URI mit bis zu 256 mal 256 Abtastungen gesampelt, platziert über dieMatrixdes Shadings; der Betrachter glättet sie beim Skalieren