Hướng dẫn how do i read a pdf byte in python? - làm cách nào để đọc một byte pdf trong python?

Tôi đang cố gắng tạo một PDF Puller từ trang web của Sở giao dịch chứng khoán Úc sẽ cho phép tôi tìm kiếm thông qua tất cả các 'thông báo' được thực hiện bởi các công ty và tìm kiếm các từ khóa trong các bản PDF của các thông báo đó.

Cho đến nay tôi đang sử dụng các yêu cầu và PYPDF2 để lấy tệp PDF, viết nó vào ổ đĩa của tôi và sau đó đọc nó. Tuy nhiên, tôi muốn có thể bỏ qua bước viết tệp PDF vào ổ đĩa của mình và đọc nó, và đi thẳng từ việc lấy tệp PDF sang chuyển đổi nó thành một chuỗi. Những gì tôi có cho đến nay là:

import requests, PyPDF2

url = 'http://www.asx.com.au/asxpdf/20171108/pdf/43p1l61zf2yct8.pdf'
response = requests.get(url)
my_raw_data = response.content

with open("my_pdf.pdf", 'wb') as my_data:
    my_data.write(my_raw_data)


open_pdf_file = open("my_pdf.pdf", 'rb')
read_pdf = PyPDF2.PdfFileReader(open_pdf_file)
num_pages = read_pdf.getNumPages()

ann_text = []
for page_num in range(num_pages):
    if read_pdf.isEncrypted:
        read_pdf.decrypt("")
        print(read_pdf.getPage(page_num).extractText())
        page_text = read_pdf.getPage(page_num).extractText().split()
        ann_text.append(page_text)

    else:
        print(read_pdf.getPage(page_num).extractText())
print(ann_text)

Điều này in một danh sách các chuỗi trong tệp PDF từ URL được cung cấp.

Chỉ tự hỏi nếu tôi có thể chuyển đổi biến my_raw_data thành một chuỗi có thể đọc được?

Cảm ơn rất nhiều trước!

\ $ \ beingroup \ $

Tôi khá là một người mới trong Python và tôi muốn tăng tốc phương pháp này vì phải mất rất nhiều thời gian, đặc biệt là khi kích thước của tệp đầu vào tính bằng MBS. Ngoài ra, tôi không thể tìm ra cách sử dụng Cython trong vòng lặp. Tôi đang sử dụng chức năng này với các chức năng khác để so sánh các tệp byte bằng byte. Bất kỳ khuyến nghị?

# this function returns a file bytes in a list
filename1 = 'doc1.pdf'
def byte_target(filename1):
    f = open(filename1, "rb")
    try:
        b = f.read(1)
        tlist = []
        while True:
            # get file bytes
            t = ' '.join(format(ord(x), 'b') for x in b)
            b = f.read(1)
            if not b:
                break
            #add this byte to the list
            tlist.append(t)

            #print b        

    finally:
        f.close()
    return tlist

Hướng dẫn how do i read a pdf byte in python? - làm cách nào để đọc một byte pdf trong python?

200_success

Phù bằng vàng 143K2222 gold badges185 silver badges469 bronze badges

Đã hỏi ngày 4 tháng 6 năm 2015 lúc 18:34Jun 4, 2015 at 18:34

Hướng dẫn how do i read a pdf byte in python? - làm cách nào để đọc một byte pdf trong python?

\ $ \ endgroup \ $

0

\ $ \ beingroup \ $

Tôi khá là một người mới trong Python và tôi muốn tăng tốc phương pháp này vì phải mất rất nhiều thời gian, đặc biệt là khi kích thước của tệp đầu vào tính bằng MBS. Ngoài ra, tôi không thể tìm ra cách sử dụng Cython trong vòng lặp. Tôi đang sử dụng chức năng này với các chức năng khác để so sánh các tệp byte bằng byte. Bất kỳ khuyến nghị?

Phù bằng vàng 143K22

Đã hỏi ngày 4 tháng 6 năm 2015 lúc 18:34

    with open(filename1, "rb") as f:
        b = f.read(1)
        # ...

Cuối cùng, tên chức năng và tất cả các tên biến rất kém và không giúp người đọc hiểu mục đích của họ và những gì bạn đang cố gắng làm.

Đã trả lời ngày 4 tháng 6 năm 2015 lúc 18:41Jun 4, 2015 at 18:41

Hướng dẫn how do i read a pdf byte in python? - làm cách nào để đọc một byte pdf trong python?

Janosjanosjanos

Huy hiệu vàng 110K1414 gold badges147 silver badges382 bronze badges

\ $ \ endgroup \ $

1

Với Open (Tệp, 'RB') là F: Content = IO.Bytesio (F.Read ())
content = io.BytesIO(f.read())

Nhập pdfplumber

doc = pdfplumber.open (nội dung)

  4 

----> 5 DOC = pdfplumber.open (nội dung)

D: \ Anaconda \ lib \ site-Packages \ pdfplumber \ pdf.py in Open (cls, path, ** kwargs) 46 @ClassMethod 47 def Open (cls, path, ** kwargs): --- .
46 @classmethod
47 def open(cls, path, **kwargs):
---> 48 return cls(open(path, "rb"), **kwargs)
49
50 def process_page(self, page):

TypeError: Đối tượng Str, Byte hoặc Os.Path mong đợi, không phải _io.Bytesio


Tìm cách trích xuất dữ liệu từ các tài liệu? Hãy thử NanOnets OCR Software. Trích xuất dữ liệu từ Biên lai, hóa đơn, tài liệu PDF và nhiều hơn nữa trên Autopilot. Không có thẻ tín dụng. Kế hoạch miễn phí mãi mãi.


Loại tệp phổ biến nhất là định dạng tài liệu di động, còn được gọi là PDF. Nó có thể là một ebook, thỏa thuận có chữ ký kỹ thuật số, tài liệu được bảo vệ bằng mật khẩu hoặc tài liệu được quét như hộ chiếu.

PDF là định dạng kỹ thuật số được sử dụng rộng rãi nhất và Tổ chức Tiêu chuẩn Quốc tế (ISO) duy trì nó như một tiêu chuẩn mở.

PDF là định dạng tài liệu được sử dụng rộng rãi nhất, với hơn 73 triệu tệp PDF mới được lưu mỗi ngày trên Gmail & Drive.

