THotPDF.BuildLoadedPageSVG Method
Sestaví samostatný dokument SVG z vybrané načtené stránky PDF
Deklarace
function BuildLoadedPageSVG(PageIndex: Integer): AnsiString; overload;
function BuildLoadedPageSVG(PageIndex: Integer;
EmbedFonts: boolean): AnsiString; overload;
Jednotka
HPDFDoc
Parametry
| Název | Účel |
|---|---|
PageIndex | Index načtené stránky počítaný od nuly |
EmbedFonts | True zapisuje glyfy vložených fontů do SVG jako obrysy, takže stránka vypadá stejně i tam, kde tyto fonty nejsou nainstalované. False i přetížení bez tohoto parametru nechávají text na nainstalovaných fontech prohlížeče |
Návratová hodnota
Vrací kompletní dokument SVG, nebo prázdný řetězec, pokud stránku nelze exportovat
Poznámky k použití
- Cesty, dekódovaný text, obrazové XObjecty, inline obrázky a rekurzivní Form XObjecty se zapisují přes sdílený interpret content-device; Form XObject začíná s barvami platnými v místě, kde se kreslí
- Plátno pokrývá viditelnou část stránky, její
/CropBoxoříznutý na její/MediaBox(vizGetLoadedPageVisibleBox), natočenou o/Rotate; levý dolní roh boxu se mapuje na roh plátna, i když box nezačíná v počátku - Text se zapisuje v UTF-8 s jednou pozicí
xna znak axml:space="preserve", takže mezery zůstávají zachovány; ligaturní glyfy se rozvinou na všechny znaky, které zastupují, a kódy, které XML 1.0 nepovoluje, se stanou U+FFFD - Umístění textu sleduje celou textovou matici, včetně prostrkání znaků a slov, vodorovného měřítka, rise a úprav
TJ; režimy vykreslování 0 až 2 vyplňují, obtahují nebo obojí, režim 3 nekreslí nic a glyfy textu zobrazeného v režimech 4 až 7 se navíc stanou ořezovou cestou od konce textového objektu (ET) do konce grafického stavu - Text používá nainstalované fonty: standardní 14 rodin a jejich TrueType protějšky se mapují na Helvetica nebo Arial, Times New Roman a Courier New a další fonty se pojmenují podle své rodiny, včetně mezer mezi slovy (
MyriadPro, Myriad Pro), následované obecnou rodinou odvozenou z flagů deskriptoru fontu nebo z názvu. Tučný a kurzívový text dostanefont-weightafont-styleze stylistické části názvu fontu (Arial-BoldMT,Helvetica-Oblique,MinionPro-It) a z weight, flagů a úhlu kurzívy v deskriptoru fontu - S
EmbedFontsnastaveným naTruese text ve fontu, jehož TrueType nebo CFF program je vložený v PDF, kreslí z obrysů glyfů programu. Každý glyf se jednou definuje jako<path>v<defs>a umisťuje přes<use>všude, kde se vyskytuje, takže opakované znaky neopakují své obrysy; režimy výplně a tahu, šířky čar a ořez textu sledují text jako u SVG textu. Samotný text zůstává jako průhledný SVG text nad obrysy, takže ho lze dál vybírat, hledat a čít asistivními technologiemi - Fonty bez vloženého programu, programy fontů Type 1 (
/FontFile), svislý CJK zápis a běhy s kódem, který nemá v vloženém programu glyf, zůstávají SVG textem i s nastavenýmEmbedFonts. Obrysy zvětší soubor, často dvakrát až třikrát u stránek bohatých na text - Barvy výplně a tahu nastavené v jakémkoli barevném prostoru (
DeviceGray,DeviceRGB,DeviceCMYK, ICCBased, kalibrované, Lab, Indexed, Separation a DeviceN) se převedou na sRGB stejně, jak je převádí renderer stránky - Cesty vyplněné tiling patternem se vyplní SVG
<pattern>, které opakuje buňku patternu po každýchXStepaYStep, oříznuté na jeho/BBox; neobarvené patterny vyplní buňku barvou zadanou s patternem. Cesty vyplněné shading patternem dostanou gradient nebo mesh svého shadingu, oříznuté na cestu. Matice patternu se aplikuje v prostoru stránky, případně formuláře, který pattern používá. Tahy s patternem použijí jeho barvu, u obarvených patternů černou - Axiální shadingy Type 2 a radiální shadingy Type 3 používají gradienty SVG s omezeným počtem vzorkovaných zarážek; konec, který
Extendnerozšiřuje, zůstává nevykreslený, jako v PDF - Mesh shadingy Type 4 až Type 7 používají omezené průhledné PNG jako data URI s maximem 16 milionů pixelů
- Inline obrázky se dekódují stejnou cestou jako obrázky načteného dokumentu a vkládají se jako PNG data URI
- Obrazové masky, inline nevyjímaje, se stanou PNG obrazy v aktuální barvě výplně, které jsou průhledné tam, kde se nic nenakreslilo;
/SMaska/Maskstencil dají obrazu alfa kanál, v rozlišení masky, když je jemnější než obraz. Pole/Masks barevnými klíči učiní odpovídající pixely průhlednými u obrazů Flate, LZW i nefiltrovaných - Ořezové cesty
WaW*se stanou elementy SVG<clipPath>, které končí spolu s grafickým stavem, ve kterém byly nastaveny; Form XObjecty se oříznou na jejich/BBoxa axiální a radiální shadingy na svou - Text v fontech Type 3 se kreslí pomocí glyph procedur fontu, umístěných přes jeho
/FontMatrix, místo jako text SVG; glyfy začínajícíd1se malují v aktuální barvě výplně. Glyfy Type 3 nepřidávají do ořezové cesty režimů vykreslování 4 až 7 - Barva
Backgroundshadingu vyplní oblast shading patternu před shadingem, takže se ukáže všude tam, kde shading nenamaluje; jako v PDF se ignoruje, když se shading maluje přessh - Funkční shadingy Type 1 se vzorkují přes svůj
Domaindo PNG data URI o nejvýše 256 x 256 vzorcích, umístěného přesMatrixshadingu; čtečka jej při škálování vyhladí