2012-03-06 8 views
6

मेरे पास काफी सरल कार्य है: मुझे अपनी टेक्स्ट सामग्री को अनदेखा करते समय एक पीडीएफ फ़ाइल पढ़ने और अपनी छवि सामग्री लिखने की आवश्यकता है। इसलिए अनिवार्य रूप से मुझे "पाठ के रूप में सहेजें" के पूरक करने की आवश्यकता है।सी # पीडीएफशर्प: पीडीएफ से पाठ को कैसे छीनने के उदाहरण?

आदर्श रूप में, मैं छवि सामग्री के किसी भी प्रकार के पुन: संपीड़न से बचना पसंद करूंगा लेकिन यदि यह संभव नहीं है, तो यह भी ठीक है।

क्या यह करने के उदाहरण हैं?

धन्यवाद!

उत्तर

4

पीडीएफ फाइल से पीडीएफ फाइल से पाठ निकालना एक आसान काम नहीं है।

यह इस सूत्र में हाल ही में चर्चा की गई: https://stackoverflow.com/a/9161732/162529

0

.pdf फ़ाइल से छवियों को निकालने PDFSharp पुस्तकालयों का उदाहरण:

link

library

संपादित करें:

तो अगर आप छवि से पाठ निकालने के लिए आप ओसीआर पुस्तकालयों का उपयोग करने के लिए है चाहता हूँ ।

दो अच्छा OCRs tessnet और मोदी
Link to thread on stack
रहे हैं लेकिन मैं पूरी तरह से MODI जो मैं अब का उपयोग कर रहा सिफारिश कर सकते हैं। कुछ नमूना @codeproject

संपादित करें 2:

आप निकाली गई छवियों से पाठ पढ़ने के लिए नहीं करना चाहते हैं, तो आप नया पीडीएफ दस्तावेज़ लिखने और इसे में उन सभी को रखना चाहिए। पीडीएफ लिखने के लिए मैं MigraDoc का उपयोग करता हूं। उस पुस्तकालय का उपयोग करना मुश्किल नहीं है।

+0

मैंने उस उदाहरण को देखा है, लेकिन मुझे यकीन नहीं है कि इसमें मेरे पास आवश्यक सभी टुकड़े हैं या नहीं। यह दस्तावेज़ में "चित्र" की तलाश में है। मुझे छवि प्रपत्र में पाठ को प्रतिपादित करने की भी आवश्यकता है, मैं बस छवि के पीछे पाठ नहीं चाहता हूं।दूसरे शब्दों में, मैं आउटपुट इनपुट की तरह बिल्कुल दिखाना चाहता हूं लेकिन मैं आउटपुट से टेक्स्ट को सहेजने की क्षमता को अक्षम करना चाहता हूं। –

+0

तो जैसा कि अब मैं समझता हूं, आप पीडीएफ से छवियों और सादा पाठ से पाठ पढ़ना चाहते हैं? और उन्हें एक साथ रखो क्या? – Mariusz

+0

इनपुट पीडीएफ छवि के पीछे छवि-केवल या छवि + पाठ हो सकता है। तो मुझे इनपुट लेने और इसके बाहर एक छवि-केवल पीडीएफ बनाने की जरूरत है। दूसरे शब्दों में, मैं आउटपुट पीडीएफ में इनपुट पीडीएफ के सभी गैर-पाठ घटकों को आउटपुट पीडीएफ में निर्यात करना चाहता हूं और टेक्स्ट घटकों को निर्यात नहीं करना चाहता हूं। –

1

PdfSharp साथ एक पीडीएफ से निकाला जा रहा है पाठ वास्तव में, बहुत आसान हो सकता है दस्तावेज़ प्रकार और आप इसे साथ क्या करना चाहते हैं पर निर्भर करता है। यदि टेक्स्ट दस्तावेज़ में टेक्स्ट के रूप में है, न कि कोई छवि, और आपको स्थिति या प्रारूप की परवाह नहीं है, तो यह काफी सरल है। इस कोड को पीडीएफ़ के साथ मैं काम कर रहा हूँ में प्रथम पृष्ठ के पाठ के सभी हो जाता है:

var doc = PdfReader.Open(docPath); 
string pageText = doc.Pages[0].Contents.Elements.GetDictionary(0).Stream.ToString(); 

doc.Pages.Count आप पृष्ठों की कुल संख्या देता है, और आप सूचकांक के साथ doc.Pages सरणी के माध्यम से हर एक का उपयोग। मैं foreach और लिंक यहां उपयोग करने की अनुशंसा नहीं करता, क्योंकि इंटरफेस अच्छी तरह लागू नहीं होते हैं। सूचकांक GetDictionary में पारित किया गया है जिसके लिए पीडीएफ दस्तावेज तत्व - यह दस्तावेजों के उत्पादन के आधार पर भिन्न हो सकता है। यदि आपको वह पाठ नहीं मिलता है जिसे आप ढूंढ रहे हैं, तो सभी तत्वों के माध्यम से लूपिंग करने का प्रयास करें।

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

+0

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

+0

हां, अगर यह पर्याप्त स्पष्ट नहीं था - इस तरह से विभिन्न प्रकार के विश्लेषण के लिए टेक्स्ट की बिट्स निकालना बहुत आसान है। पेज के समग्र प्रारूपण को समझना और स्क्रीन पर इसे प्रदर्शित करना या लेआउट को बदलना बिल्कुल आसान नहीं है। – Mason

+0

पाठ को आकर्षित करना "हैलो, वर्ल्ड!" '240.2734 427.6833 टीडी (हैलो, वर्ल्ड!) टीजे' की तरह दिख सकता है या यह' 240.2734 427.6833 टीडी <002B0048004F004F0052000F0003003A00520055004F00470004> Tj' या थोड़ा अलग दिख सकता है। आसान कार्यान्वयन कुछ फाइलों के साथ काम करेगा, लेकिन अन्य फाइलों के साथ असफल हो जाएगा। –

संबंधित मुद्दे