Método THotPDF.BuildLoadedPageSVG
Constrói um documento SVG autônomo a partir da página carregada selecionada
Declaração
function BuildLoadedPageSVG(PageIndex: Integer): AnsiString; overload;
function BuildLoadedPageSVG(PageIndex: Integer;
EmbedFonts: boolean): AnsiString; overload;
Unit
HPDFDoc
Parâmetros
| Nome | Finalidade |
|---|---|
PageIndex | Índice de base zero da página carregada |
EmbedFonts | True grava os glifos das fontes embutidas no SVG como outlines, de modo que a página tenha a mesma aparência onde essas fontes não estão instaladas. False, e a sobrecarga sem este parâmetro, deixa o texto para as fontes instaladas do viewer |
Valor de retorno
Retorna o documento SVG completo, ou uma string vazia quando a página não pode ser exportada
Notas de uso
- Paths, texto decodificado, XObjects de imagem, imagens inline e Form XObjects recursivos são emitidos pelo interpretador de content device compartilhado; um Form XObject começa com as cores em vigor onde é pintado
- O canvas cobre a parte visível da página, sua
/CropBoxrecortada à sua/MediaBox(vejaGetLoadedPageVisibleBox), girada pelo/Rotate; o canto inferior esquerdo da caixa mapeia para o canto do canvas mesmo quando a caixa não começa na origem - O texto é gravado como UTF-8 com uma posição
xpor caractere exml:space="preserve", de modo que os espaços são preservados; glifos de ligadura expandem para todos os caracteres que representam, e códigos que o XML 1.0 não permite viram U+FFFD - O posicionamento de texto segue a matriz de texto completa, incluindo espaçamento de caracteres e de palavras, dimensionamento horizontal, rise e ajustes de
TJ; os render modes 0 a 2 preenchem, traçam ou fazem ambos, o modo 3 não desenha nada, e os glifos de texto mostrado nos modos 4 a 7 também se tornam um clipping path do fim do objeto de texto (ET) ao fim do graphics state - Por padrão o texto usa fontes instaladas: as 14 famílias padrão e suas contrapartes TrueType mapeiam para Helvetica ou Arial, Times New Roman e Courier New, e outras fontes são nomeadas pela família delas, também com espaços entre as palavras (
MyriadPro, Myriad Pro), seguida de uma família genérica tirada dos flags do descritor da fonte ou do nome. Texto em negrito e itálico recebefont-weightefont-styleda parte de estilo do nome da fonte (Arial-BoldMT,Helvetica-Oblique,MinionPro-It) e do weight, flags e ângulo itálico do descritor da fonte - Com
EmbedFontsdefinido comoTrue, texto em uma fonte cujo programa TrueType ou CFF está embutido no PDF é desenhado a partir dos outlines de glifos do programa. Cada glifo é definido uma vez como um<path>em<defs>e colocado com<use>onde quer que ocorra, de modo que caracteres repetidos não repetem os outlines deles; modos de preenchimento e traço, larguras de linha e clipping de texto seguem o texto como fazem para texto SVG. O texto em si é mantido como texto SVG transparente sobre os outlines, de modo que ainda possa ser selecionado, pesquisado e lido por tecnologia assistiva - Fontes que não estão embutidas, programas de fonte Type 1 (
/FontFile), escrita CJK vertical e execuções com um código que não tem glifo no programa embutido permanecem texto SVG mesmo comEmbedFontsdefinido. Os outlines tornam o arquivo maior, geralmente duas a três vezes para páginas com muito texto - Cores de preenchimento e traço definidas em qualquer espaço de cor (
DeviceGray,DeviceRGB,DeviceCMYK, ICCBased, calibrated, Lab, Indexed, Separation e DeviceN) são convertidas para sRGB conforme o renderer de página as converte - Paths preenchidos com um tiling pattern são preenchidos com um SVG
<pattern>que repete a célula do pattern a cadaXStepeYStep, recortada ao/BBoxdele; patterns sem cor pintam a célula na cor dada com o pattern. Paths preenchidos com um shading pattern recebem o gradiente ou mesh do shading dele, recortados ao path. A matriz do pattern é aplicada no espaço da página, ou do form que usa o pattern. Traços com um pattern usam a cor dele, preto para patterns com cor - Shadings axiais Type 2 e radiais Type 3 usam gradientes SVG com stops amostrados e limitados; uma extremidade que
Extendnão estende permanece sem pintura, como no PDF - Shadings de mesh Type 4 a Type 7 usam uma data URI PNG transparente com limites e no máximo 16 milhões de pixels
- Imagens inline são decodificadas pelo mesmo caminho de imagem de documento carregado e incorporadas como data URIs PNG
- Image masks, incluindo as inline, viram imagens PNG na cor de preenchimento atual, transparentes onde nada é pintado; os stencils
/SMaske/Maskdão à imagem um canal alfa, na resolução da máscara quando ela é mais fina que a imagem. Arrays/Maskde color-key tornam os pixels correspondentes transparentes para imagens Flate, LZW e sem filtro - Clipping paths
WeW*viram elementos SVG<clipPath>que terminam com o graphics state em que foram definidos; Form XObjects são recortados pelo/BBoxdeles, e shadings axiais e radiais pelos deles - Texto em fontes Type 3 é desenhado com as glyph procedures da fonte, posicionadas pela
/FontMatrixdela, em vez de como texto SVG; glifos que começam comd1pintam na cor de preenchimento atual. Glifos Type 3 não acrescentam ao clipping path dos render modes 4 a 7 - A cor
Backgroundde um shading preenche a área de um shading pattern antes do shading, de modo que aparece onde quer que o shading não pinte; como no PDF, é ignorada quando o shading é pintado comsh - Shadings Type 1 baseados em função são amostrados sobre o
Domaindeles em uma data URI PNG de até 256 por 256 amostras, posicionada pelaMatrixdo shading; o viewer suaviza quando é escalado