TypeScript में PDF दस्तावेज़ को कैसे बदलें

TypeScript में PDF दस्तावेज़ को कैसे बदलें

यह मार्गदर्शिका दिखाती है कि Aspose.PDF FOSS का उपयोग करके TypeScript के लिए PDF सामग्री को अन्य स्वरूपों में कैसे बदलें। Page एक पृष्ठ को SVG या रास्टर छवि के तौर पर निर्यात करता है; Document पूरी फ़ाइल को HTML, Markdown या DOCX के रूप में निर्यात करता है, और दस्तावेज़ को PDF/A में सत्यापित व परिवर्तित कर सकता है। इसके लिए Node.js22 या उससे नया संस्करण आवश्यक है।

चरण-दर-चरण मार्गदर्शिका

चरण1: पैकेज स्थापित करें

git clone https://github.com/aspose-pdf-foss/Aspose.PDF-FOSS-for-TypeScript.git
cd Aspose.PDF-FOSS-for-TypeScript
npm install
npm run build

स्थापना को सत्यापित करने के लिए नई TypeScript फ़ाइल में Document क्लास को इम्पोर्ट करें — पैकेज स्थापित होने पर यह पंक्ति बिना त्रुटि के कार्य करनी चाहिए:

import { Document } from '@asposefoss/pdf';

चरण2: आवश्यक क्लासें इम्पोर्ट करें

फ़ाइल खोलने के लिए Document आयात करें; नीचे उपयोग किए गए रूपांतरण मेथड सीधे लौटाए गए Document और Page इंस्टेंस पर कॉल किए जाते हैं, इसलिए अतिरिक्त आयात की आवश्यकता नहीं है:

import { Document } from '@asposefoss/pdf';

चरण 3: पृष्ठ को SVG या रास्टर इमेज में रूपांतरित करें

Page.ToSvg() एक स्वतंत्र <svg> स्ट्रिंग लौटाता है। Page.ToImage() पृष्ठ को रास्टर बाइट्स में रेंडर करता है; scale PDF के मूल 72 DPI के सापेक्ष है, इसलिए scale: 2 144 DPI पर रेंडर करता है:

import { Document } from '@asposefoss/pdf';

const doc = Document.OpenFile('input.pdf');
const svg = doc.Pages[0].ToSvg(); // standalone <svg> string
const png = doc.Pages[0].ToImage({ scale: 2 }); // Uint8Array of PNG bytes @144 DPI

चरण 4: दस्तावेज़ को HTML या मार्कडाउन में रूपांतरित करें

Document.ToHtml() अपने डिफ़ॉल्ट (सेमांटिक) मोड में स्ट्रक्चर ट्री से सामग्री को शीर्षकों और पैराग्राफ़ में पुनः व्यवस्थित करता है; प्रत्येक पृष्ठ को स्थित SVG और पूर्णतः स्थित टेक्स्ट के रूप में पुनः उत्पन्न करने के लिए { mode: 'fixed' } पास करें। Document.ToMarkdown() पूरे दस्तावेज़ के लिए GFM मार्कडाउन उत्पन्न करता है:

const semanticHtml = doc.ToHtml(); // reflowable markup, all pages
const fixedHtml = doc.ToHtml({ mode: 'fixed', fonts: 'embed' }); // positioned, fonts embedded
const markdown = doc.ToMarkdown(); // GFM Markdown, all pages

सेमांटिक मोड Document.GetStructTree() / Document.CreateStructTree() द्वारा निर्मित स्ट्रक्चर ट्री को पढ़ता है — अनटैग्ड दस्तावेज़ पर यह एक हीयूरिस्टिक बॉडी पर fallback करता है और निर्यात में उसका हेडिंग स्ट्रक्चर खो जाता है।


चरण 5: दस्तावेज़ को DOCX में रूपांतरित करें

Document.ToDocx() सामग्री को पुनः व्यवस्थित करके और छवियों को अंदर पैकेज करके .docx बाइट्स लौटाता है; पुनः व्यवस्थित करने के बजाय प्रत्येक पृष्ठ की अपनी निश्चित ज्यामिति रखने के लिए { mode: 'textbox' } पास करें:

const docx = doc.ToDocx(); // .docx bytes, reflowed, images in the package
const fixed = doc.ToDocx({ mode: 'textbox' }); // .docx keeping each page's own geometry

चरण 6: सत्यापित करें और PDF/A में बदलें

