Conversion

Conversion

Ta strona opisuje renderowanie pliku PDF do innych formatów oraz konwertowanie dokumentu w kierunku zgodności z PDF/A. Document udostępnia jedną metodę To*() na każdy format wyjściowy dla całego dokumentu; te same metody istnieją w Page, aby renderować pojedynczą stronę.


Renderowanie do innych formatów dokumentów

Document.ToHtml(), Document.ToDocx() i Document.ToMarkdown() renderują każdą stronę; Page.ToSvg() i Page.ToImage() renderują jedną stronę do samodzielnego łańcucha SVG lub bajtów PNG. Każda przyjmuje własne opcje — mode na DocxOptions (‘flow’ przetwarza zawartość, ’textbox’ zachowuje własną geometrię każdej strony) oraz images na MarkdownExportOptions (‘inline’ osadza obrazy jako data URI, ’external’ zapisuje oddzielne pliki w 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 (dla Page.ToImage()) akceptuje także format, quality, scale, wyraźny width / height oraz background (‘white’ lub ’transparent’).


Konwertowanie w kierunku PDF/A

Document.ConvertToPdfA() próbuje naprawić dokument w kierunku PDF/A level (‘b’ lub ‘u’) i ponownie go zwalidować, zwracając ConversionReport z applied (działania naprawcze, które podjęto), unresolved (problemy, których nie udało się naprawić) oraz passed. Uruchom go na kopii — na przykład takiej stworzonej za pomocą Document.ExtractPages() — aby żywy, działający dokument nigdy nie został zmodyfikowany przez konwersję.

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

Inne formaty eksportu

Poza HTML, Markdown, DOCX, SVG i PNG, biblioteka również eksportuje TIFF (TiffExportOptions, encodeTiff()) oraz importuje/eksportuje wartości pól AcroForm w formatach FDF i XFDF (exportFdfFile(), exportXfdfFile(), importFdfFile(), importXfdfFile()) — przydatne do wymiany wypełnionych danych formularza oddzielnie od samego pliku PDF.


Wskazówki i najlepsze praktyki

  • Uruchom Document.ConvertToPdfA() na kopii (na przykład z Document.ExtractPages()), nigdy nie na bieżącym dokumencie, który musisz jeszcze zapisać nieprzekonwertowany.
  • Sprawdź ConversionReport.unresolved, nawet gdy passed jest true dla luźniejszego poziomu walidacji — niektóre działania naprawcze rozwiążą się w pełni dopiero przy bardziej rygorystycznym poziomie.
  • Użyj mode: 'textbox' na DocxOptions, gdy wyjście DOCX musi zachować dokładną wizualną geometrię każdej strony; użyj domyślnego trybu 'flow', gdy tekst ma się swobodnie układać jak w normalnym dokumencie edytora tekstu.
  • Przekaż images: 'external' i imageDir na MarkdownExportOptions dla dużych dokumentów, zamiast domyślnych wbudowanych URI danych, aby utrzymać plik Markdown mały.

Typowe problemy

ProblemPrzyczynaNaprawa
ConvertToPdfA() nadal zgłasza passed: falseNie każdy problem, który wymienia ConversionReport.unresolved, może być automatycznie naprawiony (np. brak wbudowanych czcionek lub brakujący /OutputIntent)Ręcznie zastosuj konkretne zasady unresolved, a następnie uruchom ponownie ConvertToPdfA()
Dokument na żywo został nieoczekiwanie zmodyfikowany po próbie konwersji PDF/AConvertToPdfA() został wywołany bezpośrednio na dokumencie roboczym zamiast na kopiiWywołaj go na kopii wykonanej przy użyciu Document.ExtractPages()
Eksport Markdown tworzy jeden ogromny plikDomyślny images: 'inline' osadza każdy obraz jako data URIPrzekaż { images: 'external', imageDir: '...' }, aby zapisać obrazy jako oddzielne pliki
Wyjście DOCX traci oryginalny układ stronyDomyślny mode: 'flow' przekształca zawartość jak edytor tekstuPrzekaż { mode: 'textbox' }, aby zachować indywidualną geometrię każdej strony

FAQ

Na jakie formaty można konwertować plik PDF?

HTML, Markdown i DOCX dla całego dokumentu (Document.ToHtml() / ToMarkdown() / ToDocx()); SVG i PNG na stronę (Page.ToSvg() / Page.ToImage()); plus TIFF i FDF/XFDF eksport danych formularza.

Czy konwersja do PDF/A modyfikuje mój oryginalny dokument?

Tylko jeśli wywołasz ConvertToPdfA() bezpośrednio na nim. Wywołaj go na kopii — na przykład doc.ExtractPages(doc.Pages.map((_, i) => i + 1)) — aby pozostawić oryginalny dokument nieprzekonwertowany.

Jak mogę sprawdzić, czy konwersja PDF/A rzeczywiście się powiodła?

Sprawdź ConversionReport.passed. applied wymienia, co konwersja naprawiła, a unresolved wymienia, czego nie mogła — sprawdź unresolved, nawet gdy passed jest true.

Czy mogę wyeksportować tylko wypełnione wartości pól formularza, bez samego pliku PDF?

Tak — exportFdfFile() i exportXfdfFile() zapisują bieżące wartości pól AcroForm do oddzielnego pliku FDF lub XFDF; importFdfFile() / importXfdfFile() odczytują je z powrotem do dokumentu.


API Reference Podsumowanie

Klasa/MetodaOpis
Document.ToHtml() / Document.ToDocx() / Document.ToMarkdown()Renderuj każdą stronę do innego formatu dokumentu
Page.ToSvg() / Page.ToImage()Renderuj pojedynczą stronę do SVG lub PNG
DocxOptions / MarkdownExportOptions / ImageOptionsOpcje renderowania per format
Document.ConvertToPdfA()Napraw dokument do poziomu PDF/A i ponownie zweryfikuj
ConversionReportWynik konwersji: applied, unresolved, passed
TiffExportOptions / encodeTiff()Eksportuj do TIFF
exportFdfFile() / exportXfdfFile() / importFdfFile() / importXfdfFile()Eksportuj lub importuj wartości pola AcroForm jako FDF/XFDF

Zobacz także

 Polski