Python đọc PDF

PDF là viết tắt của Định dạng tài liệu di động. Nó sử dụng. phần mở rộng pdf. Loại tệp này chủ yếu được sử dụng cho mục đích chia sẻ. Chúng không thể được sửa đổi, do đó giữ nguyên định dạng của tệp. Do đó chúng có thể dễ dàng chia sẻ và tải xuống. Chúng có nghĩa là để đọc và không chỉnh sửa. Chúng trông giống nhau trên mọi thiết bị, chúng được mở độc lập với phần cứng, phần mềm và hệ điều hành. Do đó, chúng là định dạng được sử dụng rộng rãi nhất. Nó được phát minh bởi Adobe. Nó hiện là một tiêu chuẩn mở của Tổ chức Tiêu chuẩn hóa Quốc tế (ISO)

Trong hướng dẫn này, chúng ta sẽ học cách làm việc với các tệp PDF trong Python. Các chủ đề sau đây sẽ được đề cập

  • Cách trích xuất văn bản từ tệp PDF
  • Cách xoay trang của tệp PDF
  • Cách trích xuất thông tin tài liệu từ tệp PDF
  • Cách tách trang từ tệp PDF
  • Cách hợp nhất các trang của tệp PDF
  • Cách mã hóa tệp PDF
  • Cách thêm hình mờ vào tệp PDF

Một số thư viện phổ biến cho các tệp PDF trong Python

Có nhiều thư viện có sẵn miễn phí để làm việc với các tệp PDF

1. Công cụ khai thác PDF. Nó là một công cụ mã nguồn mở để trích xuất văn bản từ PDF. Nó được sử dụng để thực hiện phân tích dữ liệu. Nó cũng có thể được sử dụng như một trình chuyển đổi PDF hoặc trình phân tích cú pháp PDF

2. Truy vấn PDF. Nó là một trình bao bọc python nhẹ xung quanh PDFMiner, Ixml và PyQuery. Nó là một thư viện cạo PDF nhanh, thân thiện với người dùng

3. bảng. py. Nó là một trình bao bọc python cho tabula. java. Nó chuyển đổi các tệp PDF thành khung dữ liệu của Pandas và hơn nữa, tất cả các thao tác thao tác dữ liệu có thể được thực hiện trên khung dữ liệu

4. xpdf. Nó cho phép chuyển đổi PDF thành văn bản

5. pdflib. Nó là một phần mở rộng của thư viện poppler với các ràng buộc python có trong đó

6. đá phiến. Nó là gói Python dựa trên PDFMiner và được sử dụng để trích xuất văn bản từ PDF

7. PyPDF2. Đó là thư viện python được sử dụng để thực hiện các tác vụ chính trên tệp PDF như trích xuất thông tin dành riêng cho tài liệu, hợp nhất tệp PDF, tách các trang của tệp PDF, thêm hình mờ vào tệp, mã hóa và giải mã tệp PDF, v.v. Chúng tôi sẽ sử dụng thư viện PyPDF2 trong hướng dẫn này. Nó là một thư viện python thuần túy nên nó có thể chạy trên mọi nền tảng mà không có bất kỳ sự phụ thuộc nào liên quan đến nền tảng vào bất kỳ thư viện bên ngoài nào

Cài đặt thư viện PyPDF2

Để cài đặt PyPDF2, hãy sao chép các lệnh sau trong dấu nhắc lệnh và chạy

pip install PyPDF2

Lấy chi tiết tài liệu

PyPDF2 cung cấp siêu dữ liệu về tài liệu PDF. Đây có thể là thông tin hữu ích về các tệp PDF. Thông tin như tác giả của tài liệu, tiêu đề, nhà sản xuất, Chủ đề, v.v. có sẵn trực tiếp

Python đọc PDF

Để trích xuất thông tin trên, hãy chạy đoạn mã sau

from PyPDF2 import PdfFileReader
pdf_path=r"C:UsersDellDesktopTesting Tesseractexample.pdf"
with open(pdf_path, 'rb') as f:
        pdf = PdfFileReader(f)
        information = pdf.getDocumentInfo()
        number_of_pages = pdf.getNumPages()
        print(information)

Đầu ra của đoạn mã trên như sau

Python đọc PDF

Hãy để chúng tôi định dạng đầu ra

print("Author" +': ' + information.author)
print("Creator" +': ' + information.creator)
print("Producer" +': ' + information.producer)

Python đọc PDF

Trích xuất văn bản từ PDF

Để trích xuất văn bản, chúng tôi sẽ đọc tệp và tạo một đối tượng PDF của tệp

# creating a pdf file object
pdfFileObject = open(pdf_path, 'rb')

Sau đó, chúng ta sẽ tạo một đối tượng lớp PDFReader và truyền Đối tượng tệp PDF cho nó

# tạo đối tượng đọc pdf

pdfReader = PyPDF2.PdfFileReader(pdfFileObject)

Và cuối cùng, chúng tôi sẽ trích xuất từng trang và nối văn bản của từng trang

text=''
for i in range(0,pdfReader.numPages):
    # creating a page object
    pageObj = pdfReader.getPage(i)
    # extracting text from page
    text=text+pageObj.extractText()
print(text)

Văn bản đầu ra như sau

Python đọc PDF

Xoay các trang của PDF

Để xoay một trang của tệp PDF và lưu nó vào một tệp khác, hãy sao chép đoạn mã sau và chạy nó

pdf_read = PdfFileReader(r"C:UsersDellDesktopstory.pdf")
pdf_write = PdfFileWriter()
# Rotate page 90 degrees to the right
page1 = pdf_read.getPage(0).rotateClockwise(90)
pdf_write.addPage(page1)
with open(r'C:UsersDellDesktoprotate_pages.pdf', 'wb') as fh:
    pdf_write.write(fh)

