THotPDF.BuildLoadedPageSVG Method
Construit un document SVG autonome à partir de la page PDF chargée sélectionnée
Déclaration
function BuildLoadedPageSVG(PageIndex: Integer): AnsiString; overload;
function BuildLoadedPageSVG(PageIndex: Integer;
EmbedFonts: boolean): AnsiString; overload;
Unité
HPDFDoc
Paramètres
| Nom | Objectif |
|---|---|
PageIndex | Index de base zéro de la page chargée |
EmbedFonts | True écrit les glyphes des polices embarquées dans le SVG sous forme de contours, afin que la page garde le même aspect là où ces polices ne sont pas installées. False, tout comme la surcharge sans ce paramètre, laisse le texte aux polices installées du viewer |
Valeur de retour
Renvoie le document SVG complet, ou une chaîne vide si la page ne peut pas être exportée
Notes d'utilisation
- Les chemins, le texte décodé, les image XObjects, les images inline et les Form XObjects récursifs sont émis via l’interpréteur de périphérique de contenu partagé ; un Form XObject démarre avec les couleurs en vigueur là où il est peint
- Le canevas couvre la partie visible de la page, sa
/CropBoxrognée à sa/MediaBox(voirGetLoadedPageVisibleBox), tournée par/Rotate; le coin inférieur gauche de la boîte correspond au coin du canevas même quand la boîte ne commence pas à l’origine - Le texte est écrit en UTF-8 avec une position
xpar caractère etxml:space="preserve", si bien que les espaces sont conservés ; les glyphes de ligatures se déploient en tous les caractères qu’ils représentent, et les codes que XML 1.0 n’autorise pas deviennent U+FFFD - Le placement du texte suit la matrice de texte complète, y compris l’espacement des caractères et des mots, l’échelle horizontale, l’élévation et les ajustements
TJ; les modes de rendu 0 à 2 remplissent, tracent le contour ou font les deux, le mode 3 ne dessine rien, et les glyphes du texte affiché en modes 4 à 7 deviennent aussi un chemin de clipping depuis la fin de l’objet texte (ET) jusqu’à la fin de l’état graphique - Par défaut, le texte utilise les polices installées : les 14 familles standard et leurs équivalents TrueType correspondent à Helvetica ou Arial, Times New Roman et Courier New, et les autres polices sont nommées par leur famille, avec aussi les espaces entre ses mots (
MyriadPro, Myriad Pro), suivie d’une famille générique tirée des flags du descripteur de police ou du nom. Le texte en gras et en italique obtientfont-weightetfont-styleà partir de la partie style du nom de police (Arial-BoldMT,Helvetica-Oblique,MinionPro-It) ainsi que du poids, des flags et de l’angle italique du descripteur de police - Avec
EmbedFontsàTrue, le texte d’une police dont le programme TrueType ou CFF est embarqué dans le PDF est dessiné à partir des contours de glyphes du programme. Chaque glyphe est défini une seule fois comme un<path>dans<defs>et placé par<use>partout où il apparaît, si bien que les caractères répétés ne répètent pas leurs contours ; modes de remplissage et de contour, largeurs de ligne et clipping du texte suivent le texte comme pour du texte SVG. Le texte lui-même est conservé en texte SVG transparent par-dessus les contours, afin de rester sélectionnable, cherchable et lisible par les technologies d’assistance - Les polices non embarquées, les programmes de polices Type 1 (
/FontFile), l’écriture CJK verticale et les runs portant un code sans glyphe dans le programme embarqué restent du texte SVG même avecEmbedFonts. Les contours alourdissent le fichier, souvent de deux à trois fois pour les pages riches en texte - Les couleurs de remplissage et de contour définies dans n’importe quel espace colorimétrique (
DeviceGray,DeviceRGB,DeviceCMYK, ICCBased, calibré, Lab, Indexed, Separation et DeviceN) sont converties en sRGB comme le moteur de rendu de page les convertit - Les chemins remplis d’un motif de tuilage sont remplis par un
<pattern>SVG qui répète la cellule du motif tous lesXStepetYStep, rogné à son/BBox; les motifs non colorés peignent la cellule dans la couleur fournie avec le motif. Les chemins remplis d’un motif de shading reçoivent le dégradé ou le maillage de son shading, rogné au chemin. La matrice du motif est appliquée dans l’espace de la page, ou de la Form qui utilise le motif. Les tracés avec un motif utilisent sa couleur, noir pour les motifs colorés - Les dégradés axiaux Type 2 et radiaux Type 3 utilisent des dégradés SVG avec des stops échantillonnés bornés ; une extrémité que
Extendne prolonge pas reste non peinte, comme en PDF - Les dégradés à maillage Type 4 à Type 7 utilisent une data URI PNG transparente bornée, de 16 millions de pixels au maximum
- Les images inline sont décodées par le même chemin d’image de document chargé et intégrées sous forme de data URI PNG
- Les masques d’image, inline compris, deviennent des images PNG dans la couleur de remplissage courante, transparentes là où rien n’est peint ; les pochoirs
/SMasket/Maskdonnent à l’image un canal alpha, à la résolution du masque quand il est plus fin que l’image. Les tableaux/Maskde color-key rendent transparents les pixels correspondants pour les images Flate, LZW et non filtrées - Les chemins de clipping
WetW*deviennent des éléments SVG<clipPath>qui prennent fin avec l’état graphique dans lequel ils ont été posés ; les Form XObjects sont clippés à leur/BBox, et les dégradés axiaux et radiaux à la leur - Le texte des polices Type 3 est dessiné avec les procédures de glyphes de la police, placées via sa
/FontMatrix, au lieu d’être du texte SVG ; les glyphes qui démarrent pard1peignent dans la couleur de remplissage courante. Les glyphes Type 3 ne s’ajoutent pas au chemin de clipping des modes de rendu 4 à 7 - La couleur
Backgroundd’un shading remplit la zone d’un motif de shading avant le shading, si bien qu’elle apparaît partout où le shading ne peint pas ; comme en PDF, elle est ignorée quand le shading est peint parsh - Les shadings Type 1 à base de fonction sont échantillonnés sur leur
Domaindans une data URI PNG d’au plus 256 par 256 échantillons, placée via laMatrixdu shading ; le viewer la lisse lors du redimensionnement