Metoda THotPDF.BuildLoadedPageSVG
Construiește un document SVG autonom din pagina PDF încărcată selectată
Declarație
function BuildLoadedPageSVG(PageIndex: Integer): AnsiString; overload;
function BuildLoadedPageSVG(PageIndex: Integer;
EmbedFonts: boolean): AnsiString; overload;
Unitate
HPDFDoc
Parametri
| Nume | Scop |
|---|---|
PageIndex | Indice cu bază zero al paginii încărcate |
EmbedFonts | True scrie glifele fonturilor încorporate în SVG ca contururi, astfel încât pagina arată la fel și acolo unde aceste fonturi nu sunt instalate. False, precum și overload-ul fără acest parametru, lasă textul pe seama fonturilor instalate ale vizualizatorului |
Valoare de întoarcere
Returnează documentul SVG complet sau un string gol când pagina nu poate fi exportată
Note de utilizare
- Traseele, textul decodat, Image XObject-urile, imaginile inline și Form XObject-urile recursive sunt emise prin interpretorul comun de content device; un Form XObject pornește cu culorile în vigoare acolo unde este pictat
- Canvas-ul acoperă partea vizibilă a paginii,
/CropBox-ul ei limitat la/MediaBox-ul ei (veziGetLoadedPageVisibleBox), rotit cu/Rotate; colțul din stânga-jos al box-ului se mapează pe colțul canvas-ului chiar când box-ul nu începe la origine - Textul este scris ca UTF-8 cu câte o poziție
xper caracter șixml:space="preserve", astfel încât spațiile se păstrează; glifele de tip ligatură se extind la toate caracterele pe care le reprezintă, iar codurile pe care XML 1.0 nu le permite devin U+FFFD - Plasarea textului urmează întreaga matrice de text, inclusiv spațierea caracterelor și a cuvintelor, scalarea orizontală, ridicarea și ajustările
TJ; modurile de randare 0 până la 2 umplu, conturează sau fac ambele, modul 3 nu desenează nimic, iar glifele textului afișat în modurile 4 până la 7 devin și o cale de decupare de la sfârșitul obiectului de text (ET) până la sfârșitul stării grafice - În mod implicit textul folosește fonturi instalate: cele 14 familii standard și echivalentele lor TrueType se mapează la Helvetica sau Arial, Times New Roman și Courier New, iar celelalte fonturi sunt numite după familia lor, inclusiv cu spații între cuvintele numelui (
MyriadPro, Myriad Pro), urmate de o familie generică luată din flag-urile descriptorului de font sau din nume. Textul bold și italic primeștefont-weightșifont-styledin partea de stil a numelui fontului (Arial-BoldMT,Helvetica-Oblique,MinionPro-It) și din weight-ul, flag-urile și unghiul italic ale descriptorului de font - Cu
EmbedFontssetat peTrue, textul dintr-un font al cărui program TrueType sau CFF este încorporat în PDF este desenat din contururile de glife ale programului. Fiecare glifă este definită o singură dată ca<path>în<defs>și plasată cu<use>oriunde apare, astfel încât caracterele repetate nu își repetă contururile; modurile de umplere și de contur, lățimile de linie și decuparea textului urmează textul așa cum o fac pentru text SVG. Textul în sine este păstrat ca text SVG transparent deasupra contururilor, astfel încât să poată fi în continuare selectat, căutat și citit de tehnologiile asistive - Fonturile neîncorporate, programele de font Type 1 (
/FontFile), scrierea CJK verticală și secvențele cu un cod fără glifă în programul încorporat rămân text SVG chiar și cuEmbedFontssetat. Contururile măresc fișierul, adesea de două-trei ori pentru paginile bogate în text - Culorile de umplere și de contur stabilite în orice spațiu de culoare (
DeviceGray,DeviceRGB,DeviceCMYK, ICCBased, calibrate, Lab, Indexed, Separation și DeviceN) sunt convertite la sRGB așa cum le convertește renderer-ul de pagină - Traseele umplute cu un tiling pattern sunt umplute cu un
<pattern>SVG care repetă celula pattern-ului la fiecareXStepșiYStep, decupat la/BBox-ul său; pattern-urile necolorate pictează celula în culoarea dată odată cu pattern-ul. Traseele umplute cu un shading pattern primesc gradientul sau mesh-ul shading-ului său, decupate la traseu. Matricea pattern-ului este aplicată în spațiul paginii sau al form-ului care folosește pattern-ul. Contururile cu pattern folosesc culoarea acestuia, negru pentru pattern-urile colorate - Shading-urile axiale Type 2 și radiale Type 3 folosesc gradienți SVG cu stop-uri eșantionate limitate; un capăt pe care
Extendnu îl extinde rămâne nepictat, ca în PDF - Shading-urile mesh Type 4 până la Type 7 folosesc un data URI PNG transparent limitat, de cel mult 16 milioane de pixeli
- Imaginile inline sunt decodificate prin aceeași cale de imagini a documentului încărcat și încorporate ca URI-uri de date PNG
- Image mask-urile, inclusiv cele inline, devin imagini PNG în culoarea curentă de umplere, transparente acolo unde nu este pictat nimic; șabloanele
/SMaskși/Maskîi dau imaginii un canal alpha, la rezoluția măștii când aceasta este mai fină decât imaginea. Array-urile/Maskde tip color-key fac pixelii care se potrivesc transparenți pentru imaginile Flate, LZW și nefiltrate - Căile de decupare
WșiW*devin elemente SVG<clipPath>care se termină odată cu starea grafică în care fuseseră stabilite; Form XObject-urile sunt decupate la/BBox-ul lor, iar shading-urile axiale și radiale la al lor - Textul în fonturi Type 3 este desenat cu procedurile de glife ale fontului, plasat prin
/FontMatrix-ul acestuia, în loc de text SVG; glifele care încep cud1pictează în culoarea curentă de umplere. Glifele Type 3 nu se adaugă căii de decupare a modurilor de randare 4 până la 7 - Culoarea
Backgrounda unui shading umple aria unui shading pattern înainte de shading, astfel încât apare oriunde shading-ul nu pictează; ca în PDF, este ignorată când shading-ul este pictat cush - Shading-urile Type 1 bazate pe funcții sunt eșantionate pe
Domain-ul lor într-un data URI PNG de cel mult 256 pe 256 de eșantioane, plasat prinMatrix-ul shading-ului; vizualizatorul îl netedește când este scalat