Điều này cho thấy số lượng dữ liệu khổng lồ được lưu trữ trong các loại tệp này, thường khó chỉnh sửa hoặc sửa đổi. Ở đây trong blog này, chúng tôi sẽ xem cách bạn có thể sử dụng thư viện Python, PYPDF2 để làm việc với các tệp PDF và thực hiện các tác vụ sau:

  • Trích xuất văn bản từ tệp PDF bằng PYPDF2
  • Mã hóa một tệp PDF bằng PYPDF2
  • Xoay, hợp nhất và phân chia các tệp PDF
  • Thêm hình mờ vào tệp PDF

Vì vậy, chúng ta hãy đọc tiếp.

PYPDF2 là thư viện Python duy nhất bạn có thể sử dụng cho PDF OCR bằng Python. Dưới đây là một số thư viện Python PDF phổ biến:

PDFQuery: PDFQuery là một thư viện quét PDF và nó là một trình bao bọc Python nhanh và thân thiện với người dùng cho PyQuery, PDFMiner và XML. PDFQuery is a PDF scraping library, and it is a fast and user-friendly python wrapper for PyQuery, PDFMiner, and XML.

Tabula.py: Đây là một trình bao bọc Python xung quanh Tabula-Java được sử dụng để đọc các bảng trong PDF. Tabula.py cho phép bạn đọc các bảng và có thể được chuyển đổi thành gấu trúc DataFrame. It is a Python wrapper around tabula-java used to read tables in PDF. Tabula.py enables you to read tables and can be converted into Pandas DataFrame.

Slate: Nó được sử dụng để trích xuất văn bản từ các tệp PDF, tùy thuộc vào gói pdfminer. Slate là một công cụ chú thích nhẹ hỗ trợ chú thích trong Python. It is used to extract text from PDF files, depending on the PDFMiner package. Slate is a lightweight annotation tool that supports annotation in Python.

PDFMiner: Đây là một thư viện PDF nguồn mở được sử dụng để trích xuất văn bản từ PDF. Bạn có thể sử dụng pdfminer để thực hiện phân tích trên dữ liệu. Tuy nhiên, nó chỉ hỗ trợ Python3.: It is an open-source PDF library used to extract text from PDF. You can use PDFMiner to perform analysis on data. However, it only supports Python3.

PDFLIB: PDFLIB là một thư viện để tạo PDFS trong Python. Thư viện phát triển này chứa một số cấp độ để tạo, cá nhân hóa và nhập tệp PDF. PDFlib is a library for creating PDFs in python. This development library contains several levels for creating, personalizing, and importing PDFs.

XPDF: Đây là một trình bao bọc Python cho PDF. It is a Python wrapper for pdf.

PYPDF2: Đây là một trong những thư viện Python nổi tiếng nhất cho phép bạn thực hiện các tác vụ trên PDF, bao gồm hợp nhất các tệp PDF, trích xuất thông tin tài liệu, chia các trang PDF và nhiều hơn nữa. It is one of the best-known python libraries that enable you to perform tasks on PDFs, including merging PDF files, extracting document information, splitting PDF pages, and much more.

Ở đây trong bài viết này, chúng tôi sẽ thảo luận về thư viện PYPDF2, được gọi là một trong những thư viện tốt nhất để thao tác với PDF trong Python và có sẵn trên mọi nền tảng.


Thư viện PDF tốt nhất cho Python là gì?

Thư viện tốt nhất để làm việc với PDFS trong Python là PYPDF2. Nó có trọng lượng nhẹ, nhanh và được ghi chép tốt. Thư viện có sẵn trên Chỉ số gói Python (PYPI).

Nếu bạn cần tạo một tệp PDF từ đầu, bạn sẽ muốn sử dụng PYPDF2 vì nó có hỗ trợ mạnh mẽ để tạo tài liệu mới. Nếu bạn cần phân tích một bản ghi hiện có, thì PYPDF2 là hoàn hảo vì nó có hỗ trợ tốt hơn để phát hiện các loại phông chữ khác nhau và các tính năng khác.

Giới thiệu về Thư viện PYPDF2

PYPDF2 là một thư viện Python cho phép thao tác các tài liệu PDF. Nó có thể được sử dụng để tạo các tài liệu PDF mới, sửa đổi các tài liệu hiện có và trích xuất nội dung từ các tài liệu. PYPDF2 là một thư viện Python thuần túy không yêu cầu các mô-đun không chuẩn.

API cấp thấp (dựa trên pygments) cho phép viết các chương trình tạo hoặc thao tác hiệu quả các tài liệu. API cấp cao (dựa trên báo cáo) cho phép tạo các tài liệu phức tạp như biểu mẫu, sách hoặc tạp chí chỉ với một vài dòng mã.

PYPDF2 hỗ trợ:

  • Chuyển đổi các tệp PDF thành hình ảnh (PNG hoặc JPEG) hoặc các tệp văn bản;
  • Tạo tài liệu PDF mới từ đầu;
  • Chỉnh sửa các tệp PDF hiện có bằng cách thêm, xóa, thay thế hoặc sửa đổi các trang;
  • Sửa đổi các tệp PDF hiện có bằng các trang xoay, thêm hình mờ, thay đổi phông chữ, v.v .;
  • Ký tài liệu có chữ ký kỹ thuật số (phải có chứng chỉ);

PYPDF2 đã được thiết kế với hiệu suất trong tâm trí. Nó sử dụng mã C gốc để xử lý các nhiệm vụ tốn nhiều thời gian nhất (chẳng hạn như phân tích cú pháp) nhưng không bao giờ hy sinh sự đơn giản của giao diện của nó. Thư viện cũng an toàn bằng chỉ và dấu chân bộ nhớ của nó không lớn hơn nhiều so với mức yêu cầu của Python (khoảng 1MB).

Làm cách nào để đọc PDF trong PYPDF2?

Mặc dù PYPDF2 không có phương thức cụ thể để đọc các tệp từ xa, bạn có thể sử dụng mô -đun Urllib.Request của Python để đọc tệp từ xa bằng byte trước khi chuyển nó cho hàm pdffileReader () với tệp ở định dạng của byte. Các bước còn lại giống như đọc một tệp PDF cục bộ.Python's urllib.request module to read the remote file in bytes before passing it to the PdfFileReader() function with the file in the format of the byte. The remaining steps resemble reading a local PDF file.

