मुफ्त में पीडीएफ को पाठ में बदलने की कोशिश की जा रही है


16

मैं OSX का उपयोग कर रहा हूं और पीडीएफ फाइलों को पाठ में बदलने में सक्षम होना चाहूंगा।

मैं यह करने के लिए एक निशुल्क आवेदन करना चाहता हूं, क्योंकि मुझे यकीन है कि कुछ होना चाहिए।


2
क्या आप पीडीएफ से पाठ निकालना चाहते हैं जिसमें पहले से ही पाठ है? (यानी, आप उनमें से टुकड़ों को कॉपी और पेस्ट कर सकते हैं) या क्या आप उस पाठ को पहचानना चाह रहे हैं जो छवि सामग्री में है?
एलन शटको

Free-ocr.com क्या मदद करता है ?
टिम

जवाबों:


14

यहाँ मैं Homebrew के माध्यम से xpdf स्थापित करने और उपयोग करने के लिए उपयोग किए जाने वाले कदम हैं।

  1. Homebrew की निर्भरता स्थापित करें:

    xcode-select --install
    
  2. उनकी वेबसाइट से Homebrew स्थापित करें:

    /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    
  3. होमब्रेव इंस्टॉलेशन को पूरा करने के लिए यह बताएं।

  4. सत्यापित करें कि Homebrew कल्पना करने के लिए खुश है और कार्य कर रहा है।

    brew doctor
    
  5. अगला xpdf और उसकी निर्भरताएँ स्थापित करें:

    brew install Caskroom/cask/xquartz
    
    brew install xpdf
    
  6. अंत में, pdftotext, xpdf सुइट के साथ आने वाले पैकेज का उपयोग करें:

    pdftotext Some_Document.pdf Some_Document.txt
    

पहला फ़ाइल नाम एक मौजूदा पीडीएफ है; दूसरा गंतव्य है। परिणाम Adobe Acrobat के ((पुराने रूप से पुराने) संस्करण की तुलना में बहुत बेहतर थे। संपादित करें: एडोब एक्रोबैट के नए (2019) संस्करणों ने समान रूप से खराब परिणाम दिखाए हैं।


2
मुझे लगता xquartzहै कि कंसोल टूल्स के लिए इसकी आवश्यकता नहीं है xpdf। इसके अलावा, वहाँ popplerकांटा है xpdfजो कहीं अधिक सक्रिय रूप से बनाए रखा लगता है: github.com/scraperwiki/scraperwiki-python/issues/…
Jeroen Wiert Pluimers

6

कई तरीके।

  1. Google दस्तावेज़ों का उपयोग करें (आपको Google खाते की आवश्यकता होगी)

  2. ऑटोमेटर का उपयोग करें (कुछ आवश्यक कार्य)

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

पीडीएफ से पाठ निकालें

या ऐप स्टोर से कोई ऐप, जैसे पीडीएफ टू टेक्स्ट


5

xpdf जिसे मैंने बंदरगाहों के साथ स्थापित किया है:

port install xpdf

शामिल हैं:

xpdf-pdftotext

यह वही करता है जो आप किसी पीडीएफ फाइल के लिए चाहते हैं, जो टेक्स्ट फाइल से आ रही है (और इमेज से नहीं):

xpdf-pdftotext PDF_file text_file

1
कम से कम HomeBrew द्वारा स्थापित कमांड, सिर्फ "pdftotext" है।
फ्लैश शेरिडन

@FlashSheridan क्या मैं आपको "pdftotext" को कवर करने वाले उत्तर को पोस्ट करने के लिए प्रोत्साहित कर सकता हूं और इसे कैसे स्थापित करना चाहिए? टिप्पणियां कभी भी हटाई जा सकती हैं (और खोजों में दिखाई नहीं देती हैं)।
nohillside

4

एडोब रीडर (11.0.09) के वर्तमान संस्करण में इसके फ़ाइल मेनू में "अन्य के रूप में सहेजें" आइटम है।

विकल्पों में से एक पाठ है

ऐप नि: शुल्क है, और एक सभ्य नौकरी पाठ फ़ाइलों का उत्पादन करता है। नए दस्तावेज़ में सभी छवियां .txt प्रारूप के साथ खो जाएंगी।


1

मुझे लगता है कि आपको पाठ को किसी अन्य दस्तावेज़ में कॉपी और पेस्ट करने में सक्षम होना चाहिए। सभी पाठ का चयन करने के लिए

"पूर्वावलोकन" में पीडीएफ खोलें, और

  • "संपादित करें | सभी चुनें" चुनें
  • "संपादित करें | कॉपी करें" चुनें

दूसरे ऐप पर जाएं, "टेक्स्ट एडिट" कहें

  • "संपादित करें | चिपकाएँ" चुनें

ध्यान दें कि यदि आप कोशिश करते हैं और ऐसा करते हैं, और कोई पाठ चिपकाया नहीं गया है, तो बस खाली लाइनों का एक गुच्छा, अपने पीडीएफ को एक नए पीडीएफ में प्रिंट करने का प्रयास करें, जैसे।

  • पूर्वावलोकन में, "फ़ाइल | प्रिंट" चुनें
  • नीचे दाईं ओर, "PDF | Save as PDF" चुनें
  • यह एक नया पीडीएफ निर्यात करता है।

अब इस नई पीडीएफ के साथ उपरोक्त प्रक्रिया का प्रयास करें। मेरे लिए काम किया!

PS: यदि आपके पास Microsoft Word है, तो आप अपने पीडीएफ को वर्ड में खोलने में सक्षम हो सकते हैं


1
जबकि यह काम करना चाहिए जब पीडीएफ दस्तावेज़ में वास्तव में पाठ सामग्री होती है, तो यह प्रारूपण को बनाए नहीं रखता है और कुछ मामलों में कचरा पाठ के साथ-साथ वांछित पाठ भी माना जाएगा। ध्यान दें कि यह अन्य विधियों के साथ भी ऐसा ही हो सकता है, लेकिन मैंने इसे इंगित करना महत्वपूर्ण समझा।
user3439894

एक शक के बिना - यकीन के लिए एकदम सही नहीं है, और मैं पूरी तरह से आपकी कही हर बात से सहमत हूं। मैं इसे केवल एक विकल्प के रूप में यहाँ जोड़ रहा हूँ जो मैंने पहले देखा है, कि मेरे लिए कुछ भी स्थापित किए बिना काम किया ;-)
ब्रैड पार्क्स

