Aspose.PDF FOSS for .NET एक मुफ्त, MIT-लाइसेंस वाला .NET लाइब्रेरी है जो PDF दस्तावेज़ों को पढ़ने, बनाने और संशोधित करने के लिए उपयोगी है। एक उदार ओपन‑सोर्स लाइसेंस के तहत जारी किया गया, यह एंटरप्राइज़‑ग्रेड PDF क्षमताओं के पारंपरिक बाधा को हटाता है — लाइब्रेरी की हर सुविधा बिना व्यावसायिक लाइसेंस खरीदे उपलब्ध है।

Aspose.PDF FOSS for .NET क्या है?

यह लाइब्रेरी .NET 8 और बाद के संस्करणों को लक्षित करती है। इसे NuGet पर पैकेज ID Aspose.Pdf.Foss के तहत प्रकाशित किया गया है और इसे किसी भी .NET 8+ प्रोजेक्ट में एक ही कमांड से जोड़ा जा सकता है:

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

मुख्य नेमस्पेस Aspose.Pdf है, संबंधित नेमस्पेस में Aspose.Pdf.Text, Aspose.Pdf.Forms, और Aspose.Pdf.Facades शामिल हैं। लाइब्रेरी 805 सार्वजनिक API क्लासेज़ को उजागर करती है, जो 7,488 प्रलेखित दावों और परीक्षण सूट से सीधे निकाले गए 100 कोड स्निपेट्स द्वारा समर्थित हैं।

मुख्य क्षमताएँ

API एक PDF दस्तावेज़ के पूर्ण जीवनचक्र को कवर करता है:

  • Document creation and loadingDocument.Create() एक खाली दस्तावेज़ बनाता है; Document.Open(data) बाइट एरे या स्ट्रीम से मौजूदा PDF लोड करता है।
  • Page and content accessPages संग्रह व्यक्तिगत पृष्ठों तक 1-आधारित अनुक्रमणिका पहुंच प्रदान करता है, प्रत्येक पृष्ठ एनोटेशन, ऑपरेटर और कंटेंट स्ट्रीम को उजागर करता है।
  • Text extractionTextFragmentAbsorber एक पृष्ठ पर जाता है और प्रत्येक टेक्स्ट फ्रैगमेंट को एकत्र करता है, वैकल्पिक सर्च‑फ़्रेज़ फ़िल्टरिंग और रेगुलर एक्सप्रेशन समर्थन के साथ।
  • Interactive actionsPdfAction.CreateUri, PdfAction.CreateGoTo, PdfAction.CreateJavaScript, और PdfAction.CreateLaunch मानक PDF एक्शन प्रकारों को कवर करते हैं।
  • AnnotationsAnnotationCollection.AddLinkAnnotation किसी भी आयताकार क्षेत्र पर लिंक एनोटेशन को संबंधित एक्शन के साथ संलग्न करता है।
  • FormsAspose.Pdf.Forms नेमस्पेस और Aspose.Pdf.Facades AcroForm फ़ील्ड्स, अपीयरेंस फ़ॉर्मेटिंग, और फ़ील्ड‑स्तरीय JavaScript एक्सटेंशन तक पहुंच प्रदान करते हैं।

एक दस्तावेज़ खोलना और लिंक जोड़ना

निम्न उदाहरण राउंड‑ट्रिप पैटर्न को दर्शाता है: एक नया PDF दस्तावेज़ बनाएं, पहले पृष्ठ पर एक URI एक्शन लिंक एनोटेशन जोड़ें, इसे स्ट्रीम में सहेजें, और एनोटेशन के बने रहने की पुष्टि करने के लिए पुनः लोड करें।

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

Document.Open स्थैतिक मेथड एक byte[] या एक stream को स्वीकार करती है। doc.Pages[1] 1-आधारित इंडेक्स द्वारा पहली पेज तक पहुँचती है — वही इंडेक्स कन्वेंशन जो लाइब्रेरी में पूरे उपयोग किया जाता है। एक MemoryStream में सेव करने के बाद, डॉक्यूमेंट को रीलोड किया जा सकता है और सभी एनोटेशन संरक्षित रहते हैं।


पृष्ठ पर टेक्स्ट खोजना

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

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}");
}

परिणामी संग्रह में प्रत्येक TextFragment में Text, FontSize और स्थितीय डेटा सहित गुण उजागर होते हैं, जिससे निकाले गए टुकड़ों के ऊपर खोज, हाइलाइट या रिडैक्शन वर्कफ़्लो बनाना सरल हो जाता है।


MIT लाइसेंस और ओपन डेवलपमेंट

सभी स्रोत कोड GitHub पर प्रकाशित किया गया है और MIT License के तहत वितरित किया जाता है। कोई मूल्यांकन वॉटरमार्क नहीं है, कोई उपयोग सीमा नहीं है, और प्रबंधन के लिए कोई अलग लाइसेंस फ़ाइल नहीं है। FOSS बिल्ड में Document.IsLicensed प्रॉपर्टी हमेशा true लौटाती है।

पैकेज वर्तमान में संस्करण 0.1.0-alpha पर है, जो सक्रिय विकास को दर्शाता है। API सतह पहले ही काफी व्यापक है — 805 क्लासेस, 7,488 क्लेम्स — और अल्फा संकेत करता है कि API सिग्नेचर 1.0 रिलीज़ से पहले विकसित हो सकते हैं।


शुरू करना

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