Sự khác biệt giữa PYPDF2 và PYPDF4 là gì?

PYPDF2 là một thư viện được sử dụng để tạo, thao tác và giải mã các tài liệu di động. Nó hỗ trợ PDF 1.4, 1.5 và 1.6, cũng như tất cả các tính năng bảo mật trong PDF 1.7, bao gồm chữ ký và quyền kỹ thuật số.

PYPDF2 không có sự phụ thuộc nào ngoài thư viện tiêu chuẩn Python. Đó là mã Python thuần túy, nhưng nó sử dụng các tiện ích mở rộng C cho một số thuật toán để cải thiện hiệu suất.

PYPDF4 là một công cụ nâng cao để làm việc với các tài liệu PDF trên các nền tảng MacOS, Windows và Linux. Nó bao gồm:

  • GUI để tạo các tệp PDF từ đầu với văn bản, hình ảnh và hình dạng; Trình duyệt để xem các tệp PDF
  • Một công cụ dòng lệnh để thực hiện tất cả các hoạt động khác trên các tệp hiện có hoặc tạo các công cụ mới từ đầu bằng cách sử dụng các tập lệnh Python hoặc các lệnh shell như SED (1) hoặc AWK (1).

PYPDF4 dựa trên thư viện PYPDF2 và chia sẻ giấy phép của nó nhưng có các tính năng bổ sung như:

  • Hỗ trợ chú thích nhãn trang
  • Hỗ trợ cho các tài liệu được mã hóa (bao gồm cả giải mã của chúng vào thời gian chạy)
  • Hỗ trợ mã hóa/giải mã tài liệu
  • Hỗ trợ cho dấu trang có liên kết giữa các trang
  • Hỗ trợ mật khẩu Các tài liệu được bảo vệ (bao gồm cả giải mã của chúng trong thời gian chạy).

Bạn muốn cạo dữ liệu từ các tài liệu PDF, chuyển đổi PDF thành XML hoặc tự động trích xuất bảng? Kiểm tra trình duyệt PDF hoặc trình phân tích cú pháp PDF của Nanonets để chuyển đổi PDF thành các mục nhập cơ sở dữ liệu!


Việc sử dụng PYPDF2 là gì?

Thư viện PYPDF2 có thể được sử dụng theo nhiều cách khác nhau:

  • PYPDF2 được sử dụng làm công cụ dòng lệnh để tạo hoặc sửa đổi PDFS. Điều này rất hữu ích nếu bạn có quyền truy cập shell vào máy chủ nhưng không phải là môi trường máy tính để bàn đồ họa.
  • Nó chạy thư viện bên trong các tập lệnh Python bằng cách nhập nó dưới dạng mô -đun và gọi các chức năng của nó. Điều này rất hữu ích nếu bạn muốn tự động hóa các tác vụ trực tiếp hoặc xây dựng các ứng dụng phức tạp bằng PYPDF2.
  • Nó có thể đọc, phân tích và viết pdfs. Nó có thể được sử dụng như một công cụ dòng lệnh hoặc làm thư viện.
  • Nó được viết bằng Python thuần túy không có sự phụ thuộc bên ngoài (ngoại trừ chính Python).
  • Nó hỗ trợ các chuỗi Unicode để nó có thể xử lý các ký tự không phải tiếng Anh.

Các trường hợp sử dụng PYPDF2

Dưới đây là một số trường hợp sử dụng mà PYPDF2 có thể được sử dụng cho:

Chuyển đổi PDF thành từ hoặc các định dạng khác

Chẳng hạn, nếu bạn muốn chuyển đổi PDF thành Word hoặc định dạng khác, bạn sẽ phải tải xuống một chương trình riêng cho mỗi chuyển đổi. Và nếu bạn đang cố gắng làm điều này trên nhiều tài liệu cùng một lúc, quá trình này có thể chậm và cồng kềnh.

PYPDF2 là một công cụ dòng lệnh cung cấp một cách làm việc thay thế với PDFS. Bạn có thể sử dụng nó như một phần của quy trình làm việc thông thường hoặc như một chương trình Python.

Hợp nhất nhiều tệp PDF với nhau

Người dùng có thể sử dụng PYPDF2 để sửa đổi nội dung của tài liệu PDF. Ví dụ: thêm hoặc xóa các trang khỏi PDF hoặc trích xuất văn bản. Cũng có thể thêm hình ảnh và các đối tượng khác vào các tệp PDF hiện có.

Sửa đổi nội dung của tài liệu PDF

Hợp nhất nhiều tệp PDF với nhau cũng có thể được thực hiện bằng PYPDF2. Điều này có thể được thực hiện bằng cách chỉ định các đường dẫn đầu vào cho mỗi tệp PDF và sau đó kết hợp chúng lại với nhau thành một tài liệu.

Chia một tài liệu lớn thành những tài liệu nhỏ hơn

Nếu bạn cần chia một tài liệu lớn thành những tài liệu nhỏ hơn, PYPDF2 là thư viện bạn nên sử dụng. Thư viện hỗ trợ phân tách tài liệu theo trang, mỗi n trang và theo phạm vi của các trang.

Nó cũng hỗ trợ phân tách các tài liệu dựa trên siêu dữ liệu của họ, điều này rất hữu ích nếu bạn muốn chia tài liệu theo tác giả hoặc tiêu đề của họ.


Bạn muốn tự động hóa các tác vụ nhập dữ liệu thủ công lặp đi lặp lại? Trích xuất dữ liệu từ hóa đơn, thẻ nhận dạng hoặc bất kỳ tài liệu nào trên Autopilot!


Cài đặt PYPDF2

Có nhiều phương pháp khác nhau để cài đặt PYPDF2. Lựa chọn phổ biến nhất là sử dụng PIP.

Python 3.6 trở lên là cần thiết để chạy PYPDF2.

Một trình cài đặt gói có tên PIP thường được bao gồm với Python. Nó cho phép bạn thiết lập PYPDF2:

pip install PyPDF2

Bạn chỉ có thể cài đặt PYPDF2 cho người dùng hiện tại của mình nếu bạn không phải là Superuser (quản trị viên hệ thống hoặc root):

pip install --user PyPDF2

