टेक्स्ट डिवाइस का उपयोग करके टेक्स्ट निकालें

परिचय

PDF से टेक्स्ट निकालना मुश्किल हो सकता है, खासकर जब ऐसे दस्तावेज़ों से निपटना हो जिनमें विभिन्न फ़ॉर्मेट, एम्बेडेड फ़ॉन्ट या जटिल लेआउट हों। लेकिन .NET के लिए Aspose.PDF के साथ, यह प्रक्रिया आसान हो जाती है! चाहे आप आगे के विश्लेषण के लिए PDF के पृष्ठों को सादे टेक्स्ट में बदलना चाहते हों या बस कुछ खास सेक्शन को निकालना चाहते हों, Aspose.PDF आपके लिए है। इस ट्यूटोरियल में, हम Aspose.PDF में TextDevice क्लास का उपयोग करके PDF से टेक्स्ट निकालने के तरीके को चरण-दर-चरण बताएँगे। हम स्पष्ट स्पष्टीकरण भी देंगे, ताकि आप आसानी से अपने प्रोजेक्ट पर भी यही तरीके लागू कर सकें।

आवश्यक शर्तें

इससे पहले कि हम कोड में आगे बढ़ें, सुनिश्चित करें कि आपके पास अनुसरण करने के लिए सब कुछ मौजूद है। आपको निम्न चीज़ों की आवश्यकता होगी:

  1. .NET के लिए Aspose.PDF: यहाँ से नवीनतम संस्करण डाउनलोड करें.NET के लिए Aspose.PDF डाउनलोड पृष्ठ.
  2. विकास वातावरण: विजुअल स्टूडियो या कोई अन्य C# विकास वातावरण।
  3. .NET फ्रेमवर्क: सुनिश्चित करें कि आपका प्रोजेक्ट .NET फ्रेमवर्क 4.x या उच्चतर को लक्षित कर रहा है।
  4. इनपुट पीडीएफ फाइल: एक पीडीएफ फाइल जिसका उपयोग आप टेक्स्ट एक्सट्रैक्शन के लिए करेंगे। इसे अपनी मशीन पर एक डायरेक्टरी में रखें (हम इसे इस रूप में संदर्भित करेंगेYOUR DOCUMENT DIRECTORY).

पैकेज आयात करें

अपने कोड के शीर्ष पर, आपको Aspose.PDF के साथ काम करने के लिए आवश्यक नेमस्पेस आयात करने होंगे:

using System.IO;
using Aspose.Pdf;
using Aspose.Pdf.Text;
using Aspose.Pdf.Devices;
using System;
using System.Text;

चरण 1: अपना PDF दस्तावेज़ लोड करें

टेक्स्ट निकालने से पहले, हमें PDF दस्तावेज़ को मेमोरी में लोड करना होगा। इस चरण में, आप Aspose.PDF का उपयोग करके अपना PDF खोलेंगेDocument क्लास पर क्लिक करें। इससे आप फ़ाइल के सभी पेजों और सामग्री तक पहुँच सकेंगे।

// अपने PDF दस्तावेज़ का पथ निर्धारित करें
string dataDir = "YOUR DOCUMENT DIRECTORY";

// पीडीएफ दस्तावेज़ लोड करें
Document pdfDocument = new Document(dataDir + "input.pdf");

यहाँ, हम उपयोग कर रहे हैंDocument pdfDocument = new Document(dataDir + "input.pdf"); पीडीएफ लोड करने के लिए.dataDir वेरिएबल आपके पीडीएफ फाइल का डायरेक्टरी पथ रखता है। यह हमें पूरे दस्तावेज़ तक पहुंच प्रदान करेगा, जिससे हम पृष्ठों के माध्यम से लूप कर सकेंगे और सामग्री निकाल सकेंगे।

चरण 2: टेक्स्ट संग्रहण के लिए स्ट्रिंग बिल्डर सेट अप करें

