Conversion
Conversion
Ez az oldal a PDF más formátumokba való renderelését és egy dokumentum PDF/A megfelelőség felé történő átalakítását tárgyalja. Document egy To*() módszert tesz közzé kimeneti formátumonként a teljes dokumentumhoz; ugyanazok a módszerek elérhetők Page esetén egyetlen oldal rendereléséhez.
Renderelés más dokumentumformátumokba
Document.ToHtml(), Document.ToDocx() és Document.ToMarkdown() minden oldalt renderel; Page.ToSvg() és Page.ToImage() egy oldalt renderel egy önálló SVG karakterláncra vagy PNG bájtokra. Mindegyik saját opciókat fogad — mode a DocxOptions esetén (‘flow’ újrafolyamolja a tartalmat, ’textbox’ megtartja az egyes oldalak saját geometriáját) és images a MarkdownExportOptions esetén (‘inline’ beágyazza a kép adat-URI-kat, ’external’ külön fájlokba írja a imageDir könyvtárba).
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 (Page.ToImage() esetén) továbbiakban elfogadja a format, quality, scale, egy explicit width / height párost, valamint a background (‘white’ vagy ’transparent’).
Átalakítás a PDF/A felé
Document.ConvertToPdfA() megpróbálja a dokumentumot egy PDF/A level (‘b’ vagy ‘u’) felé helyrehozni, majd újra érvényesíti, egy ConversionReport objektummal, amely tartalmazza a applied (a végrehajtott helyreállítási műveletek), a unresolved (azokat a problémákat, amelyeket nem tudott javítani), és passed. Futtassa egy másolaton — például egy Document.ExtractPages() segítségével létrehozott példányon — hogy az élő, működő dokumentum soha ne változzon meg a konverzió sorá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');Egyéb exportálási formátumok
A HTML, Markdown, DOCX, SVG és PNG mellett a könyvtár TIFF-et is exportál (TiffExportOptions, encodeTiff()), és importál/exportál AcroForm mezőértékeket FDF és XFDF formátumban (exportFdfFile(), exportXfdfFile(), importFdfFile(), importXfdfFile()) — hasznos a kitöltött űrlapadatok PDF-től külön történő cseréjéhez.
Tippek és bevált gyakorlatok
- Futtassa a
Document.ConvertToPdfA()egy másolaton (például aDocument.ExtractPages()alapján), soha ne az élő dokumentumon, amelyet még konvertálatlanul kell menteni. - Ellenőrizze a
ConversionReport.unresolvedmég akkor is, ha apassedtrueegy lazább validációs szinthez — egyes helyreállítási műveletek csak szigorúbb szinten oldódnak meg teljesen. - Használja a
mode: 'textbox'aDocxOptionsesetén, amikor a DOCX kimenetnek meg kell őriznie minden oldal pontos vizuális geometriai elrendezését; használja az alapértelmezett'flow'módot, amikor a szövegnek normál szövegszerkesztő dokumentumként kell újrafolyásra kerülnie. - Adjon át
images: 'external'és egyimageDiraMarkdownExportOptionsnagy dokumentumokhoz, ahelyett, hogy az alapértelmezett beágyazott adat-URI-kat használná, a Markdown fájl méretének kicsi tartása érdekében.
Gyakori problémák
| Probléma | Ok | Javítás |
|---|---|---|
ConvertToPdfA() még mindig jelent passed: false | Nem minden ConversionReport.unresolved listán szereplő probléma javítható automatikusan (pl. hiányzó beágyazott betűkészletek vagy hiányzó /OutputIntent) | A konkrét unresolved szabályokat manuálisan kezelje, majd futtassa újra a ConvertToPdfA()-t |
| Az élő dokumentum váratlanul módosult a PDF/A konverziós kísérlet után | ConvertToPdfA() közvetlenül a munkadokumentumon lett meghívva, nem pedig egy másolaton | Hívd meg egy Document.ExtractPages() által készített másolaton |
| A Markdown export egyetlen hatalmas fájlt állít elő | Az alapértelmezett images: 'inline' minden képet adat-URI-ként ágyaz be | Add meg a { images: 'external', imageDir: '...' } paramétert a képek külön fájlokba írásához |
| A DOCX kimenet elveszíti az eredeti oldalelrendezést | Az alapértelmezett mode: 'flow' úgy tördeli a tartalmat, mint egy szövegszerkesztő | Add meg a { mode: 'textbox' } paramétert, hogy megőrizze minden oldal saját geometriáját |
FAQ
Milyen formátumokra konvertálható a PDF?
HTML, Markdown, és DOCX a teljes dokumentumhoz (Document.ToHtml() / ToMarkdown() / ToDocx()); SVG és PNG oldalanként (Page.ToSvg() / Page.ToImage()); plusz TIFF és FDF/XFDF form-adat export.
A PDF/A konvertálása módosítja az eredeti dokumentumot?
Csak akkor, ha közvetlenül meghívod a ConvertToPdfA() parancsot rajta. Hívd meg egy másolaton — például doc.ExtractPages(doc.Pages.map((_, i) => i + 1)) — hogy az eredeti dokumentum konvertálatlan maradjon.
Hogyan tudhatom, hogy a PDF/A konverzió valóban sikeres volt?
Ellenőrizd a ConversionReport.passed. A applied felsorolja, mit javított a konverzió, a unresolved pedig, mit nem tudott — vizsgáld meg a unresolved még akkor is, ha a passed true.
Exportálhatom csak a kitöltött űrlapmezők értékeit, a PDF maga nélkül?
Igen — exportFdfFile() és exportXfdfFile() a jelenlegi AcroForm mezőértékeket egy külön FDF vagy XFDF fájlba írják; importFdfFile() / importXfdfFile() visszaolvassák őket egy dokumentumba.
API Reference Összefoglaló
| Osztály/Módszer | Leírás |
|---|---|
Document.ToHtml() / Document.ToDocx() / Document.ToMarkdown() | Minden oldalt egy másik dokumentumformátumba renderel |
Page.ToSvg() / Page.ToImage() | Egyetlen oldalt SVG vagy PNG formátumba renderel |
DocxOptions / MarkdownExportOptions / ImageOptions | Formátumonkénti renderelési beállítások |
Document.ConvertToPdfA() | Javítsa a dokumentumot egy PDF/A szint felé, és ellenőrizze újra |
ConversionReport | A konverzió eredménye: applied, unresolved, passed |
TiffExportOptions / encodeTiff() | Exportálás TIFF-be |
exportFdfFile() / exportXfdfFile() / importFdfFile() / importXfdfFile() | Exportálja vagy importálja a AcroForm mezőértékeket FDF/XFDF formátumban |