Bạn sẽ cần cài đặt một vài yêu cầu bổ sung nếu bạn muốn sử dụng PYPDF2 để mã hóa hoặc giải mã PDFS AES. Mã hóa RC4 được hỗ trợ bằng cách sử dụng cài đặt tiêu chuẩn.

pip install PyPDF2[crypto]

PYPDF2 là một thư viện Python để làm việc với các tài liệu PDF. Nó có thể được sử dụng để phân tích các tệp PDF, sửa đổi chúng và tạo các tệp PDF mới. PYPDF2 có thể được sử dụng để trích xuất một số văn bản và siêu dữ liệu từ PDF. Điều này có thể hữu ích nếu bạn đang tự động hóa một số quy trình trên các tệp PDF hiện tại của bạn.

Các loại dữ liệu hiện tại có thể được trích xuất như sau:

  • Tác giả
  • Người sáng tạo
  • Nhà sản xuất
  • Môn học
  • Tiêu đề
  • Số lượng trang

Để sử dụng ví dụ này, bạn phải xác định vị trí PDF. Bất kỳ PDF nào có sẵn trên máy tính của bạn có thể được sử dụng.

Đây là một ví dụ về mã cho điều này:

# get_doc_info.py
from PyPDF2 import PdfFileReader
def get_info(path):
with open(path, 'rb') as f:
pdf = PdfFileReader(f)
info = pdf.getDocumentInfo()
number_of_pages = pdf.getNumPages()
print(info)
author = info.author
creator = info.creator
producer = info.producer
subject = info.subject
title = info.title
if __name__ == '__main__':
path = 'reportlab-sample.pdf'
get_info(path)

Pypdf.pdf.documentinformation sẽ trả về bao gồm các thuộc tính hữu ích, bao gồm tác giả, người tạo, nhà sản xuất, chủ đề và tiêu đề. will return comprising useful attributes, including author, creator, producer, subject, and title.

Bằng cách in đối tượng tài liệu thông tin, bạn sẽ nhận được đầu ra cần thiết như thế này: the DocumentInformation object, you will get the required output like this:

Hướng dẫn how do i read a pdf byte in python? - làm cách nào để đọc một byte pdf trong python?

PDFFileReader của gói PYPDF2 được nhập tại đây. Một lớp có tên PDFFileReader cung cấp một số cách để đối phó với các tệp PDF.

Trong trường hợp này, bạn gọi.getDocumentInfo (), sẽ cung cấp cho bạn một đối tượng thông tin tài liệu. Hầu hết thông tin này là những gì bạn quan tâm nhất.call.getDocumentInfo(), which will provide you a DocumentInformation object. Most of this information is what you're most interested in.

Ngoài ra, bạn có thể có được số lượng trang của tài liệu bằng cách gọi phương thức Reader Object.getNumpages ().object.getNumPages() method.

Bạn có thể sử dụng các thuộc tính thể hiện khác nhau của biến thông tin để trích xuất siêu dữ liệu tài liệu còn lại mà bạn yêu cầu. Bạn lấy một bản in của thông tin và trả lại cho việc sử dụng trong tương lai.

Hàm.extracttext () trong pypdf2 có thể được sử dụng trên các đối tượng trang của nó (không được hiển thị trong ví dụ này), mặc dù nó không hiệu quả lắm. Một số tệp PDF sẽ mang lại văn bản, trong khi những người khác sẽ trả về một chuỗi trống..extractText() function in PyPDF2 can be used on its page objects (not shown in this example), although it is not very effective. Some PDFs will yield text, while others will return an empty string.

Kiểm tra các ống nanon thay thế nếu bạn muốn trích xuất văn bản từ PDF. Vì nó được tạo ra rõ ràng để trích xuất văn bản từ PDF, nên các ống nanon có khả năng cao hơn đáng kể.


Bạn muốn sử dụng tự động hóa quá trình robot? Kiểm tra phần mềm xử lý tài liệu dựa trên quy trình làm việc của Nanonets. Không có mã. Không có nền tảng rắc rối.


Trích xuất văn bản từ PDF bằng PYPDF2 rất khó vì nó có hỗ trợ hạn chế để trích xuất văn bản. Sự trở lại của mã sẽ không ở định dạng thích hợp. Bạn có thể nhận được một loạt các ký tự phá vỡ dòng do sự hỗ trợ hạn chế của PYPDF2.

Hãy để xem cách bạn có thể trích xuất văn bản từ PDF:

# extracting_text.py
from PyPDF2 import PdfFileReader
def text_extractor(path):
with open(path, 'rb') as f:
pdf = PdfFileReader(f)
# get the first page
page = pdf.getPage(1)
print(page)
print('Page type: {}'.format(str(type(page))))
text = page.extractText()
print(text)
if __name__ == '__main__':
path = 'reportlab-sample.pdf'
text_extractor(path)

Sử dụng bổ sung cho mô -đun PYPDF2

Nhiều hoạt động có thể được thực hiện trên các tệp PDF bằng mô -đun PYPDF2, bao gồm:

  • Đọc văn bản của tệp pdf, như chúng tôi đã làm ở trên
  • Thay đổi góc mà trang tệp PDF được xoay
  • Bằng cách kết hợp hai hoặc nhiều tệp PDF trên một trang cụ thể.
  • Đính kèm nhiều tệp PDF tuần tự.
  • Để có được thông tin như người tạo, tác giả, ngày sáng tạo, v.v., định vị tất cả các siêu dữ liệu cho mỗi tệp PDF.
  • Thậm chí tốt hơn, chúng ta có thể sử dụng văn bản từ tệp văn bản để tạo tài liệu PDF mới.

Nếu bạn làm việc với các hóa đơn và biên lai hoặc lo lắng về xác minh ID, hãy xem Nanonets trực tuyến OCR hoặc Trình trích xuất văn bản PDF để trích xuất văn bản từ các tài liệu PDF miễn phí. Nhấp vào bên dưới để tìm hiểu thêm về giải pháp tự động hóa doanh nghiệp Nanonets.online OCR or PDF text extractor to extract text from PDF documents for free. Click below to learn more about Nanonets Enterprise Automation Solution.


Hướng dẫn PYPDF2 khác

Làm thế nào để xoay các trang của tệp pdf?

