Conversion

Conversion

Questa pagina tratta il rendering di un PDF in altri formati e la conversione di un documento verso la conformità PDF/A. Document espone un metodo To*() per ogni formato di output per l’intero documento; gli stessi metodi sono disponibili su Page per rendere una singola pagina.


Rendering in altri formati di documento

Document.ToHtml(), Document.ToDocx() e Document.ToMarkdown() eseguono il rendering di ogni pagina; Page.ToSvg() e Page.ToImage() eseguono il rendering di una pagina in una stringa SVG autonoma o in byte PNG. Ognuno accetta le proprie opzioni — mode su DocxOptions (‘flow’ riformatta il contenuto, ’textbox’ mantiene la geometria propria di ogni pagina) e images su MarkdownExportOptions (‘inline’ incorpora URI di dati immagine, ’external’ scrive file separati in 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 (per Page.ToImage()) accetta anche format, quality, scale, un esplicito width / height e background (‘white’ o ’transparent’).


Conversione verso PDF/A

Document.ConvertToPdfA() tenta di sanare un documento verso un PDF/A level (‘b’ o ‘u’) e lo ri-valida, restituendo un ConversionReport con applied (le azioni di sanatoria effettuate), unresolved (problemi che non è stato possibile risolvere) e passed. Eseguilo su una copia — ad esempio una creata con Document.ExtractPages() — in modo che il documento live e operativo non venga mai modificato dalla conversione.

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

Altri formati di esportazione

Oltre a HTML, Markdown, DOCX, SVG e PNG, la libreria esporta anche TIFF (TiffExportOptions, encodeTiff()) e importa/esporta valori dei campi AcroForm in FDF e XFDF (exportFdfFile(), exportXfdfFile(), importFdfFile(), importXfdfFile()) — utile per scambiare i dati dei moduli compilati separatamente dal PDF stesso.


Suggerimenti e migliori pratiche

  • Esegui Document.ConvertToPdfA() su una copia (ad esempio da Document.ExtractPages()), mai sul documento live che devi ancora salvare non convertito.
  • Verifica ConversionReport.unresolved anche quando passed è true per un livello di validazione più permissivo — alcune azioni di rimedio si risolvono completamente solo a un livello più restrittivo.
  • Usa mode: 'textbox' su DocxOptions quando l’output DOCX deve mantenere la geometria visiva esatta di ogni pagina; usa la modalità predefinita 'flow' quando dovrebbe riformattarsi come un normale documento di elaborazione testi.
  • Fornisci images: 'external' e un imageDir su MarkdownExportOptions per documenti di grandi dimensioni, anziché i predefiniti URI di dati inline, per mantenere piccolo il file Markdown stesso.

Problemi comuni

ProblemaCausaCorrezione
ConvertToPdfA() segnala ancora passed: falseNon tutti i problemi elencati da ConversionReport.unresolved possono essere risolti automaticamente (ad es. font incorporati mancanti o un /OutputIntent mancante)Applica manualmente le regole specifiche di unresolved, quindi riesegui ConvertToPdfA()
Il documento live è stato modificato inaspettatamente dopo un tentativo di conversione PDF/AConvertToPdfA() è stato chiamato direttamente sul documento di lavoro invece di una copiaEseguilo su una copia creata con Document.ExtractPages()
L’esportazione Markdown produce un unico file enormeIl images: 'inline' predefinito incorpora ogni immagine come URI datiPassa { images: 'external', imageDir: '...' } per scrivere le immagini come file separati
L’output DOCX perde il layout di pagina originaleIl mode: 'flow' predefinito riformatta il contenuto come un word processorPassa { mode: 'textbox' } per mantenere la geometria di ciascuna pagina

FAQ

In quali formati può essere convertito un PDF?

HTML, Markdown e DOCX per l’intero documento (Document.ToHtml() / ToMarkdown() / ToDocx()); SVG e PNG per pagina (Page.ToSvg() / Page.ToImage()); oltre a TIFF e FDF/XFDF esportazione di form-data.

La conversione in PDF/A modifica il mio documento originale?

Solo se chiami ConvertToPdfA() direttamente su di esso. Chiamalo su una copia — ad esempio doc.ExtractPages(doc.Pages.map((_, i) => i + 1)) — per mantenere il documento originale non convertito.

Come faccio a sapere se una conversione PDF/A è effettivamente riuscita?

Controlla ConversionReport.passed. applied elenca ciò che la conversione ha corretto, e unresolved elenca ciò che non ha potuto — ispeziona unresolved anche quando passed è true.

Posso esportare solo i valori dei campi del modulo compilati, senza il PDF stesso?

Sì — exportFdfFile() e exportXfdfFile() scrivono i valori attuali del campo AcroForm in un file FDF o XFDF separato; importFdfFile() / importXfdfFile() li leggono nuovamente in un documento.


Riepilogo API Reference

Classe/MetodoDescrizione
Document.ToHtml() / Document.ToDocx() / Document.ToMarkdown()Renderizza ogni pagina in un altro formato di documento
Page.ToSvg() / Page.ToImage()Renderizza una singola pagina in SVG o PNG
DocxOptions / MarkdownExportOptions / ImageOptionsOpzioni di rendering per formato
Document.ConvertToPdfA()Intervieni su un documento per raggiungere un livello PDF/A e ri-valida
ConversionReportIl risultato della conversione: applied, unresolved, passed
TiffExportOptions / encodeTiff()Esporta in TIFF
exportFdfFile() / exportXfdfFile() / importFdfFile() / importXfdfFile()Esporta o importa i valori del campo AcroForm come FDF/XFDF

Vedi anche

 Italiano