Conversion
Conversion
Den här sidan behandlar rendering av en PDF till andra format och konvertering av ett dokument mot PDF/A efterlevnad. Document exponerar en To*() metod per utdataformat för hela dokumentet; samma metoder finns på Page för att rendera en enskild sida.
Rendering till andra dokumentformat
Document.ToHtml(), Document.ToDocx() och Document.ToMarkdown() renderar varje sida; Page.ToSvg() och Page.ToImage() renderar en sida till en fristående SVG-sträng eller PNG-bytes. Var och en accepterar sina egna alternativ — mode på DocxOptions (‘flow’ omflödar innehåll, ’textbox’ behåller varje sidas egen geometri) och images på MarkdownExportOptions (‘inline’ bäddar in bild-data-URI:er, ’external’ skriver separata filer till 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 (för Page.ToImage()) accepterar även format, quality, scale, en explicit width / height, och background (‘white’ eller ’transparent’).
Konvertering mot PDF/A
Document.ConvertToPdfA() försöker åtgärda ett dokument mot en PDF/A level (‘b’ eller ‘u’) och validerar det på nytt, och returnerar ett ConversionReport med applied (de åtgärdssteg den utförde), unresolved (problem den inte kunde lösa) och passed. Kör den på en kopia — till exempel en som skapats med Document.ExtractPages() — så att det levande, fungerande dokumentet aldrig ändras av konverteringen.
// 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');Andra exportformat
Utöver HTML, Markdown, DOCX, SVG och PNG exporterar biblioteket också TIFF (TiffExportOptions, encodeTiff()) och importerar/exporterar AcroForm fältvärden i FDF och XFDF (exportFdfFile(), exportXfdfFile(), importFdfFile(), importXfdfFile()) — användbart för att utbyta ifyllda formulärdata separat från PDF-filen själv.
Tips och bästa praxis
- Kör
Document.ConvertToPdfA()på en kopia (till exempel frånDocument.ExtractPages()), aldrig på live-dokumentet som du fortfarande behöver spara okonverterat. - Kontrollera
ConversionReport.unresolvedäven närpassedärtrueför en lösare valideringsnivå — vissa åtgärder för korrigering blir först helt lösta på en striktare nivå. - Använd
mode: 'textbox'påDocxOptionsnär DOCX-utdata måste behålla varje sidas exakta visuella geometri; använd standardläget'flow'när den ska flöda om som ett vanligt ordbehandlingsdokument. - Skicka
images: 'external'och enimageDirpåMarkdownExportOptionsför stora dokument, snarare än standard inline data URIs, för att hålla Markdown-filen själv liten.
Vanliga problem
| Problem | Orsak | Åtgärd |
|---|---|---|
ConvertToPdfA() rapporterar fortfarande passed: false | Inte alla problemlistor för ConversionReport.unresolved kan automatiskt åtgärdas (t.ex. saknade inbäddade typsnitt eller en saknad /OutputIntent) | Hantera de specifika unresolved-reglerna manuellt, kör sedan om ConvertToPdfA() |
| Live-dokumentet ändrades oväntat efter ett PDF/A konverteringsförsök | ConvertToPdfA() anropades direkt på arbetsdokumentet istället för en kopia | Anropa den på en kopia gjord med Document.ExtractPages() |
| Markdown-exporten skapar en enda stor fil | Standard-images: 'inline' bäddar in varje bild som en data-URI | Skicka { images: 'external', imageDir: '...' } för att skriva bilder som separata filer |
| DOCX-utdata förlorar den ursprungliga sidlayouten | Standard-mode: 'flow' flödar om innehållet som en ordbehandlare | Skicka { mode: 'textbox' } för att behålla varje sidas egen geometri |
FAQ
Vilka format kan en PDF konverteras till?
HTML, Markdown och DOCX för hela dokumentet (Document.ToHtml() / ToMarkdown() / ToDocx()); SVG och PNG per sida (Page.ToSvg() / Page.ToImage()); samt TIFF och FDF/XFDF formulärdataexport.
Modifierar konvertering till PDF/A mitt originaldokument?
Endast om du anropar ConvertToPdfA() på den direkt. Anropa den på en kopia — till exempel doc.ExtractPages(doc.Pages.map((_, i) => i + 1)) — för att behålla originaldokumentet oförändrat.
Hur vet jag om en PDF/A-konvertering faktiskt lyckades?
Kontrollera ConversionReport.passed. applied listar vad konverteringen fixade, och unresolved listar vad den inte kunde — inspektera unresolved även när passed är true.
Kan jag exportera bara de ifyllda formulärfältsvärdena, utan själva PDF-filen?
Ja — exportFdfFile() och exportXfdfFile() skriver de aktuella AcroForm fältvärdena till en separat FDF- eller XFDF-fil; importFdfFile() / importXfdfFile() läser tillbaka dem i ett dokument.
API Reference Sammanfattning
| Klass/Metod | Beskrivning |
|---|---|
Document.ToHtml() / Document.ToDocx() / Document.ToMarkdown() | Rendera varje sida till ett annat dokumentformat |
Page.ToSvg() / Page.ToImage() | Rendera en enskild sida till SVG eller PNG |
DocxOptions / MarkdownExportOptions / ImageOptions | Renderingsalternativ per format |
Document.ConvertToPdfA() | Remediate ett dokument mot en PDF/A-nivå och validera på nytt |
ConversionReport | Konverteringsresultatet: applied, unresolved, passed |
TiffExportOptions / encodeTiff() | Exportera till TIFF |
exportFdfFile() / exportXfdfFile() / importFdfFile() / importXfdfFile() | Exportera eller importera AcroForm fältvärden som FDF/XFDF |