2011-07-26 19 views
9

मुझे कुछ पीडीएफ दस्तावेजों (जावा का उपयोग करके) से डेटा निकालने की जरूरत है। मुझे यह जानने की ज़रूरत है कि इसे करने का सबसे आसान तरीका क्या होगा।पीडीएफ से डेटा निकालने का सबसे आसान तरीका क्या है?

मैंने iText की कोशिश की। यह मेरी जरूरतों के लिए काफी जटिल है। इसके अलावा मुझे लगता है कि यह वाणिज्यिक परियोजनाओं के लिए मुफ्त में उपलब्ध नहीं है। तो यह एक विकल्प नहीं है। मैंने पीडीएफबॉक्स का भी प्रयास किया, और विभिन्न NoClassDefFoundError त्रुटियों में भाग गया।

मैं गुगल हो गया और पीडीएफ क्लाउन, जेपीओडी जैसे कई अन्य विकल्पों में आया, लेकिन मेरे पास इन सभी पुस्तकालयों के साथ प्रयोग करने का समय नहीं है। मैं जावा के माध्यम से पीडीएफ पढ़ने के साथ समुदाय के अनुभव पर भरोसा कर रहा हूं।

ध्यान दें कि मुझे पीडीएफ दस्तावेजों को बनाने या कुशल बनाने की आवश्यकता नहीं है। मुझे केवल मध्यम स्तर की लेआउट जटिलता वाले पीडीएफ दस्तावेजों से पाठ डेटा निकालना होगा।

कृपया पीडीएफ दस्तावेजों से पाठ निकालने का सबसे तेज़ और आसान तरीका सुझाएं। धन्यवाद।

उत्तर

2

मैं JPedal का उपयोग कर रहा हूं और मैं परिणामों से वाकई खुश हूं। यह मुफ़्त नहीं है लेकिन यह उच्च गुणवत्ता है और पीडीएफ या टेक्स्ट निष्कर्षण से छवि उत्पादन के लिए आउटपुट वास्तव में अच्छा है।

और एक भुगतान पुस्तकालय के रूप में, समर्थन हमेशा उत्तर देने के लिए होता है।

+0

धन्यवाद @Mauricio, लेकिन दुर्भाग्य से पुस्तकालय मुक्त होने की जरूरत है। :-( –

+0

मेरा विश्वास करो, मैंने वहां कई मुफ्त पुस्तकालयों की कोशिश की है और वे जेपीडल के प्रदर्शन और विकल्पों के करीब भी नहीं हैं। मेरा मानना ​​है कि लाइसेंस यू $ 800 की तरह कुछ है, इसलिए यह कार्यक्षमता के लिए बहुत सस्ता है। आपको मिल जाएगा। अगर आपको वास्तव में इसकी ज़रूरत है तो आपको अपनी कंपनी से कुछ ऐसा करने के लिए कहा जाना चाहिए जो संभव हो सके। –

1

मैंने बहुत सारे मुद्दों के बिना लुसीन इंडेक्सिंग के लिए टेक्स्ट निकालने के लिए पीडीएफबॉक्स का उपयोग किया है। अगर मुझे सही याद है तो इसकी त्रुटि/चेतावनी लॉगिंग काफी वर्बोज़ है - आपको मिली त्रुटियों का कारण क्या था?

+0

'ल्यूसीन' के लिए, मेरे आईडीई ने कहा कि कक्षा अनुपलब्ध है।वास्तव में पूरे 'searchengine' पैकेज अनुपलब्ध था। (मैंने अपाचे साइट से नवीनतम पीडीएफबॉक्स रिलीज डाउनलोड किया है।) –

+0

अगला मैंने 'पीडीएफ पार्सर' के साथ प्रयास किया। और यह मुझे मिली त्रुटि है: 'थ्रेड में अपवाद "मुख्य" java.lang.NoClassDefFoundError: org/apache/commons/logging/logFactory \t org.apache.pdfbox.pdfparser.BaseParser पर। (बेसपार्सर.जावा:58) ' –

+0

http://pdfbox.apache.org/dependencies.html –

2

मैं अपाचे Tika को आजमाने की सलाह देते हैं। अपाचे टिका मूल रूप से एक टूलकिट है जो पीडीएफ सहित कई प्रकार के दस्तावेज़ों से डेटा निकालती है।

टिका के लाभ (मुक्त होने के अलावा), यह अपाचे ल्यूसीन का उपप्रोजेक्ट होता है, जो एक बहुत ही मजबूत ओपन-सोर्स सर्च इंजन है। टीका में एक अंतर्निहित पीडीएफ पार्सर शामिल है जो आपके आवेदन में पीडीएफ डेटा पास करने के लिए एक SAX सामग्री हैंडलर का उपयोग करता है। यह एन्क्रिप्टेड पीडीएफ से डेटा निकाल सकता है और यह आपको व्यवहार को अनुकूलित करने के लिए मौजूदा पार्सर बनाने या उप-वर्ग बनाने की अनुमति देता है।

कोड सरल है। तब

public void parse(
    InputStream stream, ContentHandler handler, 
    Metadata metadata, ParseContext context) 
    throws IOException, SAXException, TikaException { 

    metadata.set(Metadata.CONTENT_TYPE, HELLO_MIME_TYPE); 
    metadata.set("Hello", "World"); 

    XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata); 
    xhtml.startDocument(); 
    xhtml.endDocument(); 
} 

, पार्सर को चलाने के लिए, आप की तरह कुछ कर सकता है: एक पीडीएफ से डेटा निकालने के लिए, तुम सब करने की जरूरत है एक पार्सर वर्ग कि पार्सर इंटरफ़ेस लागू करता है बना सकते हैं और परिभाषित एक पार्स() विधि है इस:

InputStream input = new FileInputStream(new File(resourceLocation)); 
ContentHandler textHandler = new BodyContentHandler(); 
Metadata metadata = new Metadata(); 
PDFParser parser = new PDFParser(); 
parser.parse(input, textHandler, metadata); 
input.close(); 
out.println("Title: " + metadata.get("title")); 
out.println("Author: " + metadata.get("Author")); 
out.println("content: " + textHandler.toString()); 
0

मैं समझता हूँ कि इस पोस्ट बहुत पुराना है लेकिन मैं यहाँ से iText का उपयोग कर की सिफारिश करेंगे: http://sourceforge.net/projects/itext/ आप Maven उपयोग कर रहे हैं आप Maven केंद्रीय से में जार खींच कर सकते हैं: http://mvnrepository.com/artifact/com.itextpdf/itextpdf

मुझे समझ में नहीं कर सकते कि कैसे का उपयोग करने के लिए यह मुश्किल हो सकता है:

PdfReader pdf = new PdfReader("path to your pdf file"); 
    PdfTextExtractor parser = new PdfTextExtractor(); 
    String output = parser.getTextFromPage(pdf, pageNumber); 
    assert output.contains("whatever you want to validate on that page"); 
संबंधित मुद्दे