कोर PDF दस्तावेज़ प्रबंधन उन कार्यों को कवर करता है जो लगभग हर PDF वर्कफ़्लो में दिखाई देते हैं: दस्तावेज़ खोलना या बनाना, पृष्ठों और उनकी सामग्री तक पहुंचना, एनोटेशन पढ़ना और लिखना, टेक्स्ट निकालना, और इंटरैक्टिव एक्शन के साथ काम करना। Aspose.PDF FOSS for .NET एक .NET 8+ API प्रदान करता है जो इन सभी कार्यों को एक सुसंगत ऑब्जेक्ट मॉडल के माध्यम से संभालता है, जो Document और Page प्रकारों के इर्द‑गिर्द केंद्रित है।

दस्तावेज़ जीवनचक्र: बनाएं, खोलें, सहेजें

हर कार्यप्रवाह नई दस्तावेज़ बनाने या मौजूदा को लोड करने से शुरू होता है। Document.Create() एक नया, खाली Document इंस्टेंस लौटाता है। Document.Open(data) एक byte[] या Stream को स्वीकार करता है और PDF संरचना को पार्स करता है:

using var doc = Document.Create();
doc.Pages.Add();
var page = doc.Pages[1];
var action = PdfAction.CreateUri("https://aspose.com");
page.Annotations.AddLinkAnnotation(new Rectangle(50, 700, 200, 720), action);
using var ms = new MemoryStream();
doc.Save(ms);
ms.Position = 0;
using var doc2 = Document.Open(ms.ToArray());
var annot = (LinkAnnotation)doc2.Pages[1].Annotations[1];
Console.WriteLine(annot.Uri); // https://aspose.com

यह स्निपेट एक न्यूनतम PDF खोलता है, पृष्ठ 1 पर एक लिंक एनोटेशन जोड़ता है, इसे एक MemoryStream में सहेजता है, और पुनः लोड करने के बाद एनोटेशन संरक्षित है यह सत्यापित करता है। Document.Save(Stream) ओवरलोड पूरी अपडेटेड संरचना लिखता है; Document.ToArray() सीधे बाइट्स लौटाता है।


पृष्ठ पहुँच और पृष्ठ संग्रह

पृष्ठों तक Pages प्रॉपर्टी के माध्यम से 1‑आधारित पूर्णांक सूचकांक का उपयोग करके पहुंचा जाता है: doc.Pages[1] पहला पृष्ठ लौटाता है, doc.Pages[doc.Pages.Count] अंतिम पृष्ठ लौटाता है। प्रत्येक Page ऑब्जेक्ट एक्सपोज़ करता है:

  • Annotations — उस पृष्ठ के लिए AnnotationCollection, AddLinkAnnotation का समर्थन करता है और प्रकार के अनुसार मौजूदा एनोटेशन की गणना करता है।
  • Content stream operators — पृष्ठ ड्राइंग कमांड्स तक लो-लेवल पहुँच, Operators संग्रह के माध्यम से।

1-आधारित इंडेक्स API में पूरे में सुसंगत है: एनोटेशन लुकअप, GoTo एक्शन डेस्टिनेशन पेज इंडिसेज, और सभी अन्य पेज रेफ़रेंसेज़ समान सम्मेलन का उपयोग करती हैं।


TextFragmentAbsorber के साथ टेक्स्ट निष्कर्षण

TextFragmentAbsorber PDF पृष्ठ से टेक्स्ट पढ़ने के लिए मानक प्रवेश बिंदु है। सभी फ्रैगमेंट निकालने के लिए बिना-आर्गुमेंट कंस्ट्रक्टर का उपयोग करें, या मिलते-जुलते टेक्स्ट को फ़िल्टर करने के लिए एक खोज वाक्यांश पास करें:

using var doc = Document.Open("path/to/document.pdf");
var absorber = new TextFragmentAbsorber("Hello");
absorber.Visit(doc.Pages[1]);
foreach (var fragment in absorber.TextFragments)
{
    Console.WriteLine($"Found: {fragment.Text} size={fragment.FontSize}");
}

absorber.Visit(page) को कॉल करके एक पृष्ठ को प्रोसेस करें। परिणामस्वरूप TextFragments संग्रह में TextFragment ऑब्जेक्ट होते हैं; प्रत्येक Text (स्ट्रिंग सामग्री) और FontSize (रेंडर किया गया पॉइंट आकार) को उजागर करता है। दूसरा ओवरलोड TextFragmentAbsorber(searchPhrase, isRegex) पैटर्न‑आधारित खोज के लिए रेगुलर एक्सप्रेशन फ़्लैग स्वीकार करता है।


इंटरैक्टिव क्रियाएँ

PdfAction सभी मानक PDF कार्रवाई प्रकारों के लिए फ़ैक्टरी क्लास है। चार स्थैतिक फ़ैक्टरी मेथड्स सबसे सामान्य मामलों को कवर करती हैं:

  • PdfAction.CreateUri(uri) — उपयोगकर्ता के ब्राउज़र में एक URL खोलता है।
  • PdfAction.CreateGoTo(pageIndex, fitType) — दस्तावेज़ के भीतर एक विशिष्ट पृष्ठ पर जाता है।
  • PdfAction.CreateJavaScript(script) — PDF व्यूअर में एक JavaScript स्ट्रिंग निष्पादित करता है।
  • PdfAction.CreateLaunch(filePath) — एक बाहरी फ़ाइल या एप्लिकेशन लॉन्च करता है।

पृष्ठों पर एनोटेशन के माध्यम से क्रियाएँ संलग्न की जाती हैं। AnnotationCollection.AddLinkAnnotation(rectangle, action) निर्दिष्ट आयताकार क्षेत्र के ऊपर LinkAnnotation रखता है जिसमें दिया गया कार्य संलग्न है:

using var doc = Document.Create();
doc.Pages.Add();
var page = doc.Pages[1];
var action = PdfAction.CreateUri("https://example.org");
var annot = page.Annotations.AddLinkAnnotation(new Rectangle(10, 10, 100, 30), action);
Console.WriteLine(page.Annotations.Count);      // 1
Console.WriteLine(annot.AnnotationType);         // Link

AnnotationType.Link पुष्टि करता है कि एनोटेशन को लिंक प्रकार के रूप में बनाया गया था। Rectangle कंस्ट्रक्टर बाएँ, नीचे, दाएँ और ऊपर के निर्देशांक PDF उपयोगकर्ता स्पेस इकाइयों में लेता है।


दस्तावेज़ मेटाडेटा और लाइसेंसिंग

Document क्लास IsLicensed (FOSS बिल्ड में true वापस देता है), JavaScript (दस्तावेज़-स्तर स्क्रिप्ट्स के लिए एक JavaScriptCollection), और DocumentActions जीवनचक्र घटनाओं के लिए जैसे BeforeClosing और BeforeSaving

FOSS पैकेज NuGet के माध्यम से स्थापित किया जाता है:

dotnet add package Aspose.Pdf.Foss --version 0.1.0-alpha

कोई लाइसेंस कुंजी आवश्यक नहीं है। MIT license व्यावसायिक अनुप्रयोगों में उपयोग की अनुमति देता है, जिसमें लाइसेंस नोटिस को संरक्षित रखने के अलावा कोई एट्रिब्यूशन आवश्यकताएँ नहीं होतीं।


आरंभ

संबंधित संसाधन