मैं यह भी मानता हूं कि यह ज्यादातर मामलों के लिए काम करता है, लेकिन पृष्ठ संख्या, पाद विवरण जो दस्तावेज़ से संबंधित नहीं हैं और अभी तक बदतर हैं: बड़े दस्तावेज़ों पर प्रभावी रिपोर्टिंग यह एक असंतोषजनक समाधान बनाती है। यदि यह 5 पृष्ठों से कम था, तो मैं इस पर विचार करूंगा, लेकिन मुझे जिन साइटों की ज़रूरत है, उनमें से अधिकांश शोध साइटों से पीडीएफ के हैं, जो एक्सेल या एसक्यूएल से बाहर निकलने से इनकार करते हैं, यह विकल्प भी कार्यात्मक नहीं है।
तमनोक

माना! आपके उपयोग के मामले के लिए एक व्यवहार्य विकल्प नहीं
ब्रैड पार्क

1

निम्नलिखित अजगर स्क्रिप्ट एक पीडीएफ दस्तावेज़ से एक .txt फ़ाइल में पाठ को आउटपुट करेगी। (नोट: इस बात की कोई गारंटी नहीं है कि पीडीएफ प्रारूप में डेटा को जिस तरह से रखा गया है, उसके कारण पाठ 'तार्किक' मानव पठनीय क्रम में होना आवश्यक है।)

स्क्रिप्ट कमांड लाइन (जैसे pdf2txt.py myPDF.pdf) पर तर्क के रूप में आपूर्ति की गई किसी भी पीडीएफ फाइलों के लिए पाठ फ़ाइलों का निर्माण करेगी , या आप ऑटोमेटर के "रन शैल स्क्रिप्ट" कार्रवाई में उपयोग कर सकते हैं, शेल प्रकार को अजगर पर सेट कर सकते हैं और इनपुट को "तर्क के रूप में" कर सकते हैं । तब आप इसे क्विक एक्शन या ड्रॉपएप के रूप में उपयोग कर सकते हैं।

#!/usr/bin/python
# coding: utf-8

import os, sys
from Quartz import PDFDocument
from CoreFoundation import (NSURL, NSString)
NSUTF8StringEncoding = 4

def pdf2txt():
    for filename in sys.argv[1:]:   
        inputfile =filename.decode('utf-8')
        shortName = os.path.splitext(filename)[0]
        outputfile = shortName+" text.txt"
        pdfURL = NSURL.fileURLWithPath_(inputfile)
        pdfDoc = PDFDocument.alloc().initWithURL_(pdfURL)
        if pdfDoc :
            pdfString = NSString.stringWithString_(pdfDoc.string())
            pdfString.writeToFile_atomically_encoding_error_(outputfile, True, NSUTF8StringEncoding, None)

if __name__ == "__main__":
   pdf2txt()

यह बॉक्स से बाहर काम करता है (यानी - किसी भी अजगर पुस्तकालयों या कुछ भी स्थापित करने के लिए नहीं है!) - पाठ का सिर्फ एक कच्चा डंप है, लेकिन कभी-कभी आपको यही चाहिए - ध्यान दें कि फ़ाइल वर्तमान निर्देशिका में सहेजती है (यदि चल रही है) कमांड लाइन) और फ्लॉन्टआउट करने के लिए बाहर निकलते हैं
ब्रैड पार्क्स

@BradParks इनपुट फ़ाइल के रूप में इसे उसी फ़ोल्डर में सहेजना चाहिए: यह कमांड तर्कों से फ़ाइलपथ लेता है। आप इसे कैसे आपूर्ति कर रहे हैं?
बेनिविगा

आह ... मैं एक ही फ़ोल्डर में था, इसलिए मैंने कभी गौर नहीं किया - मेरा एकमात्र असली इरादा यह कहना था कि यह stdout में नहीं आता है, और यह काम करता है! धन्यवाद!
ब्रैड पार्क्स

1
if pdfDocबयान के बाद दो पंक्तियों को बदलें print(pdfDoc.string())
बेनिग्गी

अरे वाह, यह सचमुच पहली बार है जब Apple पायथन वितरण कुछ के लिए उपयोगी हो जाता है !! जवाब के लिए धन्यवाद!!
Jérémie
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.