Conversion
Conversion
यह पृष्ठ PDF को अन्य स्वरूपों में रेंडर करने और PDF/A अनुपालन की दिशा में दस्तावेज़ को परिवर्तित करने को कवर करता है। Document पूरे दस्तावेज़ के लिए प्रत्येक आउटपुट स्वरूप के लिए एक To*() विधि प्रदान करता है; समान विधियाँ Page पर एकल पृष्ठ को रेंडर करने के लिए मौजूद हैं।
अन्य दस्तावेज़ स्वरूपों में रेंडरिंग
Document.ToHtml(), Document.ToDocx(), और Document.ToMarkdown() प्रत्येक पृष्ठ को रेंडर करते हैं; Page.ToSvg() और Page.ToImage() एक पृष्ठ को स्वतंत्र SVG स्ट्रिंग या PNG बाइट्स में रेंडर करते हैं। प्रत्येक अपनी विकल्पों को स्वीकार करता है — mode DocxOptions पर (‘flow’ सामग्री को पुनः प्रवाहित करता है, ’textbox’ प्रत्येक पृष्ठ की अपनी ज्यामिति को बनाए रखता है) और images MarkdownExportOptions पर (‘inline’ इमेज डेटा URI को एम्बेड करता है, ’external’ अलग फ़ाइलों को 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 (Page.ToImage() के लिए) भी format, quality, scale, एक स्पष्ट width / height, और background (‘white’ या ’transparent’) स्वीकार करता है।
PDF/A की ओर रूपांतरण
Document.ConvertToPdfA() एक दस्तावेज़ को PDF/A level (‘b’ या ‘u’) की दिशा में सुधारने का प्रयास करता है और उसे पुनः सत्यापित करता है, एक ConversionReport लौटाता है जिसमें applied (उस द्वारा किए गए सुधार कार्य), unresolved (वे मुद्दे जिन्हें वह ठीक नहीं कर सका), और passed शामिल हैं। इसे किसी प्रतिलिपि पर चलाएँ — उदाहरण के लिए Document.ExtractPages() से बनाई गई प्रतिलिपि — ताकि लाइव, कार्यरत दस्तावेज़ को रूपांतरण द्वारा कभी नहीं बदला जाए।
// 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');अन्य निर्यात स्वरूप
HTML, Markdown, DOCX, SVG, और PNG के अलावा, लाइब्रेरी TIFF (TiffExportOptions, encodeTiff()) भी निर्यात करती है और FDF और XFDF (exportFdfFile(), exportXfdfFile(), importFdfFile(), importXfdfFile()) में AcroForm फ़ील्ड मानों को आयात/निर्यात करती है — यह PDF स्वयं से अलग भरें फ़ॉर्म डेटा का आदान-प्रदान करने के लिए उपयोगी है।
टिप्स और सर्वोत्तम प्रथाएँ
Document.ConvertToPdfA()को एक कॉपी पर चलाएँ (उदाहरण के लिएDocument.ExtractPages()से), कभी भी लाइव दस्तावेज़ पर नहीं जिसे आपको अभी भी बिना परिवर्तित सहेजना है।ConversionReport.unresolvedको तब भी जांचें जबpassedtrueहो एक ढीले सत्यापन स्तर के लिए — कुछ सुधार कार्य केवल सख्त स्तर पर पूरी तरह हल होते हैं।mode: 'textbox'कोDocxOptionsपर उपयोग करें जब DOCX आउटपुट को प्रत्येक पृष्ठ की सटीक दृश्य ज्यामिति बनाए रखनी हो; डिफ़ॉल्ट'flow'मोड का उपयोग करें जब इसे सामान्य शब्द-प्रसंस्करण दस्तावेज़ की तरह पुनः प्रवाहित होना चाहिए।- बड़े दस्तावेज़ों के लिए
images: 'external'और एकimageDirकोMarkdownExportOptionsपर पास करें, डिफ़ॉल्ट इनलाइन डेटा URIs के बजाय, ताकि Markdown फ़ाइल स्वयं छोटे रहे।
सामान्य समस्याएँ
| समस्या | कारण | समाधान |
|---|---|---|
ConvertToPdfA() अभी भी passed: false की रिपोर्ट करता है | हर समस्या ConversionReport.unresolved की सूची स्वचालित रूप से ठीक नहीं की जा सकती (जैसे अनुपस्थित एंबेडेड फ़ॉन्ट्स या एक अनुपस्थित /OutputIntent) | विशिष्ट unresolved नियमों को मैन्युअली संबोधित करें, फिर ConvertToPdfA() को पुनः चलाएँ |
| लाइव दस्तावेज़ PDF/A रूपांतरण प्रयास के बाद अनपेक्षित रूप से संशोधित हो गया | ConvertToPdfA() को प्रतिलिपि के बजाय सीधे कार्यशील दस्तावेज़ पर कॉल किया गया | इसे Document.ExtractPages() से बनी एक प्रतिलिपि पर कॉल करें |
| मार्कडाउन निर्यात एक बड़ी फ़ाइल बनाता है | डिफ़ॉल्ट images: 'inline' प्रत्येक छवि को डेटा URI के रूप में एम्बेड करता है | छवियों को अलग फ़ाइलों के रूप में लिखने के लिए { images: 'external', imageDir: '...' } पास करें |
| DOCX आउटपुट मूल पृष्ठ लेआउट खो देता है | डिफ़ॉल्ट mode: 'flow' सामग्री को वर्ड प्रोसेसर की तरह रीफ़्लो करता है | प्रत्येक पृष्ठ की अपनी जियोमेट्री बनाए रखने के लिए { mode: 'textbox' } पास करें |
FAQ
PDF को किन फ़ॉर्मेट्स में बदला जा सकता है?
HTML, Markdown, और DOCX पूर्ण दस्तावेज़ के लिए (Document.ToHtml() / ToMarkdown() / ToDocx()); प्रत्येक पृष्ठ के लिए SVG और PNG (Page.ToSvg() / Page.ToImage()); साथ ही TIFF और FDF/XFDF फ़ॉर्म-डेटा निर्यात।
क्या PDF/A में परिवर्तित करने से मेरा मूल दस्तावेज़ बदल जाता है?
केवल तब जब आप सीधे उस पर ConvertToPdfA() को कॉल करते हैं। इसे किसी कॉपी पर कॉल करें — उदाहरण के लिए doc.ExtractPages(doc.Pages.map((_, i) => i + 1)) — ताकि मूल दस्तावेज़ अपरिवर्तित रहे।
मैं कैसे जानूँ कि PDF/A रूपांतरण वास्तव में सफल हुआ?
जाँचें ConversionReport.passed. applied वह सूचीबद्ध करता है जो रूपांतरण ने सुधारा है, और unresolved वह जो नहीं कर सका — unresolved को देखें भले ही passed true हो।
क्या मैं केवल भरे हुए फ़ॉर्म फ़ील्ड मानों को निर्यात कर सकता हूँ, बिना स्वयं PDF के?
हां — exportFdfFile() और exportXfdfFile() वर्तमान AcroForm फ़ील्ड मानों को एक अलग FDF या XFDF फ़ाइल में लिखते हैं; importFdfFile() / importXfdfFile() उन्हें दस्तावेज़ में वापस पढ़ते हैं।
API Reference सारांश
| क्लास/मेथड | विवरण |
|---|---|
Document.ToHtml() / Document.ToDocx() / Document.ToMarkdown() | प्रत्येक पृष्ठ को किसी अन्य दस्तावेज़ फ़ॉर्मेट में रेंडर करें |
Page.ToSvg() / Page.ToImage() | एकल पृष्ठ को SVG या PNG में रेंडर करें |
DocxOptions / MarkdownExportOptions / ImageOptions | प्रति-फ़ॉर्मेट रेंडरिंग विकल्प |
Document.ConvertToPdfA() | एक दस्तावेज़ को PDF/A स्तर की ओर सुधारें और पुनः मान्य करें |
ConversionReport | रूपांतरण परिणाम: applied, unresolved, passed |
TiffExportOptions / encodeTiff() | TIFF में निर्यात |
exportFdfFile() / exportXfdfFile() / importFdfFile() / importXfdfFile() | निर्यात या आयात करें AcroForm फ़ील्ड मानों को FDF/XFDF के रूप में |