Mô -đun PyPDF2 của Module Python là một thư viện được sử dụng để thao tác các tệp PDF. Nó rất dễ sử dụng và có sẵn cho nhiều nền tảng khác nhau.

Ở đây chúng ta sẽ xem cách chúng ta có thể xoay các trang của tệp PDF. Lưu PDF trong một tệp khác và chạy mã sau:

import PyPDF2
pdf_in = open('original.pdf', 'rb')
pdf_reader = PyPDF2.PdfFileReader(pdf_in)
pdf_writer = PyPDF2.PdfFileWriter()
for pagenum in range(pdf_reader.numPages):
page = pdf_reader.getPage(pagenum)
page.rotateClockwise(180)
pdf_writer.addPage(page)
pdf_out = open('rotated.pdf', 'wb')
pdf_writer.write(pdf_out)
pdf_out.close()
pdf_in.close()

Làm thế nào để hợp nhất các tệp PDF?

Sau khi quét nhiều trang của tài liệu hoặc lưu trữ nhiều trang dưới dạng các tài liệu riêng biệt trên máy tính của bạn, việc hợp nhất các tệp PDF thường xuyên cần thiết.

Nhiều chương trình, bao gồm Adobe và các ứng dụng trực tuyến, có thể giúp thực hiện nhiệm vụ này nhanh chóng. Tuy nhiên, hầu hết trong số họ là để bán hoặc có thể không cung cấp đủ các biện pháp bảo mật.

Mở trình soạn thảo ưa thích của bạn, sau đó tạo một tệp mới có tên là "pdfmerger.py." Đảm bảo chương trình Python nằm trong cùng thư mục với các tệp PDF sẽ được đính kèm.

Bạn có thể kết hợp hai hoặc nhiều tệp PDF bằng cách sử dụng khối mã sau:

# this function returns a file bytes in a list
filename1 = 'doc1.pdf'
def byte_target(filename1):
    f = open(filename1, "rb")
    try:
        b = f.read(1)
        tlist = []
        while True:
            # get file bytes
            t = ' '.join(format(ord(x), 'b') for x in b)
            b = f.read(1)
            if not b:
                break
            #add this byte to the list
            tlist.append(t)

            #print b        

    finally:
        f.close()
    return tlist
0

Mã trên có vẻ khá đơn giản, nhưng nếu bạn muốn kết hợp nhiều hơn hai tệp? Đối với mỗi tệp, bạn muốn thêm, dòng 3 sẽ cần được lặp lại, điều này sẽ làm cho ứng dụng của bạn khá dài. Trong trường hợp này, một vòng lặp có thể được sử dụng.

Một phương pháp khác để kết hợp nhiều tệp PDF được hiển thị trong mã sau.

Làm thế nào để phân chia các trang từ tệp pdf?

Vì nhiều lý do, bạn có thể thường muốn trích xuất một trang cụ thể từ một tệp PDF lớn hoặc kết hợp một số tệp PDF thành một. Điều này có thể được thực hiện với một số phần mềm biên tập PDF nhất định. Tuy nhiên, bạn có thể thấy rằng các tính năng chia và hợp nhất thường không được bao gồm trong phiên bản miễn phí hoặc xử lý rất nhiều trang hoặc tệp làm cho chúng quá tốn công. Trong bài viết này, tôi sẽ chia sẻ một tập lệnh Python đơn giản mà bạn có thể sử dụng để chia hoặc kết hợp một số tệp PDF.

Sử dụng pdffileReader để đọc tệp gốc sẽ cho phép bạn truy cập một trang cụ thể theo số trang của nó khi bạn muốn trích xuất một trang cụ thể từ tệp PDF và tạo nó dưới dạng tệp PDF riêng biệt (số trang bắt đầu từ 0). Chức năng thêm trang của pdffilewriter cho phép bạn thêm trang PDF vào đối tượng PDF hoàn toàn mới và lưu nó.

Dưới đây là một ví dụ về mã phân tách trang đầu tiên của File1.pdf thành một tệp PDF riêng biệt được gọi là trang đầu tiên.pdf.

# this function returns a file bytes in a list
filename1 = 'doc1.pdf'
def byte_target(filename1):
    f = open(filename1, "rb")
    try:
        b = f.read(1)
        tlist = []
        while True:
            # get file bytes
            t = ' '.join(format(ord(x), 'b') for x in b)
            b = f.read(1)
            if not b:
                break
            #add this byte to the list
            tlist.append(t)

            #print b        

    finally:
        f.close()
    return tlist
1

Làm thế nào để hợp nhất các trang của tệp pdf?

Bạn có thể sử dụng pdffilemerger để kết hợp nhiều tệp PDF vào một tài liệu. Mặc dù bạn cũng có thể sử dụng pdffilewriter để thực hiện điều này, nhưng việc hợp nhất các trang mà không cần chỉnh sửa chúng trước tiên giúp sử dụng pdffilemerger đơn giản hơn.

Mã mẫu sử dụng phương thức append của PDFFILEMERGER để thêm nhiều tệp PDF và ghi chúng vào một tệp có tên là hợp nhất được hiển thị bên dưới.

# this function returns a file bytes in a list
filename1 = 'doc1.pdf'
def byte_target(filename1):
    f = open(filename1, "rb")
    try:
        b = f.read(1)
        tlist = []
        while True:
            # get file bytes
            t = ' '.join(format(ord(x), 'b') for x in b)
            b = f.read(1)
            if not b:
                break
            #add this byte to the list
            tlist.append(t)

            #print b        

    finally:
        f.close()
    return tlist
2

Nếu bạn muốn thêm một số trang nhất định từ tệp gốc của mình vào tệp PDF mới, bạn có thể sử dụng đối số trang của hàm nối để cung cấp một bộ chứa các số trang bắt đầu và kết thúc.

Nếu bạn muốn chỉ định nơi bạn muốn các trang của mình đi, bạn phải sử dụng chức năng hợp nhất vì hàm nối sẽ luôn thêm các trang mới ở cuối. Nó cho phép bạn chọn vị trí của trang mà bạn muốn chèn các trang mới.

Mã hóa tệp PDF