अब जब दस्तावेज़ लोड हो गया है, तो हमें निकाले गए टेक्स्ट को संग्रहीत करने का एक तरीका चाहिए। इसके लिए, हम एक का उपयोग करेंगेStringBuilder जो कुशल स्ट्रिंग संयोजन की अनुमति देता है।

// निकाले गए पाठ को रखने के लिए स्ट्रिंगबिल्डर
StringBuilder builder = new StringBuilder();

हम एक आरंभीकरण करते हैंStringBuilderइंस्टेंस, जो प्रत्येक पृष्ठ से निकाले गए पाठ को एकत्रित करेगा। लूप में नियमित स्ट्रिंग संयोजन की तुलना में यह बड़ी स्ट्रिंग को संभालने का अधिक कुशल तरीका है।

चरण 3: पीडीएफ पृष्ठों के माध्यम से लूप करें

इसके बाद, हम पीडीएफ दस्तावेज़ के प्रत्येक पृष्ठ को लूप करके पाठ को निकालते हैं। हम प्रत्येक पृष्ठ को अलग-अलग तरीके से प्रोसेस करेंगेTextDevice क्लास, जो पीडीएफ सामग्री को पाठ प्रारूप में परिवर्तित करने के लिए जिम्मेदार है।

// पीडीएफ के सभी पृष्ठों को देखें
foreach (Page pdfPage in pdfDocument.Pages)
{
    // पाठ निष्कर्षण के लिए प्रत्येक पृष्ठ की प्रक्रिया करें
}

यह लूप पीडीएफ के हर पृष्ठ से होकर गुजरता है (pdfDocument.Pages ) प्रत्येक पृष्ठ के लिए, हम पाठ निकालेंगे और इसे हमारे में जोड़ देंगेStringBuilder.

चरण 4: प्रत्येक पृष्ठ से पाठ निकालें

अब, हम प्रत्येक पृष्ठ के लिए पाठ निष्कर्षण प्रक्रिया सेट करते हैं। यहाँ, हम एक बनाएंगेTextDevice ऑब्जेक्ट और इसका उपयोग पीडीएफ पृष्ठों को संसाधित करने के लिए करें।TextDevice हमारे द्वारा निर्धारित निष्कर्षण विकल्पों के आधार पर कच्चा या स्वरूपित पाठ निकालता है।

using (MemoryStream textStream = new MemoryStream())
{
    // पाठ निष्कर्षण के लिए पाठ डिवाइस बनाएँ
    TextDevice textDevice = new TextDevice();
    
    // टेक्स्ट निष्कर्षण विकल्पों को 'शुद्ध' मोड पर सेट करें
    TextExtractionOptions textExtOptions = new TextExtractionOptions(TextExtractionOptions.TextFormattingMode.Pure);
    textDevice.ExtractionOptions = textExtOptions;

    //वर्तमान पृष्ठ से पाठ निकालें और उसे मेमोरी स्ट्रीम में सहेजें
    textDevice.Process(pdfPage, textStream);

    // मेमोरी स्ट्रीम को टेक्स्ट में बदलें
    string extractedText = Encoding.Unicode.GetString(textStream.ToArray());

    // निकाले गए पाठ को StringBuilder में जोड़ें
    builder.Append(extractedText);
}
  • TextDevice textDevice = new TextDevice(); : दTextDevice क्लास का उपयोग पीडीएफ से टेक्स्ट निकालने के लिए किया जाता है।
  • TextExtractionOptions textExtOptions = new TextExtractionOptions(TextExtractionOptions.TextFormattingMode.Pure); : यह विकल्प फ़ॉन्ट या स्थिति जैसी किसी भी फ़ॉर्मेटिंग को बनाए रखे बिना कच्चे पाठ को निकालता है। आप इसका उपयोग भी कर सकते हैंTextFormattingMode.Raw यदि आपको स्वरूपण पर अधिक नियंत्रण की आवश्यकता है।
  • textDevice.Process(pdfPage, textStream); : यह पीडीएफ के प्रत्येक पृष्ठ को संसाधित करता है और निकाले गए पाठ को संग्रहीत करता हैMemoryStream.
  • अंत में, हम पाठ को परिवर्तित करते हैंMemoryStream एक स्ट्रिंग में जोड़ें और इसे इसमें जोड़ेंStringBuilder.

