Conversion

Conversion

Esta página cobre a renderização de um PDF para outros formatos e a conversão de um documento em conformidade com PDF/A. Document expõe um método To*() por formato de saída para o documento inteiro; os mesmos métodos existem em Page para renderizar uma única página.


Renderizando para Outros Formatos de Documento

Document.ToHtml(), Document.ToDocx() e Document.ToMarkdown() renderizam todas as páginas; Page.ToSvg() e Page.ToImage() renderizam uma página para uma string SVG independente ou bytes PNG. Cada um aceita suas próprias opções — mode em DocxOptions (‘flow’ reflow de conteúdo, ’textbox’ mantém a geometria própria de cada página) e images em MarkdownExportOptions (‘inline’ incorpora URIs de dados de imagem, ’external’ grava arquivos separados em imageDir).

const doc = Document.OpenFile('in.pdf');
const svg = doc.Pages[0].ToSvg();               // standalone <svg> string
const png = doc.Pages[0].ToImage({ scale: 2 }); // Uint8Array of PNG bytes @144 DPI
const html = doc.ToHtml();                      // standalone semantic HTML, all pages
const md = doc.ToMarkdown();                    // GFM Markdown, all pages
const docx = doc.ToDocx();                      // .docx bytes, reflowed, images in the package
const fixed = doc.ToDocx({ mode: 'textbox' });  // .docx keeping each page's own geometry

ImageOptions (para Page.ToImage()) também aceita format, quality, scale, um width / height explícito, e background (‘white’ ou ’transparent’).


Convertendo em Direção a PDF/A

Document.ConvertToPdfA() tenta remediar um documento em direção a um PDF/A level (‘b’ ou ‘u’) e revalida-lo, retornando um ConversionReport com applied (as ações de remediação realizadas), unresolved (problemas que não pôde corrigir) e passed. Execute-o em uma cópia — por exemplo, uma feita com Document.ExtractPages() — para que o documento ativo e funcional nunca seja alterado pela conversão.

// ExtractPages gives an independent copy; ConvertToPdfA never touches the original.
const copy = doc.ExtractPages(doc.Pages.map((_, i) => i + 1));
const conversion = copy.ConvertToPdfA('2b');

console.log(`applied ${conversion.applied.length} action(s), `
  + `${conversion.unresolved.length} unresolved, `
  + `result: ${conversion.passed ? 'passes' : 'still fails'} PDF/A-2b`);
copy.WriteTo('output-pdfa.pdf');

Outros formatos de exportação

Além de HTML, Markdown, DOCX, SVG e PNG, a biblioteca também exporta TIFF (TiffExportOptions, encodeTiff()) e importa/exporta valores de campo AcroForm em FDF e XFDF (exportFdfFile(), exportXfdfFile(), importFdfFile(), importXfdfFile()) — útil para trocar dados de formulários preenchidos separadamente do próprio PDF.


Dicas e boas práticas

  • Execute Document.ConvertToPdfA() em uma cópia (por exemplo, a partir de Document.ExtractPages()), nunca no documento ativo que ainda precisa ser salvo sem conversão.
  • Verifique ConversionReport.unresolved mesmo quando passed está true para um nível de validação mais flexível — algumas ações de remediação só são totalmente resolvidas em um nível mais rígido.
  • Use mode: 'textbox' em DocxOptions quando a saída DOCX precisa manter a geometria visual exata de cada página; use o modo padrão 'flow' quando deve reformatar como um documento de processamento de texto normal.
  • Passe images: 'external' e um imageDir em MarkdownExportOptions para documentos grandes, em vez dos URIs de dados embutidos padrão, para manter o próprio arquivo Markdown pequeno.

Problemas comuns

ProblemaCausaCorreção
ConvertToPdfA() ainda relata passed: falseNem todo problema nas listas de ConversionReport.unresolved pode ser remedido automaticamente (ex.: fontes incorporadas ausentes ou um /OutputIntent ausente)Aborde manualmente as regras específicas de unresolved, então execute novamente ConvertToPdfA()
O documento ao vivo foi inesperadamente modificado após uma tentativa de conversão PDF/AConvertToPdfA() foi chamado diretamente no documento de trabalho em vez de uma cópiaChame-o em uma cópia feita com Document.ExtractPages()
A exportação em Markdown produz um único arquivo enormeO images: 'inline' padrão incorpora cada imagem como um URI de dadosPasse { images: 'external', imageDir: '...' } para gravar as imagens como arquivos separados
A saída DOCX perde o layout de página originalO mode: 'flow' padrão reformatta o conteúdo como um processador de textoPasse { mode: 'textbox' } para manter a geometria própria de cada página

FAQ

Para quais formatos um PDF pode ser convertido?

HTML, Markdown e DOCX para o documento inteiro (Document.ToHtml() / ToMarkdown() / ToDocx()); SVG e PNG por página (Page.ToSvg() / Page.ToImage()); além de exportação de TIFF e FDF/XFDF como dados de formulário.

Converter para PDF/A modifica meu documento original?

Só se você chamar ConvertToPdfA() diretamente nele. Chame-o em uma cópia — por exemplo doc.ExtractPages(doc.Pages.map((_, i) => i + 1)) — para manter o documento original sem conversão.

Como saber se uma conversão PDF/A realmente teve sucesso?

Verifique ConversionReport.passed. applied lista o que a conversão corrigiu, e unresolved lista o que não pôde — inspecione unresolved mesmo quando passed está true.

Posso exportar apenas os valores dos campos de formulário preenchidos, sem o próprio PDF?

Sim — exportFdfFile() e exportXfdfFile() gravam os valores atuais do campo AcroForm em um arquivo FDF ou XFDF separado; importFdfFile() / importXfdfFile() leem-no de volta para um documento.


API Reference Resumo

Classe/MétodoDescrição
Document.ToHtml() / Document.ToDocx() / Document.ToMarkdown()Renderize cada página para outro formato de documento
Page.ToSvg() / Page.ToImage()Renderize uma única página para SVG ou PNG
DocxOptions / MarkdownExportOptions / ImageOptionsOpções de renderização por formato
Document.ConvertToPdfA()Remedie um documento para um nível PDF/A e revalide
ConversionReportResultado da conversão: applied, unresolved, passed
TiffExportOptions / encodeTiff()Exportar para TIFF
exportFdfFile() / exportXfdfFile() / importFdfFile() / importXfdfFile()Exportar ou importar valores do campo AcroForm como FDF/XFDF

Ver também

 Português