Tệp PDF có thể được mã hóa bằng mật khẩu hoặc chứng chỉ kỹ thuật số. Phương thức mã hóa được người dùng chọn khi tệp được tạo. Một tệp PDF được bảo vệ bằng mật khẩu có thể được mở, chỉnh sửa và in bởi bất kỳ ai biết mật khẩu. Nó không thể được mở hoặc chỉnh sửa bởi một người không biết mật khẩu. Một tài liệu có chữ ký kỹ thuật số cũng được bảo vệ khỏi chỉnh sửa trái phép. Tuy nhiên, nó cũng bao gồm một chữ ký điện tử có thể được xác minh bởi bất kỳ ai có quyền truy cập vào tài liệu gốc hoặc chữ ký số của nó.

# this function returns a file bytes in a list
filename1 = 'doc1.pdf'
def byte_target(filename1):
    f = open(filename1, "rb")
    try:
        b = f.read(1)
        tlist = []
        while True:
            # get file bytes
            t = ' '.join(format(ord(x), 'b') for x in b)
            b = f.read(1)
            if not b:
                break
            #add this byte to the list
            tlist.append(t)

            #print b        

    finally:
        f.close()
    return tlist
3

Bạn có thể mật khẩu bảo vệ tệp PDF bằng mã trên giống như sau:

Hướng dẫn how do i read a pdf byte in python? - làm cách nào để đọc một byte pdf trong python?

Làm thế nào để thêm hình mờ vào tệp pdf?

Hình mờ là một văn bản hoặc lớp phủ đồ họa trên mặt trước tài liệu của bạn. Nó có thể giúp bạn bảo vệ công việc của bạn khỏi việc sử dụng hoặc sử dụng sai trái phép và hiển thị những hồ sơ nào đã được sửa đổi hoặc in. Bạn có thể thêm văn bản và đồ họa để tạo ra hình mờ tùy chỉnh cho tài liệu của bạn.

Tại đây, một đoạn mã về cách thêm hình mờ vào tệp PDF:

# this function returns a file bytes in a list
filename1 = 'doc1.pdf'
def byte_target(filename1):
    f = open(filename1, "rb")
    try:
        b = f.read(1)
        tlist = []
        while True:
            # get file bytes
            t = ' '.join(format(ord(x), 'b') for x in b)
            b = f.read(1)
            if not b:
                break
            #add this byte to the list
            tlist.append(t)

            #print b        

    finally:
        f.close()
    return tlist
4

Ba đối số phải được xem xét cẩn thận trong khi sử dụng chức năng mã hóa.

  • Mật khẩu người dùng PWD được sử dụng để giới hạn việc mở và đọc tệp;
  • Mật khẩu người dùng là một bước dưới mức PWD, STR. Tệp có thể được mở mà không có bất kỳ giới hạn nào khi nó được đưa ra. Chủ sở hữu mặc định PWD và PWD người dùng là như nhau nếu không được cung cấp;
  • Sử dụng tùy chọn Boolean 128bit để chỉ định có sử dụng 128 bit cho mật khẩu hay không. Sai chỉ ra một mật khẩu 40 bit nên được sử dụng; Đúng là mặc định;

Bạn muốn tự động hóa các tác vụ thủ công lặp đi lặp lại? Tiết kiệm thời gian, nỗ lực và tiền bạc trong khi nâng cao hiệu quả!


Làm việc với các tệp PDF bằng cách sử dụng nanonets

Hướng dẫn how do i read a pdf byte in python? - làm cách nào để đọc một byte pdf trong python?
Nanonets trích xuất văn bản từ hóa đơn PDF

Nanonets có API OCR có thể được sử dụng để trích xuất văn bản từ các tài liệu PDF. Nó cũng có thể xác định các tài liệu và ký tự viết tay từ hơn 200 ngôn ngữ. Hơn nữa, bạn có thể tự động hóa tất cả các khía cạnh của trích xuất dữ liệu bằng cách sử dụng quy trình công việc tự động. Nanonets GUI cho phép bạn bắt đầu trích xuất dữ liệu từ các tệp PDF khi đang di chuyển với các mẫu OCR được đào tạo trước. Bạn cũng có thể tạo mô hình tùy chỉnh của bạn trong 15 phút.

Nanonets là một phần mềm OCR trực tuyến và do đó, bạn có thể sử dụng tất cả các tính năng từ trình duyệt của mình mà không cần tải xuống bất cứ thứ gì.

Bạn có thể bắt đầu sử dụng Nanonets bằng cách sử dụng giao diện GUI: https://app.nanonets.com/https://app.nanonets.com/

Hoặc, bạn có thể truy cập API Nanonets OCR với các bước sau

Bước 1: Cài đặt các phụ thuộc bằng thư viện GitHub

# this function returns a file bytes in a list
filename1 = 'doc1.pdf'
def byte_target(filename1):
    f = open(filename1, "rb")
    try:
        b = f.read(1)
        tlist = []
        while True:
            # get file bytes
            t = ' '.join(format(ord(x), 'b') for x in b)
            b = f.read(1)
            if not b:
                break
            #add this byte to the list
            tlist.append(t)

            #print b        

    finally:
        f.close()
    return tlist
5

Bước 2: Nhận khóa API Nanonets miễn phí của bạn Nhận khóa API miễn phí của bạn từ https://app.nanonets.com/#/keys
Get your free API Key from https://app.nanonets.com/#/keys

Hướng dẫn how do i read a pdf byte in python? - làm cách nào để đọc một byte pdf trong python?

Bước 3: Đặt khóa API làm biến môi trường

# this function returns a file bytes in a list
filename1 = 'doc1.pdf'
def byte_target(filename1):
    f = open(filename1, "rb")
    try:
        b = f.read(1)
        tlist = []
        while True:
            # get file bytes
            t = ' '.join(format(ord(x), 'b') for x in b)
            b = f.read(1)
            if not b:
                break
            #add this byte to the list
            tlist.append(t)

            #print b        

    finally:
        f.close()
    return tlist
6

Bước 4: Tạo một mô hình mới trên giao diện

# this function returns a file bytes in a list
filename1 = 'doc1.pdf'
def byte_target(filename1):
    f = open(filename1, "rb")
    try:
        b = f.read(1)
        tlist = []
        while True:
            # get file bytes
            t = ' '.join(format(ord(x), 'b') for x in b)
            b = f.read(1)
            if not b:
                break
            #add this byte to the list
            tlist.append(t)

            #print b        

    finally:
        f.close()
    return tlist
7

