2011-10-31 13 views
11

जब मैं अपनी पीडीएफ फाइलों से टेक्स्ट निकालने का प्रयास करता हूं, तो ऐसा लगता है कि अलग-अलग शब्दों के बीच सफेद रिक्त स्थान डालें।पीडीएफबॉक्स शब्द के भीतर सफेद रिक्त स्थान जोड़ रहा है

मैं इस पेज के डाउनलोड अनुभाग में नमूना फ़ाइल निम्न पर pdfbox एप्लिकेशन के 1.6.0.jar (नवीनतम संस्करण) का उपयोग कर रहा: http://www.sheffield.gov.uk/roads/children/parents/6-11/pedestrian-training

मैं कई अन्य पीडीएफ फाइलों के साथ की कोशिश की है और यह लगता है कई पृष्ठों पर भी ऐसा ही करें।

मैं निम्न करें:

जावा जार pdfbox एप्लिकेशन के 1.6.0.jar ExtractText फोर्स -console ~/डेस्कटॉप/ped प्रशिक्षण pdf.pdf

डाउनलोड की गई फ़ाइल पर

और आप करेंगे कंसोल पर परिणाम में गलत तरीके से डाला निम्नलिखित में रिक्त स्थान देखें: "। • ch ildren schoo एल में चलने के लिए सक्षम हैं, तो सुरक्षित रूप से इस भीड़ को कम कर सकता"

"• बाद में जीवन के लिए अच्छा Hab अपनी विकसित।"

"www.sheff ield.gov.uk"

"आगे सोचो !, क Ich पर आधारित है"

आदि आदि

आप शब्दों है ऊपर के कई देख सकते हैं किसी भी कारण से उनके बीच की जगह मैं समझ सकता हूं।

मैं उबंटू पर हूं और सूर्य के जेडीके 1.6 चला रहा हूं।

मैंने कई अलग-अलग पीडीएफ फाइलों पर यह कोशिश की है और मंचों पर समाधान खोजने की कोशिश की है, वही बग थे लेकिन सभी को हल किया गया था।

कोई मदद या अगर किसी और को एक ही समस्या है तो कृपया टिप्पणी करें। यह खोज के लिए सामग्री को अनुक्रमणित करने में बड़ी समस्या पैदा कर रहा है।

उत्तर

11

दुर्भाग्यवश वर्तमान में इसके लिए कोई आसान समाधान नहीं है।

आंतरिक रूप से पीडीएफ दस्तावेज़ों में स्थिति X में "स्थान वर्ण 'एबीसी और" स्थिति वर्ण' def 'जैसे पदों में निर्देश होते हैं, और पीडीएफबॉक्स इस कारण से प्रयास करता है कि परिणामस्वरूप निकाले गए पाठ को "abc def" होना चाहिए या एक्स और वाई के बीच की दूरी जैसी चीजों के आधार पर "abcdef"। ये हेरिस्टिक्स आमतौर पर बहुत सटीक होते हैं, लेकिन जैसा कि आप देख सकते हैं कि वे हमेशा सही परिणाम नहीं देते हैं।

निकाले गए पाठ की गुणवत्ता में सुधार करने का एक तरीका प्रत्येक निकाले गए शब्द या टोकन पर एक शब्दकोश लुकअप का प्रयास करना है। यदि लुकअप विफल रहता है, तो अगले के साथ टोकन को संयोजित करने का प्रयास करें। यदि संयुक्त टोकन पर एक शब्दकोश लुकअप सफल होता है, तो यह काफी संभावना है कि पाठ निकालने वाले ने गलती से शब्द के अंदर एक अतिरिक्त स्थान जोड़ा है। दुर्भाग्य से ऐसी सुविधा अभी तक पीडीएफबॉक्स में मौजूद नहीं है। इसके लिए दायर किए गए फीचर अनुरोध के लिए https://issues.apache.org/jira/browse/PDFBOX-1153 देखें। पैच का स्वागत है!

+1

धन्यवाद जुक्का, कभी-कभी यह समझने में राहत होती है कि कुछ क्यों उम्मीद नहीं कर रहा है और यह भी कि मैं कुछ भी नहीं कर रहा हूं जो समस्या पैदा कर रहा है। –

+0

यदि आप ल्यूसीन का उपयोग कर रहे हैं तो इस तरह के शब्दकोष का निर्माण कैसे करें इसका एक उदाहरण यहां दिया गया है। [लुसीन में दस्तावेज़ टर्म वेक्टर निकालने के लिए कैसे करें] (http://stackoverflow.com/a/8901758/165085) –

5

कक्षा org.apache.pdfbox.util.PDFTextStripper (pdfbox-1.7.1) यह तय करने के लिए प्रवृत्ति को संशोधित करने की अनुमति देता है कि दो तार एक ही शब्द का हिस्सा हैं या नहीं।

बढ़ते spacingTolerance डाले गए रिक्त स्थान की संख्या को कम करेगा।

/** 
* Set the space width-based tolerance value that is used 
* to estimate where spaces in text should be added. Note that the 
* default value for this has been determined from trial and error. 
* Setting this value larger will reduce the number of spaces added. 
* 
* @param spacingToleranceValue tolerance/scaling factor to use 
*/ 
public void setSpacingTolerance(float spacingToleranceValue) { 
    this.spacingTolerance = spacingToleranceValue; 
} 
संबंधित मुद्दे