THotPDF.BuildLoadedPageSVG Método
Construye un documento SVG independiente a partir de la página cargada de PDF seleccionada
Declaración
function BuildLoadedPageSVG(PageIndex: Integer): AnsiString; overload;
function BuildLoadedPageSVG(PageIndex: Integer;
EmbedFonts: boolean): AnsiString; overload;
Unidad
HPDFDoc
Parámetros
| Nombre | Propósito |
|---|---|
PageIndex | Índice basado en cero de la página cargada |
EmbedFonts | True escribe los glifos de las fuentes embebidas en el SVG como contornos, de modo que la página se ve igual donde esas fuentes no están instaladas. False, y el overload sin este parámetro, dejan el texto a las fuentes instaladas del visor |
Valor de retorno
Devuelve el documento SVG completo, o un string vacío cuando la página no se puede exportar
Notas de uso
- Los paths, el texto decodificado, los image XObjects, las imágenes inline y los Form XObjects recursivos se emiten a través del intérprete de content-device compartido; un Form XObject empieza con los colores vigentes donde se pinta
- El canvas cubre la parte visible de la página, su
/CropBoxrecortada a su/MediaBox(verGetLoadedPageVisibleBox), girada por/Rotate; la esquina inferior izquierda del box se mapea a la esquina del canvas incluso cuando el box no empieza en el origen - El texto se escribe como UTF-8 con una posición
xpor carácter yxml:space="preserve", así que se conservan los espacios; los glifos de ligadura se expanden a todos los caracteres que representan, y los códigos que XML 1.0 no permite se convierten en U+FFFD - La colocación del texto sigue la matriz de texto completa, incluidos character spacing y word spacing, escala horizontal, rise y los ajustes de
TJ; los modos de render 0 a 2 rellenan, trazan o hacen ambas cosas, el modo 3 no dibuja nada, y los glifos del texto mostrado en los modos 4 a 7 también se convierten en un clipping path desde el final del objeto de texto (ET) hasta el final del graphics state - Por defecto el texto usa fuentes instaladas: las 14 familias estándar y sus contrapartes TrueType se mapean a Helvetica o Arial, Times New Roman y Courier New, y las demás fuentes se nombran por su familia, también con espacios entre sus palabras (
MyriadPro, Myriad Pro), seguida de una familia genérica tomada de los flags del font descriptor o del nombre. El texto en bold e italic obtienefont-weightyfont-stylede la parte de estilo del nombre de la fuente (Arial-BoldMT,Helvetica-Oblique,MinionPro-It) y del weight, los flags y el italic angle del font descriptor - Con
EmbedFontsenTrue, el texto en una fuente cuyo programa TrueType o CFF está embebido en el PDF se dibuja a partir de los contornos de glifos del programa. Cada glifo se define una vez como un<path>en<defs>y se coloca con<use>donde aparezca, de modo que los caracteres repetidos no repiten sus contornos; los modos de fill y stroke, los anchos de línea y el recorte de texto siguen al texto como hacen para texto SVG. El texto se conserva como texto SVG transparente sobre los contornos, de modo que aún puede seleccionarse, buscarse y leerse con tecnología de asistencia - Las fuentes no embebidas, los programas de fuentes Type 1 (
/FontFile), la escritura CJK vertical y los runs con un código sin glifo en el programa embebido siguen siendo texto SVG incluso conEmbedFontsestablecido. Los contornos hacen el archivo más grande, a menudo dos o tres veces en páginas con mucho texto - Los colores de fill y stroke establecidos en cualquier espacio de color (
DeviceGray,DeviceRGB,DeviceCMYK, ICCBased, calibrados, Lab, Indexed, Separation y DeviceN) se convierten a sRGB tal como los convierte el renderer de página - Los paths rellenados con un tiling pattern se rellenan con un
<pattern>SVG que repite la celda del pattern cadaXStepyYStep, recortada por su/BBox; los patterns sin color pintan la celda en el color dado con el pattern. Los paths rellenados con un shading pattern reciben el gradiente o la malla de su shading, recortados al path. La matriz del pattern se aplica en el espacio de la página, o del form que usa el pattern. Los strokes con un pattern usan su color, negro para los patterns con color - Los shadings axiales Type 2 y radiales Type 3 usan gradientes SVG con stops muestreados de forma acotada; un extremo que
Extendno extiende queda sin pintar, como en PDF - Los mesh shadings Type 4 a Type 7 usan un data URI PNG transparente acotado con un máximo de 16 millones de píxeles
- Las imágenes inline se decodifican por el mismo path de imágenes del documento cargado y se embeben como data URIs PNG
- Los image masks, incluidos los inline, se convierten en imágenes PNG del color de fill vigente que resultan transparentes donde no se pinta nada;
/SMasky los stencils/Maskdan a la imagen un canal alfa, a la resolución del mask cuando este es más fino que la imagen. Los arrays de/Maskpor color key hacen transparentes los píxeles que coinciden para imágenes Flate, LZW y sin filtro - Los clipping paths
WyW*se convierten en elementos SVG<clipPath>que terminan con el graphics state en el que se establecieron; los Form XObjects se recortan por su/BBox, y los shadings axiales y radiales por el suyo - El texto en fuentes Type 3 se dibuja con los procedimientos de glifo de la fuente, colocados mediante su
/FontMatrix, en lugar de como texto SVG; los glifos que empiezan cond1pintan en el color de fill vigente. Los glifos Type 3 no se agregan al clipping path de los modos de render de texto 4 a 7 - El color
Backgroundde un shading rellena el área de un shading pattern antes del shading, de modo que se ve donde el shading no pinta; como en PDF, se ignora cuando el shading se pinta consh - Los shadings Type 1 basados en funciones se muestrean sobre su
Domainen un data URI PNG de hasta 256 por 256 muestras, colocado mediante laMatrixdel shading; el visor lo suaviza cuando se escala