Gender PDF Files, मुफ्त पायथन पुस्तकालय के माध्यम से पाठ और छवियाँ निकालें

नि: शुल्क पायथन एपीआई पीडीएफ फाइलों को संपादित और प्रस्तुत करने की अनुमति देता है; पाठ और चित्र निकालें, पीडीएफ पृष्ठों को संपादित करें, विलय/विभाजन करें और पीडीएफ को आसानी से परिवर्तित करें।

YouPDF एक हल्के खुला स्रोत पायथन API है जो पाइथन बाइंडिंग और अमूर्तता को MuPDF में जोड़ता है। API आकार में छोटा है लेकिन अभooks तक बहुत तेज़ है और प्रदान किए गए कई लोकप्रिय दस्तावेजों के प्रारूपों का समर्थन करता है जिनमें PDF, XPS, OpenXPS, CB, PUB और FB2 (eBooks) प्रारूपों के साथ-साथ लगभग 10 लोकप्रिय छवि प्रारूप भooks खोले जा सकते हैं और दस्तावेजों कooks तरह संभाले जा सकते हैं। PyMuPD बहुत विश्वसनooksय है और इसकooks शooksर्ष प्रतिपादन क्षमता के लिए जाना जाता है। चूंकि पुस्तकालय बहुत हल्का वजन है, यह उन प्लेटफार्मों के लिए बहुत पसंद करता है जहां संसाधन आमतौर पर सooksमित होते हैं, जैसे स्मार्टफोन।

पीडीएफ दस्तावेज़ प्रतिपादन और रूपांतरण के लिए पीईएमयूपीडीएफ एपीआई द्वारा समर्थित कई मूलभूत और उन्नत सुविधाएं हैं, जैसे पीडीएफ को पीएनजी में परिवर्तित करना, मेटाडेटा तक पहुंचना और देखना, रूपरेखाओं के साथ काम करना, एक पृष्ठ को रास्टर या वेक्टर (एसवीजी) छवि में प्रस्तुत करना, पीडीएफ टेक्स्ट खोज समर्थन, पीडीएफ पेज से टेक्स्ट निकालें, पीडीएफ से छवियां निकालें, जीयूआई में छवि प्रदर्शित करें, पीडीएफ पेज को संशोधित करें, नए पीडीएफ पेज बनाएं, अवांछित पीडीएफ पेज हटाएं, डेटा एम्बेड करें और इसी तरह। PyMuPDF में मैक, लिनक्स और विंडोज जैसे कई प्लेटफॉर्म के लिए समर्थन शामिल है।

Previous Next

PyMuPDF

PyMuPDF को पाइप का उपयोग करके स्थापित किया जा सकता है, यदि कोई आपके प्लेटफॉर्म के लिए उपलब्ध है तो निम्नलिखित आदेश पाइथन व्हील से स्थापित होंगे।

PyMuPDF पिप्स

 python -m pip install --upgrade pip
python -m pip install --upgrade pymupdf
 

क्लोन PyMuPDF

 git clone https://github.com/pymupdf/PyMuPDF.git 

इसे मैन्युअल रूप से इंस्टॉल करना भी संभव है; नवीनतम रिलीज़ फ़ाइलें सीधे GitHub रिपॉजिटरी से डाउनलोड करें।

पायथन के माध्यम से PDF फ़ाइलों में पाठ के लिए खोज

PDF इंटरनेट पर दस्तावेजों को साझा करने के लिए दुनिया के पसंदीदा फ़ाइल प्रारूपों में से एक रहा है क्योंकि यह इसके अंदर सभी टेक्स्ट प्रारूपण और ग्राफिक्स को बरकरार रखता है। लेकिन अन्य दस्तावेजों की तुलना में इन फ़ाइलों के अंदर पाठ की खोज करना आसान नहीं है। मुफ्त YouPDF पुस्तकालय सॉफ्टवेयर डेवलपर्स को अपने पायथन अनुप्रयोगों के अंदर पाठ-खोज क्षमताओं को जोड़ने की अनुमति देता है। यह पता लगाने की अनुमति देता है कि पृष्ठ पर एक निश्चित पाठ स्ट्रिंग मौजूद है।

PDF पेज टेक्स्ट स्ट्रिंग पर पायथन के माध्यम से दिखाई देता है

areas = page.search_for("mupdf") 

