Cách trích xuất văn bản từ hình ảnh pdf trong python

Bài viết này sẽ xem cách chúng ta có thể sử dụng Python để làm việc với các tệp PDF [Định dạng Tài liệu Di động]. Tệp PDF chứa hình ảnh, tài liệu, văn bản, liên kết, âm thanh, video, bạn cũng có thể thêm siêu liên kết vào tệp pdf. Vì vậy, về cơ bản, bài viết này sẽ giúp bạn Cách trích xuất văn bản và hình ảnh từ PDF bằng Python?

Các chủ đề chúng tôi đang đề cập trong bài viết này được đưa ra dưới đây.

  1. Đọc file PDF văn bản
  2. Đọc bảng trong tệp PDF
  3. Trích xuất hình ảnh từ tệp PDF
  4. Viết một tệp PDF

Làm việc với các tệp PDF trong python rất dễ dàng, bạn có thể sử dụng các loại thư viện/mô-đun Python khác nhau để làm việc trong PDF như PyPDF2, tabula-py, PyMuPDF, v.v. Chúng tôi sẽ sử dụng một số thư viện này trong hướng dẫn này vì chúng rất dễ dàng, bạn chỉ cần cài đặt thư viện và chạy một số mã trong ide của mình, hãy xem cách thực hiện quy trình này. Vì vậy, hãy bắt đầu với cách trích xuất văn bản và hình ảnh từ PDF bằng Python?

nội dung

  • 1 Đọc tệp PDF
    • 1. 1 Bước -1. Nhận tệp mẫu
    • 1. 2 Bước -2. Cài đặt thư viện/mô-đun cần thiết
    • 1. 3 Bước -3. Viết mã
    • 1. 4 Đầu ra.
  • 2 Đọc bảng trong tệp PDF
    • 2. 1 Bước -1. Nhận tệp mẫu
    • 2. 2 Bước -3. Cài đặt thư viện/mô-đun cần thiết
  • 3 Trích xuất hình ảnh từ tệp PDF
    • 3. 1 Bước -1. Nhận tệp mẫu
    • 3. 2 Bước -2. Cài đặt thư viện/mô-đun cần thiết
    • 3. 3 Bước -3. Viết mã
    • 3. 4 Đầu ra.
  • 4 Viết tệp PDF
  • 5 Lời cuối cùng

Đọc tập tin PDF

Bước 1. Nhận một tập tin mẫu

Điều đầu tiên chúng ta cần là một. tập tin pdf [mẫu. pdf] để đọc các tập tin pdf. Sau khi bạn có. pdf hoạt động, hãy bắt đầu mã hóa

Bước 2. Cài đặt thư viện/mô-đun cần thiết

bạn cần cài đặt một thư viện có tên là PyPDF cho python, bạn có thể cài đặt nó bằng cách chạy một lệnh trong thiết bị đầu cuối của mình

pip3 install PyPDF

Bước 3. viết mã

Mở IDE của bạn [Tôi đang sử dụng PyCharm, bạn có thể sử dụng một IDE khác như Mã VS] và bắt đầu viết mã nhưng trước đó hãy xem các bước chúng ta cần viết mã.

  • Nhập mô-đun PyPDF3 vào IDE của bạn
  • Mở tệp pdf ở chế độ nhị phân và lưu đối tượng tệp dưới dạng tệp PDF
  • Tạo một đối tượng của lớp PDF filereader
  • In số trang trong tệp pdf bằng thuộc tính 'numPages'. Nó cho ta biết số trang [trong file pdf của ta có 206 trang]
  • Sau đó, chúng tôi tạo một đối tượng của lớp pages và xác định số trang cụ thể [bắt đầu bằng 0] nội dung trang mà chúng tôi đang trích xuất ở đây chúng tôi đang trích xuất văn bản từ trang số 85
  • Bây giờ chúng ta sẽ sử dụng một hàm gọi là 'extractText[]' sẽ trích xuất văn bản từ tệp PDF từ một số trang cụ thể mà chúng ta đang cung cấp
  • Cuối cùng, đóng tệp PDF

Bây giờ hãy xem quy trình trong mã Python.

#import the PyPDF2 module
import PyPDF2

#open the PDF file
PDFfile = open['Sample.pdf.', 'rb']

PDFfilereader = PyPDF2.PdfFileReader[PDFfile]

#print the number of pages
print[PDFfilereader.numPages]

#provide the page number
pages = PDFfilereader.getPage[85]

#extracting the text in PDF file
print[pages.extractText[]]

#close the PDF file
PDFfile.close[]

đầu ra

206
76pronounced:declareddiscreet........................................................ .........................Complete the Table as shown below. Comprehension.

Trong dòng đầu tiên của đầu ra, bạn có thể thấy một số[206] là số của trang và phần còn lại của văn bản là ngữ cảnh của trang số được chỉ định

Đọc bảng trong tệp PDF

Bước 1. Nhận một tập tin mẫu

