Conversion

Conversion

Halaman ini mencakup rendering PDF ke format lain dan mengonversi dokumen menuju kepatuhan PDF/A. Document menyediakan satu metode To*() per format output untuk seluruh dokumen; metode yang sama ada pada Page untuk merender satu halaman.


Rendering ke Format Dokumen Lain

Document.ToHtml(), Document.ToDocx(), dan Document.ToMarkdown() merender setiap halaman; Page.ToSvg() dan Page.ToImage() merender satu halaman menjadi string SVG mandiri atau byte PNG. Masing-masing menerima opsi mereka sendiri — mode pada DocxOptions (‘flow’ mengalirkan kembali konten, ’textbox’ mempertahankan geometri masing-masing halaman) dan images pada MarkdownExportOptions (‘inline’ menyematkan data URI gambar, ’external’ menulis file terpisah ke dalam 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 (untuk Page.ToImage()) juga menerima format, quality, scale, sebuah width / height eksplisit, dan background (‘white’ atau ’transparent’).


Mengonversi Menuju PDF/A

Document.ConvertToPdfA() berusaha memperbaiki sebuah dokumen menuju PDF/A level (‘b’ atau ‘u’) dan memvalidasinya kembali, mengembalikan ConversionReport dengan applied (tindakan perbaikan yang diambil), unresolved (isu yang tidak dapat diperbaiki), dan passed. Jalankan pada salinan — misalnya satu yang dibuat dengan Document.ExtractPages() — sehingga dokumen yang aktif dan berfungsi tidak pernah diubah oleh konversi.

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

Format Ekspor Lainnya

Selain HTML, Markdown, DOCX, SVG, dan PNG, perpustakaan ini juga mengekspor TIFF (TiffExportOptions, encodeTiff()) dan mengimpor/mengekspor nilai bidang AcroForm dalam FDF dan XFDF (exportFdfFile(), exportXfdfFile(), importFdfFile(), importXfdfFile()) — berguna untuk menukar data formulir yang sudah terisi secara terpisah dari PDF itu sendiri.


Tips dan Praktik Terbaik

  • Jalankan Document.ConvertToPdfA() pada salinan (misalnya dari Document.ExtractPages()), jangan pernah pada dokumen asli yang masih perlu Anda simpan tanpa konversi.
  • Periksa ConversionReport.unresolved bahkan ketika passed berstatus true untuk tingkat validasi yang lebih longgar — beberapa tindakan perbaikan hanya sepenuhnya teratasi pada tingkat yang lebih ketat.
  • Gunakan mode: 'textbox' pada DocxOptions ketika output DOCX perlu mempertahankan geometri visual tiap halaman secara tepat; gunakan mode 'flow' default ketika harus mengalir kembali seperti dokumen pengolah kata normal.
  • Berikan images: 'external' dan imageDir pada MarkdownExportOptions untuk dokumen besar, alih-alih data URI inline default, agar berkas Markdown itu sendiri tetap kecil.

Masalah Umum

MasalahPenyebabPerbaikan
ConvertToPdfA() masih melaporkan passed: falseTidak setiap masalah yang terdaftar ConversionReport.unresolved dapat diperbaiki secara otomatis (misalnya font tertanam yang hilang atau /OutputIntent yang hilang)Tangani aturan unresolved spesifik secara manual, lalu jalankan kembali ConvertToPdfA()
Dokumen langsung berubah secara tak terduga setelah upaya konversi PDF/AConvertToPdfA() dipanggil langsung pada dokumen kerja alih-alih salinanPanggil pada salinan yang dibuat dengan Document.ExtractPages()
Ekspor Markdown menghasilkan satu file besarimages: 'inline' default menyematkan setiap gambar sebagai data URIBerikan { images: 'external', imageDir: '...' } untuk menulis gambar sebagai file terpisah
Output DOCX kehilangan tata letak halaman aslimode: 'flow' default menyusun ulang konten seperti pengolah kataBerikan { mode: 'textbox' } untuk mempertahankan geometri masing-masing halaman

FAQ

Format apa yang dapat dikonversi dari PDF?

HTML, Markdown, dan DOCX untuk seluruh dokumen (Document.ToHtml() / ToMarkdown() / ToDocx()); SVG dan PNG per halaman (Page.ToSvg() / Page.ToImage()); plus TIFF dan FDF/XFDF ekspor form-data.

Apakah mengonversi ke PDF/A mengubah dokumen asli saya?

Hanya jika Anda memanggil ConvertToPdfA() secara langsung pada dokumen tersebut. Panggil pada salinan — misalnya doc.ExtractPages(doc.Pages.map((_, i) => i + 1)) — untuk menjaga agar dokumen asli tidak dikonversi.

Bagaimana saya tahu apakah konversi PDF/A berhasil?

Periksa ConversionReport.passed. applied mencantumkan apa yang diperbaiki oleh konversi, dan unresolved mencantumkan apa yang tidak dapat diperbaiki — periksa unresolved bahkan ketika passed adalah true.

Apakah saya dapat mengekspor hanya nilai bidang formulir yang telah diisi, tanpa PDF itu sendiri?

Ya — exportFdfFile() dan exportXfdfFile() menulis nilai bidang AcroForm saat ini ke file FDF atau XFDF terpisah; importFdfFile() / importXfdfFile() membacanya kembali ke dalam dokumen.


API Reference Ringkasan

Kelas/MetodeDeskripsi
Document.ToHtml() / Document.ToDocx() / Document.ToMarkdown()Render setiap halaman ke format dokumen lain
Page.ToSvg() / Page.ToImage()Render satu halaman ke SVG atau PNG
DocxOptions / MarkdownExportOptions / ImageOptionsOpsi rendering per-format
Document.ConvertToPdfA()Remediasi dokumen ke tingkat PDF/A dan validasi ulang
ConversionReportHasil konversi: applied, unresolved, passed
TiffExportOptions / encodeTiff()Ekspor ke TIFF
exportFdfFile() / exportXfdfFile() / importFdfFile() / importXfdfFile()Ekspor atau impor nilai bidang AcroForm sebagai FDF/XFDF

Lihat Juga

 Bahasa Indonesia