Conversion

Conversion

Esta página cubre la renderización de un PDF a otros formatos y la conversión de un documento hacia el cumplimiento de PDF/A. Document expone un método To*() por formato de salida para todo el documento; los mismos métodos existen en Page para renderizar una sola página.


Renderización a Otros Formatos de Documento

Document.ToHtml(), Document.ToDocx() y Document.ToMarkdown() renderizan cada página; Page.ToSvg() y Page.ToImage() renderizan una página a una cadena SVG independiente o bytes PNG. Cada uno acepta sus propias opciones — mode en DocxOptions (‘flow’ reorganiza el contenido, ’textbox’ mantiene la geometría propia de cada página) y images en MarkdownExportOptions (‘inline’ incrusta URIs de datos de imagen, ’external’ escribe archivos separados en 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()) también acepta format, quality, scale, un width / height explícito, y background (‘white’ o ’transparent’).


Convirtiendo Hacia PDF/A

Document.ConvertToPdfA() intenta remediar un documento hacia un PDF/A level (‘b’ o ‘u’) y lo vuelve a validar, devolviendo un ConversionReport con applied (las acciones de remediación realizadas), unresolved (problemas que no pudo solucionar) y passed. Ejecútelo sobre una copia — por ejemplo una hecha con Document.ExtractPages() — para que el documento en vivo y en uso nunca sea alterado por la conversión.

// 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');

Otros formatos de exportación

Más allá de HTML, Markdown, DOCX, SVG y PNG, la biblioteca también exporta TIFF (TiffExportOptions, encodeTiff()) e importa/exporta valores de campo AcroForm en FDF y XFDF (exportFdfFile(), exportXfdfFile(), importFdfFile(), importXfdfFile()) — útil para intercambiar datos de formularios completados por separado del propio PDF.


Consejos y mejores prácticas

  • Ejecute Document.ConvertToPdfA() en una copia (por ejemplo desde Document.ExtractPages()), nunca en el documento en vivo que aún necesita guardar sin convertir.
  • Verifique ConversionReport.unresolved incluso cuando passed esté true para un nivel de validación más laxo — algunas acciones de remediación solo se resuelven completamente en un nivel más estricto.
  • Utilice mode: 'textbox' en DocxOptions cuando la salida DOCX necesite mantener la geometría visual exacta de cada página; use el modo predeterminado 'flow' cuando deba reorganizarse como un documento de procesamiento de texto normal.
  • Pase images: 'external' y un imageDir en MarkdownExportOptions para documentos grandes, en lugar de los URI de datos en línea predeterminados, para mantener pequeño el propio archivo Markdown.

Problemas comunes

ProblemaCausaCorrección
ConvertToPdfA() todavía informa passed: falseNo todos los problemas que ConversionReport.unresolved lista pueden ser remediados automáticamente (p.ej., fuentes incrustadas faltantes o un /OutputIntent faltante)Aborde manualmente las reglas específicas de unresolved, luego vuelva a ejecutar ConvertToPdfA()
El documento en vivo se modificó inesperadamente después de un intento de conversión PDF/AConvertToPdfA() se llamó directamente sobre el documento de trabajo en lugar de una copiaEjecuta en una copia hecha con Document.ExtractPages()
La exportación a Markdown produce un archivo enormeEl images: 'inline' predeterminado incrusta cada imagen como una URI de datosPasa { images: 'external', imageDir: '...' } para escribir las imágenes como archivos separados
La salida DOCX pierde el diseño de página originalEl mode: 'flow' predeterminado reordena el contenido como un procesador de textosPasa { mode: 'textbox' } para mantener la geometría propia de cada página

FAQ

¿A qué formatos se puede convertir un PDF?

HTML, Markdown y DOCX para todo el documento (Document.ToHtml() / ToMarkdown() / ToDocx()); SVG y PNG por página (Page.ToSvg() / Page.ToImage()); además de exportación de datos de formulario en TIFF y FDF/XFDF.

¿Convertir a PDF/A modifica mi documento original?

Solo si llamas a ConvertToPdfA() directamente sobre él. Llámalo sobre una copia — por ejemplo doc.ExtractPages(doc.Pages.map((_, i) => i + 1)) — para mantener el documento original sin convertir.

¿Cómo sé si una conversión a PDF/A realmente tuvo éxito?

Revisa ConversionReport.passed. applied enumera lo que la conversión corrigió, y unresolved enumera lo que no pudo — inspecciona unresolved incluso cuando passed está true.

¿Puedo exportar solo los valores de los campos de formulario completados, sin el PDF en sí?

Sí — exportFdfFile() y exportXfdfFile() escriben los valores actuales del campo AcroForm en un archivo FDF o XFDF separado; importFdfFile() / importXfdfFile() los leen de nuevo en un documento.


API Reference Resumen

Clase/MétodoDescripción
Document.ToHtml() / Document.ToDocx() / Document.ToMarkdown()Renderiza cada página a otro formato de documento
Page.ToSvg() / Page.ToImage()Renderiza una sola página a SVG o PNG
DocxOptions / MarkdownExportOptions / ImageOptionsOpciones de renderizado por formato
Document.ConvertToPdfA()Remediar un documento hacia un nivel PDF/A y revalidar
ConversionReportResultado de la conversión: applied, unresolved, passed
TiffExportOptions / encodeTiff()Exportar a TIFF
exportFdfFile() / exportXfdfFile() / importFdfFile() / importXfdfFile()Exportar o importar los valores del campo AcroForm como FDF/XFDF

Ver también

 Español