เพศ PDF ไฟล์, สารสกัดจากข้อความและรูปภาพผ่านห้องสมุด Python ฟรี

Python API ฟรีอนุญาตให้แก้ไขและแสดงผลไฟล์ PDF; แยกข้อความและรูปภาพแก้ไข PDF หน้าผสาน / แยกและแปลง PDFs ได้อย่างง่ายดาย

PyMuPDF เป็นแหล่งเปิดที่มีน้ําหนักเบา Python API ที่เพิ่มผลผูกพันของ Python และนามธรรมลงใน PDF API มีขนาดเล็ก แต่ยังรวดเร็วมากและให้การสนับสนุนจํานวนของรูปแบบเอกสารที่เป็นที่นิยมรวมทั้ง PDF, XPS, OpenXPS, CB, PUB และ FB2 (eBooks) รูปแบบเช่นเดียวกับเกี่ยวกับ 10 รูปแบบภาพที่เป็นที่นิยมสามารถเปิดเอกสารและ PyMuPD มีความน่าเชื่อถือมากและเป็นที่รู้จักสําหรับความสามารถในการแสดงผลด้านบน เนื่องจากห้องสมุดมีน้ําหนักเบามากทําให้มันเป็นทางเลือกที่ดีสําหรับแพลตฟอร์มที่ทรัพยากรมักจะ จํากัด เช่นมาร์ทโฟน

มีคุณลักษณะพื้นฐานและขั้นสูงมากมายที่สนับสนุนโดย YouPDF API สําหรับการแสดงผลและแปลงเอกสาร PDF รายการเช่นการแปลง PDF เป็น NG การเข้าถึงและการดูข้อมูลเมตาทํางานกับโครงร่างการแสดงผลหน้าเว็บลงใน PyMuPDF ได้รวมการสนับสนุนสําหรับแพลตฟอร์มมากมายเช่น Mac, Linux และ Windows

Previous Next

เริ่มต้นใช้งาน PyMuPDF

PyMuPDF สามารถติดตั้งโดยใช้ pip คําสั่งต่อไปนี้จะติดตั้งจากล้อ Python ถ้ามีให้สําหรับแพลตฟอร์มของคุณ

ติดตั้ง PyMuPDF ผ่าน pip

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

โคลน PyMuPDF ผ่านที่เก็บ git

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

นอกจากนี้ยังสามารถติดตั้งด้วยตนเองได้ ดาวน์โหลดไฟล์รุ่นล่าสุดโดยตรงจากที่เก็บ GitHub

ค้นหาข้อความในไฟล์ PDF ผ่าน Python

PDF เป็นหนึ่งในรูปแบบไฟล์ที่ชื่นชอบของโลกสําหรับการแชร์เอกสารทั่วอินเทอร์เน็ตเพราะมันยังคงจัดรูปแบบข้อความและกราฟิกทั้งหมดภายใน แต่มันไม่ใช่เรื่องง่ายที่จะค้นหาข้อความภายในไฟล์เหล่านี้เมื่อเทียบกับเอกสารอื่น ๆ ห้องสมุด PyMuPDF ฟรีช่วยให้ผู้พัฒนาซอฟต์แวร์สามารถเพิ่มความสามารถในการค้นหาข้อความภายในแอปพลิเคชัน Python ของพวกเขา จะช่วยให้การค้นหาที่ในหน้าสตริงข้อความบางอย่างที่มีอยู่.

ค้นหาตําแหน่งบน PDF ข้อความสตริงปรากฏผ่าน Python

areas = page.search_for("mupdf") 

ดึง PDF ข้อความและรูปภาพผ่าน Python API

ห้องสมุดเปิดแหล่งที่มา YouPDF ได้รวมคุณสมบัติที่สําคัญหลายประการสําหรับการทํางานกับ PDF ข้อความและรูปภาพ ห้องสมุดมีฟังก์ชั่นต่างๆสําหรับการดึงข้อความและภาพจาก PDF เอกสาร โดยค่าเริ่มต้นจะช่วยให้การสกัดของข้อความธรรมดาที่มีการแบ่งบรรทัด ไม่มีการจัดรูปแบบไม่มีรายละเอียดตําแหน่งข้อความไม่มีภาพ นอกจากนี้มันสนับสนุนการสร้างรายชื่อของบล็อกข้อความสร้างรายการของคําสร้างรุ่นภาพเต็มรูปแบบของหน้ารวมถึงภาพใด ๆ และอื่น ๆ อีกมากมาย

วิธีการแยกข้อความจาก PDF ผ่าน Python API

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 ) )

เข้าร่วมและแยก PDF เอกสารใน Python เป็น

รวม PDF ไฟล์ที่แตกต่างกันเป็นคุณลักษณะที่มีประโยชน์มากที่ช่วยให้ผู้ใช้สามารถมี PDF หนึ่งมากกว่าการมี PDFs แยกโหล ไลบรารี YouPDF ข้ามแหล่งฟรีและโอเพ่นซอร์สให้โปรแกรมเมอร์ซอฟต์แวร์พลังในการรวมไฟล์ที่แตกต่างกันหรือคัดลอกหน้าระหว่างเอกสาร PDF ที่แตกต่างกันได้อย่างง่ายดาย นอกจากนี้ยังให้ผู้ใช้พลังงานในการแยกเอกสาร PDF ขนาดใหญ่เป็นไฟล์ขนาดเล็กที่มีเพียงไม่กี่บรรทัดของรหัส Python นอกจากนี้ยังเป็นไปได้ที่จะเลือกบางหน้าเฉพาะของเอกสาร PDF และสร้างเอกสารใหม่ออกจากมัน

สร้างเอกสารใหม่จากหน้าแรก & หน้าสุดท้าย 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 ผ่าน Python

ห้องสมุดเปิดแหล่งที่มา YouPDF ได้ให้ฟังก์ชันที่สมบูรณ์สําหรับการเข้าถึงและการอ่านข้อมูลเมตาของ PDF ไฟล์โดยไม่ต้องพึ่งพาภายนอกใด ๆ รองรับคีย์ข้อมูลเมตาประเภทต่างๆเช่นวันที่สร้างผู้เขียนชื่อโปรแกรมผู้สร้างเรื่องวิธีการเข้ารหัสรูปแบบไฟล์และอื่น ๆ นอกจากนี้ยังเป็นไปได้ที่จะส่งออกข้อมูลเมตาไปยัง CSV รูปแบบ

 

ส่งออกข้อมูลเมตา PDF ไปยัง CSV ผ่าน Python API

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()
 ไทย