Điều đầu tiên chúng ta cần để đọc bảng trong tệp pdf là. pdf [mẫu. pdf] chứa một bảng. Sau khi bạn có. pdf hoạt động, hãy bắt đầu mã hóa.

Bước 3. Cài đặt thư viện/mô-đun cần thiết

Phương pháp -1

Bạn cần cài đặt một thư viện có tên tabula-py cho python, nó giúp đọc bảng trong tệp pdf, bạn có thể cài đặt nó bằng cách chạy một lệnh trong thiết bị đầu cuối của mình.

pip3 install tabula-py

Mở ý tưởng của bạn [Tôi đang sử dụng Pycharm, bạn có thể sử dụng một ý tưởng khác như mã] và bắt đầu viết mã nhưng trước đó, hãy xem các bước chúng ta cần thực hiện để viết mã

  • Trước tiên, bạn cần nhập thư viện tabula
  • Điều quan trọng thứ hai là tệp pdf có chứa bảng
from tabula import read_pdf 
from tabulate, import tabulate 

#reads the table from pdf file 

df = read_pdf["abc.pdf",pages="all"] #address of pdf file
print[tabulate[df]]

Bạn cũng có thể đọc nhiều bảng dưới dạng các bảng độc lập. Bạn có thể sử dụng đoạn mã dưới đây để làm như vậy.

#select the pdf file
file = "sample.pdf"

#reading both table as an independent table
tables = tabula.read_pdf[file,pages=1,multiple_tables=True]
print[tables[0]]
print[tables[1]]

Phương pháp -2

Bạn cần cài đặt một thư viện tên là

#import the PyPDF2 module
import PyPDF2

#open the PDF file
PDFfile = open['Sample.pdf.', 'rb']

PDFfilereader = PyPDF2.PdfFileReader[PDFfile]

#print the number of pages
print[PDFfilereader.numPages]

#provide the page number
pages = PDFfilereader.getPage[85]

#extracting the text in PDF file
print[pages.extractText[]]

#close the PDF file
PDFfile.close[]
2 cho Python. Nó giúp đọc bảng trong tệp pdf. Bạn có thể cài đặt nó bằng cách chạy một lệnh trong thiết bị đầu cuối của mình

pip3 install camelot-py

Hãy xem các bước chúng ta cần viết mã

  • Nhập thư viện Camelot
  • Trích xuất tất cả các bảng từ pdf
  • Cuối cùng in nó

Đó là một quy trình rất đơn giản, bạn chỉ cần sao chép-dán mã vào IDE của mình nhưng đừng quên giữ tệp pdf trong cùng thư mục với tệp Python

Trích xuất hình ảnh từ tệp PDF

Bước 1. Nhận một tập tin mẫu

Điều đầu tiên chúng ta cần để trích xuất hình ảnh từ tệp PDF là. tập tin pdf [mẫu. pdf] có chứa hình ảnh mà bạn muốn trích xuất. Sau khi bạn có. pdf hoạt động, hãy bắt đầu mã hóa

Bước 2. Cài đặt thư viện/mô-đun cần thiết

Bạn cần cài đặt thư viện có tên PyMuPDF [bạn cũng có thể sử dụng PyPDF2 nhưng cách này dễ hơn] cho Python. Bạn có thể cài đặt nó bằng cách chạy một lệnh trong thiết bị đầu cuối của mình

________số 8

Bước 3. viết mã

Hãy bắt đầu viết mã nhưng trước đó hãy xem các bước chúng ta cần thực hiện để viết mã

  • Nhập mô-đun Fitz vào ý tưởng của bạn
  • Tiếp theo, chúng ta sẽ tạo một tệp và lưu trữ tên của tệp “
    #import the PyPDF2 module
    import PyPDF2
    
    #open the PDF file
    PDFfile = open['Sample.pdf.', 'rb']
    
    PDFfilereader = PyPDF2.PdfFileReader[PDFfile]
    
    #print the number of pages
    print[PDFfilereader.numPages]
    
    #provide the page number
    pages = PDFfilereader.getPage[85]
    
    #extracting the text in PDF file
    print[pages.extractText[]]
    
    #close the PDF file
    PDFfile.close[]
    
    3”
  • Sau đó, chúng tôi đang mở tệp pdf fitz. mở ra
  • Sau đó, tạo một biến khác có tên image_list và áp dụng phương thức trên pdf đó là lấy PageImageList[] và cung cấp số trang
  • Điều tiếp theo là chúng ta sẽ áp dụng vòng lặp này trong danh sách hình ảnh này
  • Và tiếp theo, chúng tôi sẽ trích xuất Xref từ nó vì chúng tôi chỉ muốn các pixel [nếu muốn, bạn có thể trích xuất một thứ khác như vị trí của hình ảnh, thuộc tính của hình ảnh, v.v.]
  • Điều tiếp theo là chúng ta cần chuyển đổi nó thành một pixmap mà chúng ta chỉ cần tạo một biến có tên là pix
  • Và sau đó đặt điều kiện “nếu” nếu hình ảnh có thang độ xám hoặc màu thì chúng ta chỉ cần lưu nó
  • Cuối cùng, chúng tôi chỉ cần in các hình ảnh và trích xuất chúng
