THotPDF.BuildLoadedPageSVG Method
Bouwt een op zichzelf staand SVG-document van de geselecteerde geladen PDF-pagina
Declaratie
function BuildLoadedPageSVG(PageIndex: Integer): AnsiString; overload;
function BuildLoadedPageSVG(PageIndex: Integer;
EmbedFonts: boolean): AnsiString; overload;
Eenheid
HPDFDoc
Parameters
| Naam | Doel |
|---|---|
PageIndex | Nul-gebaseerde index van de geladen pagina |
EmbedFonts | True schrijft de glyfen van ingesloten fonts als omlijningen in de SVG, zodat de pagina er hetzelfde uitziet waar die fonts niet zijn geïnstalleerd. False, en de overload zonder deze parameter, laat de tekst over aan de geïnstalleerde fonts van de viewer |
Retourwaarde
Geeft het volledige SVG-document terug, of een lege tekenreeks wanneer de pagina niet kan worden geëxporteerd
Gebruiksopmerkingen
- Paden, gedecodeerde tekst, image-XObjects, inline afbeeldingen en recursieve Form-XObjects worden uitgegeven via de gedeelde content-device-interpreter; een Form-XObject begint met de kleuren die gelden op de plek waar hij wordt geschilderd
- Het canvas beslaat het zichtbare deel van de pagina, zijn
/CropBoxgeclipt tot zijn/MediaBox(zieGetLoadedPageVisibleBox), gedraaid door/Rotate; de linkerbenedenhoek van de box landt op de hoek van het canvas, zelfs wanneer de box niet in de oorsprong begint - Tekst wordt als UTF-8 geschreven met één
x-positie per teken enxml:space="preserve", zodat spaties behouden blijven; ligatuur-glyphs vouwen uit naar alle tekens waarvoor ze staan, en codes die XML 1.0 niet toestaat worden U+FFFD - Tekstplaatsing volgt de volledige tekstmatrix, inclusief teken- en woordafstand, horizontale schaling, rise en
TJ-correcties; rendermodi 0 tot 2 vullen, teken lijnen of doen beide, modus 3 tekent niets, en de glyfen van tekst die in modi 4 tot 7 wordt getoond vormen ook een clippad vanaf het einde van het tekstobject (ET) tot het einde van de graphics state - Standaard gebruikt tekst geïnstalleerde fonts: de 14 standaardfamilies en hun TrueType-tegenhangers verwijzen naar Helvetica of Arial, Times New Roman en Courier New, en andere fonts worden bij de naam van hun familie genoemd, ook met spaties tussen de woorden (
MyriadPro, Myriad Pro), gevolgd door een generieke familie afgeleid uit de flags van de fontdescriptor of uit de naam. Vette en cursieve tekst krijgenfont-weightenfont-styleuit het stijldeel van de fontnaam (Arial-BoldMT,Helvetica-Oblique,MinionPro-It) en uit het gewicht, de flags en de italic angle van de fontdescriptor - Met
EmbedFontsopTruewordt tekst in een font waarvan het TrueType- of CFF-programma in de PDF is ingesloten, getekend uit de glyphomlijningen van dat programma. Elke glyph wordt één keer gedefinieerd als een<path>in<defs>en met<use>geplaatst waar hij ook voorkomt, zodat herhaalde tekens hun omlijningen niet herhalen; vul- en lijnmodi, lijnbreedtes en tekstclipping volgen de tekst zoals bij SVG-tekst. De tekst zelf blijft als transparante SVG-tekst boven de omlijningen staan, zodat hij nog steeds kan worden geselecteerd, doorzocht en gelezen door ondersteunende technologie - Fonts die niet zijn ingesloten, Type 1-fontprogramma's (
/FontFile), verticale CJK-schrijfrichting en reeksen met een code die geen glyph in het ingesloten programma heeft, blijven SVG-tekst zelfs metEmbedFontsingesteld. De omlijningen maken het bestand groter, vaak twee tot drie keer voor tekstrijke pagina's - Vul- en lijnkleuren die in elke kleurruimte zijn ingesteld (
DeviceGray,DeviceRGB,DeviceCMYK, ICCBased, calibrated, Lab, Indexed, Separation en DeviceN) worden naar sRGB geconverteerd zoals de pagina-renderer dat doet - Paden die met een tiling-patroon zijn gevuld, krijgen een SVG-
<pattern>dat de patrooncel elkeXStepenYStepherhaalt, geclipt tot zijn/BBox; ongekleurde patronen schilderen de cel in de kleur die met het patroon is gegeven. Paden die met een shading-patroon zijn gevuld, krijgen de gradiënt of mesh van zijn shading, geclipt tot het pad. De patroonmatrix wordt toegepast in de ruimte van de pagina, of van de form die het patroon gebruikt. Lijnen met een patroon gebruiken zijn kleur, zwart voor gekleurde patronen - Type 2-axiale en Type 3-radiale shadings gebruiken SVG-gradiënten met begrensde gesamplede stops; een uiteinde dat
Extendniet uitbreidt blijft onbeschilderd, zoals in PDF - Type 4 tot en met Type 7 mesh-shadings gebruiken een begrensde transparante PNG-data-URI met maximaal 16 miljoen pixels
- Inline afbeeldingen worden gedecodeerd via hetzelfde pad voor geladen-document-afbeeldingen en ingesloten als PNG-data-URI's
- Afbeeldingsmaskers, inline maskers incluis, worden PNG-afbeeldingen in de huidige vulkleur die transparant zijn waar niets geschilderd is;
/SMask- en/Mask-stencils geven de afbeelding een alfakanaal, op de resolutie van het masker wanneer dat fijner is dan de afbeelding. Color-key-/Mask-arrays maken de overeenkomende pixels transparant voor Flate-, LZW- en ongefilterde afbeeldingen W- enW*-clippaden worden SVG-<clipPath>-elementen die eindigen met de graphics state waarin ze waren ingesteld; Form-XObjects worden gecropt op hun/BBox, en axiale en radiale shadings op die van hen- Tekst in Type 3-lettertypen wordt getekend met de glyphprocedures van het font, geplaatst via zijn
/FontMatrix, in plaats van als SVG-tekst; glyphs die metd1beginnen schilderen in de huidige vulkleur. Type 3-glyphs voegen niets toe aan het clippad van rendermodi 4 tot 7 - De
Background-kleur van een shading vult het gebied van een shading-patroon vóór de shading, zodat hij zichtbaar is waar de shading niet schildert; zoals in PDF wordt hij genegeerd wanneer de shading metshwordt geschilderd - Type 1-functiegebaseerde shadings worden over hun
Domaingesampled in een PNG-data-URI van maximaal 256 bij 256 samples, geplaatst via deMatrixvan de shading; de viewer gladstrijkt hem bij schaling