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 dinDocument.ExtractPages()), niciodată pe documentul live pe care trebuie să-l salvați neconvertit. - Verificați
ConversionReport.unresolvedchiar și atunci cândpassedestetruepentru un nivel de validare mai lax — unele acțiuni de remediere se rezolvă complet doar la un nivel mai strict. - Utilizați
mode: 'textbox'peDocxOptionscâ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 unimageDirpeMarkdownExportOptionspentru 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: false | Nu 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/A | ConvertToPdfA() a fost apelat direct pe documentul de lucru în loc de o copie | Apelă-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 date | Pasați { images: 'external', imageDir: '...' } pentru a scrie imaginile ca fișiere separate |
| Ieșirea DOCX pierde aspectul original al paginii | Valoarea implicită a mode: 'flow' rearanjează conținutul ca un procesor de text | Pasaț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 / ImageOptions | Opțiuni de redare per format |
Document.ConvertToPdfA() | Remediază un document la un nivel PDF/A și revalidează |
ConversionReport | Rezultatul conversiei: applied, unresolved, passed |
TiffExportOptions / encodeTiff() | Exportă în TIFF |
exportFdfFile() / exportXfdfFile() / importFdfFile() / importXfdfFile() | Exportă sau importă valorile câmpului AcroForm ca FDF/XFDF |