Lưu ý: Điều này tạo ra một model_id mà bạn cần cho bước tiếp theo This generates a MODEL_ID that you need for the next step

Bước 5: Thêm ID mô hình làm biến môi trường

# this function returns a file bytes in a list
filename1 = 'doc1.pdf'
def byte_target(filename1):
    f = open(filename1, "rb")
    try:
        b = f.read(1)
        tlist = []
        while True:
            # get file bytes
            t = ' '.join(format(ord(x), 'b') for x in b)
            b = f.read(1)
            if not b:
                break
            #add this byte to the list
            tlist.append(t)

            #print b        

    finally:
        f.close()
    return tlist
8

Lưu ý: Bạn sẽ nhận được của bạn_model_id từ bước trước you will get YOUR_MODEL_ID from the previous step

Bước 6: Tải dữ liệu đào tạo Dữ liệu đào tạo được tìm thấy trong

    with open(filename1, "rb") as f:
        b = f.read(1)
        # ...
5 (tệp hình ảnh) và
    with open(filename1, "rb") as f:
        b = f.read(1)
        # ...
6 (chú thích cho các tệp hình ảnh)

The training data is found in
    with open(filename1, "rb") as f:
        b = f.read(1)
        # ...
5 (image files) and
    with open(filename1, "rb") as f:
        b = f.read(1)
        # ...
6 (annotations for the image files)

# this function returns a file bytes in a list
filename1 = 'doc1.pdf'
def byte_target(filename1):
    f = open(filename1, "rb")
    try:
        b = f.read(1)
        tlist = []
        while True:
            # get file bytes
            t = ' '.join(format(ord(x), 'b') for x in b)
            b = f.read(1)
            if not b:
                break
            #add this byte to the list
            tlist.append(t)

            #print b        

    finally:
        f.close()
    return tlist
9

Bước 7: Đào tạo mô hình Một khi hình ảnh đã được tải lên, bắt đầu đào tạo mô hình
Once the Images have been uploaded, begin training the Model

    with open(filename1, "rb") as f:
        b = f.read(1)
        # ...
0

Bước 8: Nhận trạng thái mô hình Mô hình mất ~ 2 giờ để đào tạo. Bạn sẽ được thông báo qua email sau khi mô hình được đào tạo. Bạn có thể kiểm tra trạng thái mô hình với
The model takes ~2 hours to train. You'll be notified via email once the model is trained. You can check model state with the following

    with open(filename1, "rb") as f:
        b = f.read(1)
        # ...
1

Bước 9: Đưa ra dự đoán sau khi mô hình được đào tạo. Bạn có thể đưa ra dự đoán bằng mô hình
Once the model is trained. You can make predictions using the model

    with open(filename1, "rb") as f:
        b = f.read(1)
        # ...
2

Nanonets - Động cơ AI PDF OCR tốt nhất

Nanonets là một phần mềm PDF OCR dựa trên AI, trích xuất văn bản từ PDF, các tài liệu được quét viết tay hoặc hình ảnh với độ chính xác 95%. Nanonets GUI là một nền tảng không có mã cho phép bạn tự động chiết xuất dữ liệu bằng các quy trình công việc dựa trên quy tắc. & nbsp;

Xếp hạng Capterra: 4.9

Xếp hạng G2: 4.9

Bắt đầu dùng thử miễn phí

Nhận bản demo sản phẩm

Sự kết luận

PYPDF2 là một trong những cách dễ nhất để chuyển đổi giữa các tệp PDF và nó hoàn toàn mở. Nếu bạn đang vội để đi, tài liệu trực tuyến tuyệt vời sẽ giúp bạn đứng dậy trong vài phút. Nếu bạn có thắc mắc hoặc cần thêm sự giúp đỡ, cộng đồng PYPDF2 thân thiện sẽ sẵn sàng cung cấp hỗ trợ của họ. Cũng như đơn giản để sử dụng, PYPDF2 cực kỳ nhẹ, nó không có sự phụ thuộc nào khác ngoài Python (điều đó có nghĩa là nó sẽ hoạt động trên hầu hết mọi nền tảng có thể tưởng tượng được).

Hơn nữa, PYPDF2 được phân phối theo giấy phép kiểu BSD, vì vậy bạn có thể tự do gói nó với phần mềm của mình nếu bạn muốn. Nói tóm lại, đây là một công cụ tuyệt vời để thao tác với các tệp PDF và chúng tôi khuyên các nhà phát triển Python phải kiểm tra nó.

Câu hỏi thường gặp

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

Python không có hỗ trợ gốc để đọc các tệp PDF, vì vậy đây không phải là điều bạn sẽ có thể làm với một dòng mã duy nhất. Nhưng rất nhiều thư viện của bên thứ ba cho phép Python đọc các tệp PDF và chuyển đổi chúng thành các định dạng khác, chẳng hạn như HTML hoặc văn bản thuần túy.

Một câu hỏi khác được đặt ra ở đây nếu Python đọc PDF, sau đó:

Python cũng có thể đọc các tệp excel?

Có, Python có thể đọc các tệp Excel. Pandas làm cho việc nhập một tệp Excel vào Python đơn giản. Bạn phải sử dụng Read Excel để đạt được mục tiêu này.

Là nguồn mở pypdf2?

PYPDF2 là phần mềm nguồn mở được cấp phép theo LGPL.

Ngoài ra, PYPDF2 có sẵn để tải xuống ở dạng mã nguồn. Nó có thể được cài đặt bằng PIP hoặc tải xuống tệp zip và trích xuất nó vào thư mục đã chọn của bạn.

Thư viện PYPDF2 bao gồm một số công cụ dòng lệnh có thể được sử dụng để chuyển đổi các tệp PDF thành các định dạng khác. Các công cụ này được cài đặt với mô -đun Python khi được cài đặt.

PYPDF2 có an toàn không?

PYPDF2 nhằm mục đích cung cấp giao diện Python thuần túy cho libpdf (thư viện tham chiếu C ++ PDF) thay vì có một mô -đun mở rộng C riêng biệt được liên kết với Python.libpdf (the C++ PDF Reference Library) rather than having a separate C extension module linked to Python.

Mục tiêu chính của PYPDF2 là giúp các nhà phát triển dễ dàng tạo các ứng dụng PDF dễ dàng hơn mà không phải lo lắng về việc cài đặt môi trường phát triển phức tạp hoặc xử lý nhiều phiên bản thư viện bên ngoài.

