Conversion
Conversion
Diese Seite behandelt das Rendern einer PDF in andere Formate und das Konvertieren eines Dokuments hin zu PDF/A-Konformität. Document stellt für jedes Ausgabeformat eine To*()-Methode für das gesamte Dokument bereit; dieselben Methoden existieren auf Page, um eine einzelne Seite zu rendern.
Rendern in andere Dokumentformate
Document.ToHtml(), Document.ToDocx() und Document.ToMarkdown() rendern jede Seite; Page.ToSvg() und Page.ToImage() rendern eine einzelne Seite zu einem eigenständigen SVG-String oder PNG-Bytes. Jede akzeptiert ihre eigenen Optionen — mode auf DocxOptions (‘flow’ fließt den Inhalt neu, ’textbox’ behält die Geometrie jeder Seite bei) und images auf MarkdownExportOptions (‘inline’ bettet Bild-Data-URIs ein, ’external’ schreibt separate Dateien 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 (für Page.ToImage()) akzeptiert zudem format, quality, scale, ein explizites width / height und background (‘white’ oder ’transparent’).
Konvertieren hin zu PDF/A
Document.ConvertToPdfA() versucht, ein Dokument hin zu einem PDF/A level (‘b’ oder ‘u’) zu remediieren und validiert es erneut, wobei ein ConversionReport mit applied (die vorgenommenen Remediation-Aktionen), unresolved (Probleme, die nicht behoben werden konnten) und passed zurückgegeben wird. Führen Sie es auf einer Kopie aus — zum Beispiel einer, die mit Document.ExtractPages() erstellt wurde — damit das live arbeitende Dokument niemals durch die Konvertierung verändert wird.
// 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');Weitere Exportformate
Über HTML, Markdown, DOCX, SVG und PNG hinaus exportiert die Bibliothek außerdem TIFF (TiffExportOptions, encodeTiff()) und importiert/exportiert AcroForm-Feldwerte in FDF und XFDF (exportFdfFile(), exportXfdfFile(), importFdfFile(), importXfdfFile()) — nützlich für den Austausch ausgefüllter Formulardaten getrennt vom PDF selbst.
Tipps und bewährte Verfahren
- Führen Sie
Document.ConvertToPdfA()auf einer Kopie aus (zum Beispiel vonDocument.ExtractPages()), niemals auf dem Live-Dokument, das Sie noch unkonvertiert speichern müssen. - Überprüfen Sie
ConversionReport.unresolvedselbst dann, wennpassedtruefür ein lockeres Validierungsniveau ist — einige Korrekturmaßnahmen werden erst bei einem strengeren Niveau vollständig wirksam. - Verwenden Sie
mode: 'textbox'aufDocxOptions, wenn die DOCX-Ausgabe die exakte visuelle Geometrie jeder Seite beibehalten muss; verwenden Sie den Standardmodus'flow', wenn sie sich wie ein normales Textverarbeitungsdokument neu fließen soll. - Übergeben Sie
images: 'external'und einimageDiraufMarkdownExportOptionsfür große Dokumente, anstatt die standardmäßigen Inline-Data-URIs zu verwenden, um die Markdown-Datei selbst klein zu halten.
Häufige Probleme
| Problem | Ursache | Lösung |
|---|---|---|
ConvertToPdfA() meldet immer noch passed: false | Nicht jedes Problem, das ConversionReport.unresolved auflistet, kann automatisch behoben werden (z.B. fehlende eingebettete Schriftarten oder ein fehlendes /OutputIntent) | Beheben Sie die spezifischen unresolved-Regeln manuell, und führen Sie dann ConvertToPdfA() erneut aus |
| Das Live-Dokument wurde nach einem PDF/A-Konvertierungsversuch unerwartet geändert | ConvertToPdfA() wurde direkt am Arbeitsdokument anstelle einer Kopie aufgerufen | Rufen Sie es auf einer Kopie auf, die mit Document.ExtractPages() erstellt wurde |
| Der Markdown-Export erzeugt eine riesige Datei | Der Standard-images: 'inline' bettet jedes Bild als Data-URI ein | Übergeben Sie { images: 'external', imageDir: '...' }, um Bilder als separate Dateien zu schreiben |
| DOCX-Ausgabe verliert das ursprüngliche Seitenlayout | Der Standard-mode: 'flow' formatiert den Inhalt wie ein Textverarbeitungsprogramm neu | Übergeben Sie { mode: 'textbox' }, um die Geometrie jeder Seite beizubehalten |
FAQ
In welche Formate kann ein PDF konvertiert werden?
HTML, Markdown und DOCX für das gesamte Dokument (Document.ToHtml() / ToMarkdown() / ToDocx()); SVG und PNG pro Seite (Page.ToSvg() / Page.ToImage()); plus TIFF und FDF/XFDF Formulardaten-Export.
Verändert das Konvertieren zu PDF/A mein Originaldokument?
Nur wenn Sie ConvertToPdfA() direkt darauf aufrufen. Rufen Sie es auf einer Kopie auf – zum Beispiel doc.ExtractPages(doc.Pages.map((_, i) => i + 1)) – um das Originaldokument unverändert zu lassen.
Wie erkenne ich, ob eine PDF/A-Konvertierung tatsächlich erfolgreich war?
Prüfen Sie ConversionReport.passed. applied listet auf, was die Konvertierung korrigiert hat, und unresolved listet auf, was nicht korrigiert werden konnte – prüfen Sie unresolved sogar, wenn passed true ist.
Kann ich nur die ausgefüllten Formularfeldwerte exportieren, ohne das PDF selbst?
Ja — exportFdfFile() und exportXfdfFile() schreiben die aktuellen AcroForm Feldwerte in eine separate FDF- oder XFDF-Datei; importFdfFile() / importXfdfFile() lesen sie zurück in ein Dokument.
API Reference Zusammenfassung
| Klasse/Methode | Beschreibung |
|---|---|
Document.ToHtml() / Document.ToDocx() / Document.ToMarkdown() | Render jede Seite in ein anderes Dokumentformat |
Page.ToSvg() / Page.ToImage() | Rendern Sie eine einzelne Seite nach SVG oder PNG |
DocxOptions / MarkdownExportOptions / ImageOptions | Rendering-Optionen pro Format |
Document.ConvertToPdfA() | Korrigieren Sie ein Dokument bis zu einem PDF/A-Level und validieren Sie es erneut |
ConversionReport | Das Konvertierungsergebnis: applied, unresolved, passed |
TiffExportOptions / encodeTiff() | Export nach TIFF |
exportFdfFile() / exportXfdfFile() / importFdfFile() / importXfdfFile() | Export oder Import von AcroForm-Feldwerten als FDF/XFDF |