Document.ValidatePdfA(level), Document.ValidatePdfX(level), और Document.ValidatePdfUa() एक ValidationReport लौटाते हैं जो बताता है कि दस्तावेज़ निर्दिष्ट मानक को पास करता है या नहीं। Document.ConvertToPdfA(level, opts) एक ConversionReport लौटाता है जिसमें वह लागू किए गए सुधारों और बचे हुए अनसुलझे मुद्दों की सूची देता है। जब लाइव दस्तावेज़ को बिना बदले सहेजना हो, तो रूपांतरण को Document.ExtractPages() कॉपी पर चलाएँ:

const report = doc.ValidatePdfA('2b');
console.log(report.Passed);

const copy = doc.ExtractPages(doc.Pages.map((_, i) => i + 1));
const conversion = copy.ConvertToPdfA('2b');
console.log(conversion.applied.length, conversion.unresolved.length, conversion.passed);
copy.Save();

सामान्य समस्याएँ और समाधान

Document.ToHtml() हेडिंग संरचना खो देता है। सेमैंटिक मोड संरचना ट्री को पार करता है, इसलिए इसे टैगिंग पास के बाद चलना चाहिए — या तो Document.AutoTag() या हाथ से लिखी गई टैगिंग के माध्यम से StructTreeRoot.Append(). ToHtml() जब यह एक हीयूरिस्टिक बॉडी पर वापस जाता है GetStructTree() returns null.

ConvertToPdfA() फ़ाइल में बदलाव करता है जिसे आप अनकन्वर्टेड रखना चाहते थे। एक कॉपी पर रूपांतरण चलाएँ Document.ExtractPages(), फिर कॉपी को अलग से सहेजें — ConvertToPdfA() जिस दस्तावेज़ पर इसे बुलाया जाता है, उसे बदल देता है।

ValidatePdfA() पहली बार चलने पर विफलताओं की रिपोर्ट करता है। एक सामान्य कारण एम्बेड न किए गए मानक फ़ॉन्ट और एक अनुपलब्ध /OutputIntent — जांचें report.Passed और व्यक्तिगत नियम निष्कर्षों को देखें कि कौन सी शर्तें पूरी नहीं हुईं।

Page.ToImage() आउटपुट कम रिज़ॉल्यूशन जैसा दिख रहा है। scale 72 DPI के सापेक्ष है; इसे (उदाहरण के तौर पर { scale: 2 } 144 DPI के लिये) प्रिंट-गुणवत्ता आउटपुट के लिए।

अक्सर पूछे जाने वाले प्रश्न

सेमांटिक और फिक्स्ड HTML एक्सपोर्ट में क्या अंतर है?

सेमांटिक मोड दस्तावेज़ को उसकी संरचना ट्री से पुनः व्यवस्थित करके मार्कअप में बदल देता है, जो किसी भी चौड़ाई पर ब्राउज़र में आसानी से पढ़ा जा सके। फिक्स्ड मोड प्रत्येक पृष्ठ को स्थित SVG और पूर्णतः स्थित टेक्स्ट के रूप में पुनः बनाता है, जिससे मूल लेआउट बिल्कुल समान रहता है।

Document.ToDocx() मूल पृष्ठ लेआउट को बनाए रखता है क्या?

डिफ़ॉल्ट रूप से ToDocx() सामग्री को पुनः व्यवस्थित करता है। इसके बजाय { mode: 'textbox' } पास करें ताकि प्रत्येक पृष्ठ की अपनी फिक्स्ड ज्योमेट्री बनी रहे।

दस्तावेज़ PDF/A को पूरा करता है या नहीं, इसे परिवर्तित करने से पहले कैसे जांचूँ?

Document.ValidatePdfA(level) को कॉल करें (उदाहरण के लिए '2b') और लौटाए गए ValidationReport को निरीक्षण करें — यह दस्तावेज़ को बदले बिना वर्तमान स्थिति की रिपोर्ट करता है।

क्या मैं केवल पृष्ठों के एक उपसमुच्चय को परिवर्तित कर सकता हूँ?

हाँ — पहले Document का एक उपसमुच्चय Document.ExtractPages() के साथ बनाएँ, फिर उस उपसमुच्चय पर रूपांतरण विधि (ToHtml(), ToDocx(), ConvertToPdfA() आदि) को कॉल करें।

यह भी देखें

 हिन्दी