Có, Excel có thể trích xuất dữ liệu từ PDF.

Excel là một công cụ tuyệt vời để thao tác dữ liệu và dễ sử dụng. Nó cũng rất mạnh mẽ và có thể được sử dụng để xử lý nhiều loại dữ liệu khác nhau.

Ngoài ra, Excel là một lợi thế lớn vì bạn có thể sử dụng nó trên bất kỳ nền tảng nào (Windows, Mac, Linux) và bạn không cần bất kỳ phần mềm đặc biệt nào.

Quá trình trích xuất dữ liệu từ PDF không đơn giản, nhưng chúng tôi sẽ chỉ cho bạn cách thực hiện từng bước.

OCR Python là gì?

OCR Python là một thư viện OCR đầy đủ tính năng được viết bằng Pure Python. Nó kết thúc động cơ OCR nguồn mở Tesseract và cung cấp một API đơn giản cho các nhà phát triển sử dụng. OCR, nhận dạng ký tự quang học, chuyển đổi hình ảnh văn bản được quét thành văn bản kỹ thuật số có thể tìm kiếm.

OCR Python sử dụng đầu ra chất lượng cao của Tesseract làm cơ sở của nó và nó có thể được sử dụng với bất kỳ động cơ OCR nào khác sử dụng các thư viện Leptonica hoặc Harp (như GOCR).

Nếu bạn muốn số hóa các tài liệu bằng OCR, thì thư viện này sẽ giúp bạn nhanh chóng và dễ dàng.

Trích xuất văn bản từ PDF là khó. Có nhiều lý do cho việc này:

Định dạng PDF được thiết kế để đọc bởi con người, không phải máy móc. Định dạng tài liệu phổ biến nhất thế giới có nhiều tính năng gọn gàng giúp mọi người dễ đọc, nhưng đó là một nỗi đau cho máy tính đối phó.

PDF có thể chứa bất kỳ nội dung nào (văn bản, biểu đồ, hình ảnh, v.v.) và chúng có thể được đặt ra theo bất kỳ cách nào bạn muốn. Điều này có nghĩa là không có cách nào để trích xuất văn bản từ tệp PDF - mọi tệp đều có bố cục duy nhất.

Văn bản trong PDF nhất định có thể không được đặt ở nơi bạn mong đợi! Một số tệp PDF có bảng nội dung hoặc chỉ mục chứa tất cả văn bản của tài liệu; Những người khác có chú thích hoặc chú thích cuối cùng; Những người khác có tiêu đề và chân trang lặp lại trong khoảng thời gian đều đặn; Những người khác sử dụng khung hoặc lớp thay vì các trang (điều này rất hiếm).

Văn bản có thể được trích xuất từ ​​các bức ảnh bằng nhận dạng ký tự quang (OCR). Phần mềm OCR là những gì hoàn thành điều này. Chương trình OCR nguồn mở nổi tiếng nhất là động cơ OCR Tesseract.

PYPDF2 không phải là một chương trình OCR.


Nanonets trực tuyến OCR & OCR API có nhiều trường hợp sử dụng thú vị có thể tối ưu hóa hiệu quả kinh doanh của bạn, tiết kiệm chi phí và tăng trưởng. Tìm hiểu cách các trường hợp sử dụng của Nanonets có thể áp dụng cho sản phẩm của bạn.hat could optimize your business performance, save costs and boost growth. Find out how Nanonets' use cases can apply to your product.


Đọc thêm:

Công cụ OCR Ả Rập

Công cụ OCR Trung Quốc

Phần mềm Hindi OCR

Phần mềm OCR Hàn Quốc

Công cụ OCR của Nga

Công cụ OCR Phạn

Phần mềm OCR hàng đầu cho Mac

Làm thế nào để sử dụng Google Drive OCR?

Công cụ OCR Nhật Bản

Phần mềm tự động hóa tài chính

Phần mềm tự động hóa bảo hiểm

Phần mềm tự động hóa hậu cần

Phần mềm tự động hóa chăm sóc sức khỏe

Giải pháp tự động hóa bán lẻ

Nền tảng tự động hóa ngân hàng

Phần mềm tự động hóa tài liệu

Phần mềm tự động hóa kế toán

Phần mềm quản lý tài liệu

Phần mềm quản lý quy trình làm việc

Công cụ BPM

Công cụ trích xuất dữ liệu

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

Đối tượng đầu đọc pdf có chức năng getPage () lấy số trang (chỉ mục biểu mẫu bắt đầu 0) làm đối số và trả về đối tượng trang. Đối tượng trang có chức năng trích xuất () để trích xuất văn bản từ trang PDF. Cuối cùng, chúng tôi đóng đối tượng tệp PDF.

Làm cách nào để đọc pdf trong mảng byte?

Bạn có thể đọc dữ liệu từ tệp PDF bằng phương thức Read () của lớp FileInputStream Phương thức này yêu cầu một mảng byte làm tham số.using the read() method of the FileInputStream class this method requires a byte array as a parameter.

Chúng ta có thể đọc dữ liệu từ PDF trong Python không?

Nó có thể lấy văn bản và siêu dữ liệu từ các tệp PDF cũng như hợp nhất toàn bộ các tệp với nhau.Tabula-Py là một trình bao bọc Python đơn giản của Tabula-Java, có thể đọc bảng của PDF.Bạn có thể đọc các bảng từ PDF và chuyển đổi thành DataFrame của Pandas.Tabula-Py cũng cho phép bạn chuyển đổi tệp PDF thành tệp CSV/TSV/JSON.Tabula-py is a simple Python wrapper of tabula-java, which can read the table of PDF. You can read tables from PDF and convert into pandas' DataFrame. tabula-py also enables you to convert a PDF file into CSV/TSV/JSON file.

Làm thế nào để bạn chuyển đổi một pdf thành một byte trong Python?

Các bước để chuyển đổi PDF thành bytearray qua Python..
Bao gồm không gian tên trong tệp lớp của bạn ..
Tải tệp PDF đầu vào ..
Khởi tạo một mảng byte ..
Khởi tạo đối tượng Filestream ..
Tải nội dung vào mảng byte ..
Quy trình mảng byte theo yêu cầu của bạn ..