Conversion

Conversion

Această pagină acoperă redarea unui PDF în alte formate și convertirea unui document spre conformitatea PDF/A. Document expune o metodă To*() pentru fiecare format de ieșire pentru întregul document; aceleași metode există pe Page pentru a reda o singură pagină.


Redarea în alte formate de document

Document.ToHtml(), Document.ToDocx() și Document.ToMarkdown() redau fiecare pagină; Page.ToSvg() și Page.ToImage() redau o pagină într-un șir SVG independent sau în octeți PNG. Fiecare acceptă propriile opțiuni — mode pe DocxOptions (‘flow’ rearanjează conținutul, ’textbox’ păstrează geometria proprie a fiecărei pagini) și images pe MarkdownExportOptions (‘inline’ încorporează URI-uri de date ale imaginii, ’external’ scrie fișiere separate în 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 (pentru Page.ToImage()) acceptă, de asemenea, format, quality, scale, un width / height explicit și background (‘white’ sau ’transparent’).


Convertirea spre PDF/A

Document.ConvertToPdfA() încearcă să remedieze un document spre un PDF/A level (‘b’ sau ‘u’) și să-l revalideze, returnând un ConversionReport cu applied (acțiunile de remediere efectuate), unresolved (problemele pe care nu le-a putut rezolva) și passed. Rulați-l pe o copie — de exemplu una creată cu Document.ExtractPages() — astfel încât documentul live, în lucru, să nu fie niciodată modificat de conversie.

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

Alte formate de export

Dincolo de HTML, Markdown, DOCX, SVG și PNG, biblioteca exportă, de asemenea, TIFF (TiffExportOptions, encodeTiff()) și importă/exportă valorile câmpurilor AcroForm în FDF și XFDF (exportFdfFile(), exportXfdfFile(), importFdfFile(), importXfdfFile()) — util pentru schimbul de date completate ale formularului separat de PDF în sine.


Sfaturi și cele mai bune practici

  • Rulați Document.ConvertToPdfA() pe o copie (de exemplu din Document.ExtractPages()), niciodată pe documentul live pe care trebuie să-l salvați neconvertit.
  • Verificați ConversionReport.unresolved chiar și atunci când passed este true pentru un nivel de validare mai lax — unele acțiuni de remediere se rezolvă complet doar la un nivel mai strict.
  • Utilizați mode: 'textbox' pe DocxOptions când ieșirea DOCX trebuie să păstreze geometria vizuală exactă a fiecărei pagini; folosiți modul implicit 'flow' când ar trebui să se rearanjeze ca un document de procesare de text obișnuit.
  • Transmiteți images: 'external' și un imageDir pe MarkdownExportOptions pentru documente mari, în loc de URI-urile de date inline implicite, pentru a menține fișierul Markdown în sine mic.

Probleme comune

ProblemăCauzăRemediere
ConvertToPdfA() încă raportează passed: falseNu toate problemele din listele ConversionReport.unresolved pot fi remediate automat (de exemplu, fonturi încorporate lipsă sau un /OutputIntent lipsă)Abordează manual regulile specifice unresolved, apoi rulează din nou ConvertToPdfA()
Documentul live a fost modificat neașteptat după o încercare de conversie PDF/AConvertToPdfA() a fost apelat direct pe documentul de lucru în loc de o copieApelă-l pe o copie făcută cu Document.ExtractPages()
Exportul Markdown produce un singur fișier uriașValoarea implicită a images: 'inline' încorporează fiecare imagine ca un URI de tip datePasați { images: 'external', imageDir: '...' } pentru a scrie imaginile ca fișiere separate
Ieșirea DOCX pierde aspectul original al paginiiValoarea implicită a mode: 'flow' rearanjează conținutul ca un procesor de textPasați { mode: 'textbox' } pentru a păstra geometria proprie a fiecărei pagini

FAQ

În ce formate poate fi convertit un PDF?

HTML, Markdown și DOCX pentru întregul document (Document.ToHtml() / ToMarkdown() / ToDocx()); SVG și PNG pe pagină (Page.ToSvg() / Page.ToImage()); plus export de date de tip formular TIFF și FDF/XFDF.

Conversia în PDF/A modifică documentul meu original?

Doar dacă apelezi ConvertToPdfA() direct pe el. Apelează-l pe o copie — de exemplu doc.ExtractPages(doc.Pages.map((_, i) => i + 1)) — pentru a păstra documentul original neconvertit.

Cum știu dacă o conversie PDF/A a reușit cu adevărat?

Verifică ConversionReport.passed. applied afișează ce a corectat conversia, iar unresolved afișează ce nu a putut — inspectează unresolved chiar și când passed este true.

Pot exporta doar valorile câmpurilor de formular completate, fără PDF-ul în sine?

Da — exportFdfFile() și exportXfdfFile() scriu valorile curente ale câmpului AcroForm într-un fișier FDF sau XFDF separat; importFdfFile() / importXfdfFile() le citesc înapoi într-un document.


API Reference Rezumat

Clasă/MetodăDescriere:
Document.ToHtml() / Document.ToDocx() / Document.ToMarkdown()Redă fiecare pagină într-un alt format de document
Page.ToSvg() / Page.ToImage()Redă o singură pagină în SVG sau PNG
DocxOptions / MarkdownExportOptions / ImageOptionsOpțiuni de redare per format
Document.ConvertToPdfA()Remediază un document la un nivel PDF/A și revalidează
ConversionReportRezultatul conversiei: applied, unresolved, passed
TiffExportOptions / encodeTiff()Exportă în TIFF
exportFdfFile() / exportXfdfFile() / importFdfFile() / importXfdfFile()Exportă sau importă valorile câmpului AcroForm ca FDF/XFDF

Vezi și:

 Română