#import the PyPDF2 module
import PyPDF2

#open the PDF file
PDFfile = open['Sample.pdf.', 'rb']

PDFfilereader = PyPDF2.PdfFileReader[PDFfile]

#print the number of pages
print[PDFfilereader.numPages]

#provide the page number
pages = PDFfilereader.getPage[85]

#extracting the text in PDF file
print[pages.extractText[]]

#close the PDF file
PDFfile.close[]
0

đầu ra

#import the PyPDF2 module
import PyPDF2

#open the PDF file
PDFfile = open['Sample.pdf.', 'rb']

PDFfilereader = PyPDF2.PdfFileReader[PDFfile]

#print the number of pages
print[PDFfilereader.numPages]

#provide the page number
pages = PDFfilereader.getPage[85]

#extracting the text in PDF file
print[pages.extractText[]]

#close the PDF file
PDFfile.close[]
1

Viết tệp PDF

Chúng tôi sẽ sử dụng mô-đun FPDF để ghi tệp PDF. Vì vậy, hãy cài đặt mô-đun FPDF bằng lệnh bên dưới

#import the PyPDF2 module
import PyPDF2

#open the PDF file
PDFfile = open['Sample.pdf.', 'rb']

PDFfilereader = PyPDF2.PdfFileReader[PDFfile]

#print the number of pages
print[PDFfilereader.numPages]

#provide the page number
pages = PDFfilereader.getPage[85]

#extracting the text in PDF file
print[pages.extractText[]]

#close the PDF file
PDFfile.close[]
0

Một lần, bạn đã hoàn tất việc cài đặt. Sử dụng đoạn mã dưới đây để ghi tệp PDF

#import the PyPDF2 module
import PyPDF2

#open the PDF file
PDFfile = open['Sample.pdf.', 'rb']

PDFfilereader = PyPDF2.PdfFileReader[PDFfile]

#print the number of pages
print[PDFfilereader.numPages]

#provide the page number
pages = PDFfilereader.getPage[85]

#extracting the text in PDF file
print[pages.extractText[]]

#close the PDF file
PDFfile.close[]
1

Bây giờ, bạn đã sẵn sàng với PDF. Một tệp PDF mới sẽ được tạo trong cùng thư mục chứa mã Python của bạn

Từ cuối cùng

Trong bài viết này, chúng tôi đã đề cập đến cách trích xuất văn bản và hình ảnh từ PDF bằng Python. Viết và đọc một tệp PDF có thể là một nhiệm vụ khó khăn vì nó liên quan đến rất nhiều yếu tố như văn bản, hình ảnh, bảng biểu, v.v. Nhưng chúng tôi đã đơn giản hóa để bạn hiểu những kiến ​​thức cơ bản về thao tác với tệp PDF bằng Python. Tôi hy vọng bạn hiểu mã và bạn có thể dễ dàng thực hiện tương tự. Vui lòng cho chúng tôi biết trong phần nhận xét nếu bạn gặp phải bất kỳ sự cố nào hoặc bạn không thể chạy mã

Làm cách nào tôi có thể trích xuất văn bản từ hình ảnh PDF?

Mở tệp PDF có chứa hình ảnh được quét trong Acrobat cho Mac hoặc PC. Nhấp vào công cụ “Chỉnh sửa PDF” ở khung bên phải. Acrobat tự động áp dụng nhận dạng ký tự quang học [OCR] cho tài liệu của bạn và chuyển đổi nó thành một bản sao PDF của bạn có thể chỉnh sửa hoàn toàn. Nhấp vào thành phần văn bản bạn muốn chỉnh sửa và bắt đầu nhập

Làm cách nào để trích xuất văn bản từ hình ảnh Python?

Python-tesseract là công cụ nhận dạng ký tự quang học [OCR] dành cho Python . Nó là một công cụ nhận dạng văn bản mã nguồn mở. Nó được sử dụng rộng rãi để trích xuất văn bản từ hình ảnh hoặc tài liệu vì nó cung cấp kết quả chính xác hơn. Phần tốt nhất là nó hỗ trợ nhiều loại ngôn ngữ.

Làm cách nào để trích xuất thông tin từ PDF bằng Python?

Đối tượng trang có chức năng extractText[] để trích xuất văn bản từ trang pdf.

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

Các bước sẽ như thế này. .
Đọc tập tin PDF
Chuyển đổi PDF thành hình ảnh
Tiền xử lý hình ảnh để kiểm tra hướng, góc nghiêng, thang độ xám, v.v.
Chạy chức năng OCR từ API của nó
Trích xuất toàn bộ/một phần văn bản

Chủ Đề