Conversion
Conversion
Bu sayfa, bir PDF’yi diğer biçimlere render etmeyi ve bir belgeyi PDF/A uyumluluğuna dönüştürmeyi kapsar. Document, tüm belge için her çıktı biçimi başına bir To*() yöntemi sunar; aynı yöntemler Page üzerinde tek bir sayfayı render etmek için de mevcuttur.
Diğer Belge Biçimlerine Render Etme
Document.ToHtml(), Document.ToDocx() ve Document.ToMarkdown() her sayfayı render eder; Page.ToSvg() ve Page.ToImage() bir sayfayı bağımsız bir SVG dizesi veya PNG baytlarına render eder. Her biri kendi seçeneklerini kabul eder — mode DocxOptions üzerinde (‘flow’ içeriği yeniden akıtır, ’textbox’ her sayfanın kendi geometrisini korur) ve images MarkdownExportOptions üzerinde (‘inline’ görüntü veri URI’larını gömer, ’external’ ayrı dosyaları imageDir‘a yazar).
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() için) ayrıca format, quality, scale, açık bir width / height ve background (‘white’ veya ’transparent’) kabul eder.
PDF/A’a Doğru Dönüştürme
Document.ConvertToPdfA(), bir belgeyi PDF/A level (‘b’ veya ‘u’) uyumuna getirmeye çalışır ve yeniden doğrular, ConversionReport‘yi applied (yapılan iyileştirme eylemleri), unresolved (düzeltilemeyen sorunlar) ve passed ile döndürür. Bir kopya üzerinde çalıştırın — örneğin Document.ExtractPages() ile oluşturulmuş bir kopya — böylece canlı, çalışan belge dönüşüm tarafından asla değiştirilmez.
// 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');Diğer Dışa Aktarım Biçimleri
HTML, Markdown, DOCX, SVG ve PNG’nin ötesinde, kütüphane ayrıca TIFF (TiffExportOptions, encodeTiff()) dışa aktarır ve FDF ve XFDF (exportFdfFile(), exportXfdfFile(), importFdfFile(), importXfdfFile()) içinde AcroForm alan değerlerini içe ve dışa aktarır — bu, doldurulmuş form verilerini PDF’den ayrı olarak değiştirmek için kullanışlıdır.
İpuçları ve En İyi Uygulamalar
Document.ConvertToPdfA()‘ı bir kopya üzerinde çalıştırın (örneğinDocument.ExtractPages()‘den), dönüştürülmemiş olarak kaydetmeniz gereken canlı belge üzerinde asla çalıştırmayın.ConversionReport.unresolved‘ı,passedtrueolduğunda bile daha gevşek bir doğrulama seviyesi için kontrol edin — bazı düzeltme eylemleri yalnızca daha sıkı bir seviyede tam olarak çözülür.- DOCX çıktısının her sayfanın tam görsel geometrisini koruması gerektiğinde
mode: 'textbox'‘ıDocxOptionsüzerinde kullanın; normal bir kelime işleme belgesi gibi akması gerektiğinde varsayılan'flow'modunu kullanın. - Büyük belgeler için, Markdown dosyasını küçük tutmak amacıyla, varsayılan satır içi veri URI’leri yerine
MarkdownExportOptionsüzerinde birimageDirveimages: 'external'geçirin.
Yaygın Sorunlar
| Sorun | Neden | Düzeltme |
|---|---|---|
ConvertToPdfA() hâlâ passed: false rapor ediyor | Her ConversionReport.unresolved listesindeki sorun otomatik olarak giderilemez (ör. eksik gömülü yazı tipleri veya eksik /OutputIntent) | Belirli unresolved kurallarını manuel olarak ele alın, ardından ConvertToPdfA()‘i yeniden çalıştırın |
| Canlı belge, bir PDF/A dönüşüm denemesinden sonra beklenmedik şekilde değiştirildi | ConvertToPdfA(), bir kopya yerine doğrudan çalışma belgesinde çağrıldı | Bunu Document.ExtractPages() ile oluşturulmuş bir kopyada çağırın |
| Markdown dışa aktarımı tek büyük bir dosya üretir. | Varsayılan images: 'inline', her resmi bir veri URI’si olarak gömer. | { images: 'external', imageDir: '...' } parametresini geçerek resimleri ayrı dosyalar olarak yazın. |
| DOCX çıktısı orijinal sayfa düzenini kaybeder. | Varsayılan mode: 'flow', içeriği bir kelime işlemci gibi yeniden akıtır. | { mode: 'textbox' } parametresini geçerek her sayfanın kendi geometrisini koruyun. |
FAQ
Bir PDF hangi formatlara dönüştürülebilir?
HTML, Markdown ve DOCX tüm belge için (Document.ToHtml() / ToMarkdown() / ToDocx()); sayfa başına SVG ve PNG (Page.ToSvg() / Page.ToImage()); ayrıca TIFF ve FDF/XFDF form-veri dışa aktarımı.
PDF/A’a dönüştürmek orijinal belgenizi değiştirir mi?
Sadece ConvertToPdfA()‘ı doğrudan ona uygularsanız. Bir kopya üzerinde çağırın — örneğin doc.ExtractPages(doc.Pages.map((_, i) => i + 1)) — böylece orijinal belge dönüştürülmemiş kalır.
Bir PDF/A dönüşümünün gerçekten başarılı olup olmadığını nasıl anlayabilirim?
ConversionReport.passed‘ı kontrol edin. applied, dönüşümün neyi düzelttiğini listeler ve unresolved, neyi düzeltemediğini listeler — passed true olsa bile unresolved‘ı inceleyin.
PDF’i kendisi olmadan sadece doldurulmuş form alanı değerlerini dışa aktarabilir miyim?
Evet — exportFdfFile() ve exportXfdfFile() mevcut AcroForm alan değerlerini ayrı bir FDF veya XFDF dosyasına yazar; importFdfFile() / importXfdfFile() bunları belgeye geri okur.
API Reference Özeti
| Sınıf/Yöntem | Açıklama |
|---|---|
Document.ToHtml() / Document.ToDocx() / Document.ToMarkdown() | Her sayfayı başka bir belge formatına dönüştür |
Page.ToSvg() / Page.ToImage() | Tek bir sayfayı SVG veya PNG’ye dönüştür |
DocxOptions / MarkdownExportOptions / ImageOptions | Biçim başına dönüştürme seçenekleri |
Document.ConvertToPdfA() | Bir belgeyi PDF/A seviyesine iyileştir ve yeniden doğrula |
ConversionReport | Dönüştürme sonucu: applied, unresolved, passed |
TiffExportOptions / encodeTiff() | TIFF olarak dışa aktar |
exportFdfFile() / exportXfdfFile() / importFdfFile() / importXfdfFile() | AcroForm alan değerlerini FDF/XFDF olarak dışa aktar veya içe aktar |