चरण 5: निकाले गए पाठ को फ़ाइल में सहेजें

सभी पृष्ठों को संसाधित करने के बाद, पाठ को संग्रहीत किया जाता हैStringBuilderअंतिम चरण इस निकाले गए पाठ को एक फ़ाइल में सहेजना है।

// पाठ फ़ाइल के लिए आउटपुट पथ निर्धारित करें
dataDir = dataDir + "input_Text_Extracted_out.txt";

// निकाले गए पाठ को फ़ाइल में सहेजें
File.WriteAllText(dataDir, builder.ToString());

Console.WriteLine("\nText extracted successfully from PDF document.\nFile saved at " + dataDir);
  • File.WriteAllText(dataDir, builder.ToString()); : यह संपूर्ण सामग्री लिखता हैStringBuilder एक पाठ फ़ाइल में.
  • आउटपुट फ़ाइल का पथ फ़ाइल नाम जोड़कर सेट किया जाता है ("input_Text_Extracted_out.txt" ) तकdataDir पथ।

निष्कर्ष

.NET के लिए Aspose.PDF का उपयोग करके PDF से टेक्स्ट निकालना एक सरल और कुशल प्रक्रिया है। इस गाइड में बताए गए चरणों का पालन करके, आप आसानी से PDF दस्तावेज़ खोल सकते हैं, पृष्ठों के माध्यम से लूप कर सकते हैं, और टेक्स्ट को टेक्स्ट फ़ाइल में निकाल सकते हैं। यह विशेष रूप से बड़ी मात्रा में PDF डेटा को संसाधित करने, टेक्स्ट विश्लेषण करने, या आगे के हेरफेर के लिए दस्तावेज़ों को परिवर्तित करने के लिए उपयोगी है।

Aspose.PDF के साथ, आप केवल टेक्स्ट एक्सट्रैक्शन तक ही सीमित नहीं हैं - आप एनोटेशन को संभाल सकते हैं, छवियों में हेरफेर कर सकते हैं, या यहां तक कि PDF को HTML या Word जैसे अन्य प्रारूपों में परिवर्तित कर सकते हैं। इस लाइब्रेरी की लचीलापन और शक्ति इसे .NET अनुप्रयोगों में PDF प्रबंधन के लिए एक अमूल्य उपकरण बनाती है।

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

क्या Aspose.PDF छवि-आधारित PDF से पाठ निकाल सकता है?

नहीं, Aspose.PDF को कंटेंट-आधारित PDF से टेक्स्ट निकालने के लिए डिज़ाइन किया गया है। छवि-आधारित PDF के लिए, OCR तकनीक की आवश्यकता होती है।

क्या Aspose.PDF पाठ निकालते समय स्वरूपण बनाए रखता है?

डिफ़ॉल्ट रूप से, पाठ को बिना फ़ॉर्मेटिंग के निकाला जाता है, लेकिन यदि आप कुछ फ़ॉर्मेटिंग रखना चाहते हैं तो आप निष्कर्षण विकल्पों को समायोजित कर सकते हैं।

क्या मैं किसी विशिष्ट पृष्ठ श्रेणी से पाठ निकाल सकता हूँ?

हां, आप कोड को सभी पृष्ठों के बजाय पृष्ठों की एक विशिष्ट श्रेणी पर लूप करने के लिए संशोधित कर सकते हैं।

Aspose.PDF में पाठ निष्कर्षण मोड क्या हैं?

Aspose.PDF दो मोड प्रदान करता है: रॉ और प्योर। रॉ मोड मूल लेआउट को बनाए रखने की कोशिश करता है, जबकि प्योर मोड बिना फ़ॉर्मेटिंग के केवल टेक्स्ट को निकालता है।

क्या .NET के लिए Aspose.PDF .NET कोर के साथ संगत है?

हां, .NET के लिए Aspose.PDF .NET कोर और .NET फ्रेमवर्क के साथ पूरी तरह से संगत है।