पायथन API के माध्यम से PDF पाठ और छवियाँ निकालना

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

पाइथन API के माध्यम से PDF से टेक्स्ट कैसे निकालें

from operator import itemgetter
from itertools import groupby
import fitz
doc = fitz.open( 'mydocument.pdf' )
pages = [ doc[ i ] for i in range( doc.pageCount ) ]
for page in pages:
  text_words = page.getTextWords()
  # The words should be ordered by y1 and x0
  sorted_words = SortedCollection( key = itemgetter( 3, 0 ) )
  for word in text_words:
    sorted_words.insert( word )
  # At this point you already have an ordered list. If you need to 
  # group the content by lines, use groupby with y1 as a key
  lines = groupby( sorted_words, key = itemgetter( 3 ) )

पायथन As में PDF दस्तावेज़ शामिल हों और विभाजित करें

अलग-अलग PDF फ़ाइलों का संयोजन एक बहुत ही उपयोगी सुविधा है जो उपयोगकर्ताओं को एक दर्जन अलग-अलग PDF रखने के बजाय एक PDF रखने की क्षमता देती है। फ्री और ओपन-सोर्स क्रॉस-प्लेटफॉर्म PyMuPDF लाइब्रेरी सॉफ्टवेयर प्रोग्रामर्स को आसानी से अलग-अलग फाइलों को मर्ज करने या अलग-अलग पीडीएफ दस्तावेजों के बीच पेज कॉपी करने की शक्ति देती है। यह उपयोगकर्ताओं को पाइथन कोड की केवल कुछ पंक्तियों के साथ बड़े पीडीएफ दस्तावेज़ों को छोटी फाइलों में विभाजित करने की शक्ति भी देता है। पीडीएफ दस्तावेज़ के कुछ विशिष्ट पृष्ठों का चयन करना और उसमें से एक नया दस्तावेज़ बनाना भी संभव है।

फर्स्ट एंड लास्ट 10 पेज से नया दस्तावेज़ बनाता है

doc2 = fitz.open()                 # new empty PDF
doc2.insert_pdf(doc1, to_page = 9)  # first 10 pages
doc2.insert_pdf(doc1, from_page = len(doc1) - 10) # last 10 pages
doc2.save("first-and-last-10.pdf")

पढ़ें और निर्यात PDF मेटाडाटा के माध्यम से CSV

ओपन सोर्स PyMuPDF लाइब्रेरी ने बिना किसी बाहरी निर्भरता के पीडीएफ फाइलों के मेटाडेटा तक पहुंचने और पढ़ने के लिए पूर्ण कार्यक्षमता प्रदान की है। यह विभिन्न प्रकार की मेटाडेटा कुंजियों का समर्थन करता है जैसे निर्माण की तारीख, लेखक, शीर्षक, निर्माता आवेदन, कोई विषय, एन्क्रिप्शन विधि, फ़ाइल प्रारूप, और इसी तरह। मेटाडेटा को CSV प्रारूप में निर्यात करना भी संभव है।

 

पायथन API के माध्यम से PDF मेटाडाटा से CSV तक निर्यात करें

import csv
import fitz
import argparse
parser = argparse.ArgumentParser(description="Enter CSV delimiter [;], CSV filename and documment filename")
parser.add_argument('-d', help='CSV delimiter [;]', default = ';')
parser.add_argument('-x', help='delete XML info [n]', default = 'n')
parser.add_argument('-csv', help='CSV filename')
parser.add_argument('-pdf', help='PDF filename')
args = parser.parse_args()
delim = args.d               # requested CSV delimiter character
assert args.csv, "missing CSV filename"
assert args.pdf, "missing PDF filename"
print "delimiter", args.d
print "xml delete", args.x
print "csv file", args.csv
print "pdf file", args.pdf
print "----------------------------------------"
doc = fitz.open(args.pdf)
oldmeta = doc.metadata
print "old metadata:"
for k,v in oldmeta.items():
    print k, ":",v
with open(args.csv) as tocfile:
    tocreader = csv.reader(tocfile, delimiter = delim)
    for row in tocreader:
        assert len(row) == 2, "each row must contain 2 entries"
        oldmeta[row[0]] = row[1]
print "----------------------------------------"
print "\nnew metadata:"
for k,v in oldmeta.items():
    print k, ":",v
doc.set_metadata(oldmeta)
doc.saveIncr()
 हिन्दी