Conversion

Conversion

Tato stránka popisuje vykreslování PDF do jiných formátů a konverzi dokumentu směrem k PDF/A compliance. Document poskytuje jednu To*() metodu pro každý výstupní formát pro celý dokument; stejné metody existují na Page pro vykreslení jedné stránky.


Vykreslování do jiných formátů dokumentů

Document.ToHtml(), Document.ToDocx() a Document.ToMarkdown() vykreslují každou stránku; Page.ToSvg() a Page.ToImage() vykreslují jednu stránku do samostatného řetězce SVG nebo bajtů PNG. Každý přijímá své vlastní možnosti — mode na DocxOptions (‘flow’ přetéká obsah, ’textbox’ zachovává vlastní geometrii každé stránky) a images na MarkdownExportOptions (‘inline’ vkládá data obrázku jako URI, ’external’ zapisuje samostatné soubory do 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 (pro Page.ToImage()) také přijímá format, quality, scale, explicitní width / height a background (‘white’ nebo ’transparent’).


Konverze směrem k PDF/A

Document.ConvertToPdfA() se snaží opravit dokument směrem k PDF/A level (‘b’ nebo ‘u’) a znovu jej validovat, vrací ConversionReport s applied (opravy, které provedl), unresolved (problémy, které nemohl opravit) a passed. Spusťte jej na kopii — například vytvořenou pomocí Document.ExtractPages() — aby živý, funkční dokument nebyl konverzí nikdy změněn.

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

Další exportní formáty

Kromě HTML, Markdown, DOCX, SVG a PNG knihovna také exportuje TIFF (TiffExportOptions, encodeTiff()) a importuje/exportuje hodnoty polí AcroForm ve formátech FDF a XFDF (exportFdfFile(), exportXfdfFile(), importFdfFile(), importXfdfFile()) — užitečné pro výměnu vyplněných dat formuláře odděleně od samotného PDF.


Tipy a osvědčené postupy

  • Spusťte Document.ConvertToPdfA() na kopii (například z Document.ExtractPages()), nikdy na živém dokumentu, který ještě potřebujete uložit bez konverze.
  • Zkontrolujte ConversionReport.unresolved i když je passed true pro volnější úroveň validace — některé opravy se plně vyřeší až při přísnější úrovni.
  • Použijte mode: 'textbox' na DocxOptions, když výstup DOCX musí zachovat přesnou vizuální geometrii každé stránky; použijte výchozí režim 'flow', když by měl text plynule přetékat jako běžný dokument pro zpracování textu.
  • Předejte images: 'external' a imageDir na MarkdownExportOptions pro velké dokumenty, místo výchozích vložených data URI, aby byl soubor Markdown samotný malý.

Běžné problémy

ProblémPříčinaOprava
ConvertToPdfA() stále hlásí passed: falseNe každý problém v seznamech ConversionReport.unresolved lze automaticky opravit (např. chybějící vložená písma nebo chybějící /OutputIntent)Řešte konkrétní pravidla unresolved ručně a poté spusťte znovu ConvertToPdfA()
Živý dokument byl neočekávaně upraven po pokusu o konverzi PDF/AConvertToPdfA() byl volán přímo na pracovním dokumentu místo kopieSpusťte ji na kopii vytvořené pomocí Document.ExtractPages()
Export do Markdownu vytváří jeden obrovský souborVýchozí images: 'inline' vkládá každý obrázek jako data URIPoužijte { images: 'external', imageDir: '...' } k zápisu obrázků jako samostatných souborů
Výstup DOCX ztrácí původní rozvržení stránkyVýchozí mode: 'flow' přetéká obsah jako textový procesorPoužijte { mode: 'textbox' } k zachování geometrie každé stránky

FAQ

Do jakých formátů lze PDF převést?

HTML, Markdown a DOCX pro celý dokument (Document.ToHtml() / ToMarkdown() / ToDocx()); SVG a PNG po stránce (Page.ToSvg() / Page.ToImage()); plus TIFF a FDF/XFDF export form-data.

Mění převod na PDF/A můj původní dokument?

Pouze pokud na něj přímo zavoláte ConvertToPdfA(). Zavolejte to na kopii — například doc.ExtractPages(doc.Pages.map((_, i) => i + 1)) — aby byl původní dokument ponechán beze změny.

Jak zjistím, jestli konverze PDF/A skutečně uspěla?

Zkontrolujte ConversionReport.passed. applied uvádí, co konverze opravila, a unresolved uvádí, co se nepodařilo — prohlédněte unresolved i když je passed true.

Mohu exportovat jen vyplněné hodnoty formulářových polí, bez samotného PDF?

Ano — exportFdfFile() a exportXfdfFile() zapíší aktuální hodnoty pole AcroForm do samostatného souboru FDF nebo XFDF; importFdfFile() / importXfdfFile() je načtou zpět do dokumentu.


API Reference Shrnutí

Třída/metodaPopis:
Document.ToHtml() / Document.ToDocx() / Document.ToMarkdown()Renderovat každou stránku do jiného formátu dokumentu
Page.ToSvg() / Page.ToImage()Renderovat jednu stránku do SVG nebo PNG
DocxOptions / MarkdownExportOptions / ImageOptionsMožnosti vykreslování podle formátu
Document.ConvertToPdfA()Opravit dokument na úroveň PDF/A a znovu ověřit
ConversionReportVýsledek konverze: applied, unresolved, passed
TiffExportOptions / encodeTiff()Exportovat do TIFF
exportFdfFile() / exportXfdfFile() / importFdfFile() / importXfdfFile()Exportovat nebo importovat hodnoty pole AcroForm jako FDF/XFDF

Viz také:

 Čeština