Python đọc PDF

Hợp nhất các tệp PDF trong Python

Chúng tôi cũng có thể hợp nhất hai hoặc nhiều tệp PDF bằng các lệnh sau

pdf_read = PdfFileReader(r”C. Người dùngDellDesktopstory. pdf”)

pdf_write = PdfFileWriter()
# Rotate page 90 degrees to the right
page1 = pdf_read.getPage(0).rotateClockwise(90)
pdf_write.addPage(page1)
with open(r'C:UsersDellDesktoprotate_pages.pdf', 'wb') as fh:
    pdf_write.write(fh)

PDF đầu ra được hiển thị bên dưới

Python đọc PDF

Tách các trang của PDF

Chúng tôi có thể chia PDF thành các trang riêng biệt và lưu chúng lại dưới dạng PDF

fname = os.path.splitext(os.path.basename(pdf_path))[0]
    for page in range(pdf.getNumPages()):
        pdfwrite = PdfFileWriter()
        pdfwrite.addPage(pdf.getPage(page))
        outputfilename = '{}_page_{}.pdf'.format(
            fname, page+1)
        with open(outputfilename, 'wb') as out:
            pdfwrite.write(out)
        print('Created: {}'.format(outputfilename))
 pdf = PdfFileReader(pdf_path)

Mã hóa tệp PDF

Mã hóa tệp PDF có nghĩa là thêm mật khẩu vào tệp. Mỗi lần mở file nó nhắc nhập mật khẩu cho file. Nó cho phép nội dung được bảo vệ bằng mật khẩu. Cửa sổ bật lên sau xuất hiện

Python đọc PDF

Chúng ta có thể sử dụng đoạn mã sau cho cùng

from PyPDF2 import PdfFileReader
pdf_path=r"C:UsersDellDesktopTesting Tesseractexample.pdf"
with open(pdf_path, 'rb') as f:
        pdf = PdfFileReader(f)
        information = pdf.getDocumentInfo()
        number_of_pages = pdf.getNumPages()
        print(information)
0

Thêm Watermark vào tệp PDF

Hình mờ là một hình ảnh hoặc mẫu nhận dạng xuất hiện trên mỗi trang. Nó có thể là logo công ty hoặc bất kỳ thông tin mạnh mẽ nào được phản ánh trên mỗi trang
Để thêm hình mờ vào mỗi trang của PDF, hãy sao chép đoạn mã sau và chạy

from PyPDF2 import PdfFileReader
pdf_path=r"C:UsersDellDesktopTesting Tesseractexample.pdf"
with open(pdf_path, 'rb') as f:
        pdf = PdfFileReader(f)
        information = pdf.getDocumentInfo()
        number_of_pages = pdf.getNumPages()
        print(information)
1

Đoạn mã trên đọc hai tệp - tệp đầu vào và hình mờ. Sau đó, sau khi đọc từng trang, nó sẽ gắn hình mờ vào từng trang và lưu tệp mới vào cùng một vị trí

Python đọc PDF

Ghi chú kết thúc

Như chúng ta đã thấy ở trên, tất cả các thao tác có thể được nghĩ đến trong tệp PDF có thể được thực hiện dễ dàng bằng Python bằng thư viện PyPDF2. Nó hoàn toàn được viết bằng Python. Do đó, nó hoàn toàn độc lập với nền tảng. Nó rất dễ sử dụng và cung cấp tính linh hoạt tuyệt vời

Nó không bao giờ đi mà không nói

from PyPDF2 import PdfFileReader
pdf_path=r"C:UsersDellDesktopTesting Tesseractexample.pdf"
with open(pdf_path, 'rb') as f:
        pdf = PdfFileReader(f)
        information = pdf.getDocumentInfo()
        number_of_pages = pdf.getNumPages()
        print(information)
2

Nguồn hình ảnh

Phương tiện hiển thị trong bài viết này không thuộc sở hữu của Analytics Vidhya và được sử dụng theo quyết định của Tác giả

Python có thể đọc tệp PDF không?

Bạn có thể làm việc với tệp PDF có sẵn bằng Python bằng cách sử dụng gói PyPDF2 . PyPDF2 là gói Python thuần túy mà bạn có thể sử dụng cho nhiều loại thao tác PDF khác nhau.

Làm cách nào để lấy dữ liệu từ PDF bằng Python?

Có một số thư viện Python mà bạn có thể trích xuất dữ liệu từ tệp PDF. Ví dụ: bạn có thể sử dụng thư viện PyPDF2 để trích xuất văn bản từ các tệp PDF trong đó văn bản ở dạng tuần tự hoặc được định dạng i. e. theo dòng hoặc biểu mẫu . Bạn cũng có thể trích xuất các bảng trong tệp PDF thông qua thư viện Camelot.

Gấu trúc có đọc tệp PDF không?

Bạn có thể đọc các bảng từ PDF và chuyển đổi thành DataFrame của gấu trúc . tabula-py cũng cho phép bạn chuyển đổi tệp PDF thành tệp CSV/TSV/JSON. Chúng tôi thực sự khuyên bạn nên xem sổ ghi chép ví dụ và dùng thử trên Google Colab.

Làm cách nào để đọc hình ảnh PDF bằng Python?

Nhập các thư viện cần thiết
Chỉ định đường dẫn của tệp mà bạn muốn trích xuất hình ảnh và mở nó
Lặp lại qua tất cả các trang của PDF và nhận tất cả các đối tượng hình ảnh có trên mỗi trang
Sử dụng phương thức getImageList() để lấy tất cả các đối tượng hình ảnh dưới dạng danh sách các bộ dữ liệu