Làm cách nào để nhập tệp docx trong python?

Các tài liệu PDF và Word là các tệp nhị phân, khiến chúng phức tạp hơn nhiều so với các tệp văn bản gốc. Ngoài văn bản, chúng còn lưu trữ nhiều thông tin về phông chữ, màu sắc và bố cục. Nếu bạn muốn các chương trình của mình đọc hoặc ghi vào tài liệu PDF hoặc Word, bạn sẽ cần làm nhiều việc hơn là chỉ chuyển tên tệp của chúng tới

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
3

May mắn thay, có các mô-đun Python giúp bạn dễ dàng tương tác với tài liệu PDF và Word. Chương này sẽ bao gồm hai mô-đun như vậy. PyPDF2 và Python-Docx

Tài liệu PDF

PDF là viết tắt của Định dạng Tài liệu Di động và sử dụng định dạng . phần mở rộng tệp pdf . Mặc dù PDF hỗ trợ nhiều tính năng nhưng chương này sẽ tập trung vào hai điều bạn sẽ làm thường xuyên nhất với chúng. đọc nội dung văn bản từ tệp PDF và tạo tệp PDF mới từ tài liệu hiện có.

Mô-đun bạn sẽ sử dụng để làm việc với các tệp PDF là PyPDF2. Để cài đặt nó, hãy chạy

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
4 từ dòng lệnh. Tên mô-đun này phân biệt chữ hoa chữ thường, vì vậy hãy đảm bảo rằng y là chữ thường và mọi thứ khác là chữ hoa. [Xem Phụ lục A để biết chi tiết đầy đủ về cách cài đặt các mô-đun của bên thứ ba. ] Nếu mô-đun được cài đặt đúng cách, việc chạy
   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
5 trong trình bao tương tác sẽ không hiển thị bất kỳ lỗi nào.

Định dạng PDF có vấn đề

Mặc dù các tệp PDF rất tuyệt vời để sắp xếp văn bản theo cách mà mọi người dễ dàng in và đọc, nhưng chúng không đơn giản để phần mềm phân tích cú pháp thành văn bản thuần túy. Do đó, PyPDF2 có thể mắc lỗi khi trích xuất văn bản từ PDF và thậm chí có thể không mở được một số tệp PDF. Thật không may, bạn không thể làm gì nhiều về điều này. PyPDF2 có thể không hoạt động với một số tệp PDF cụ thể của bạn. Điều đó nói rằng, cho đến nay tôi chưa tìm thấy bất kỳ tệp PDF nào không thể mở được bằng PyPDF2

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

PyPDF2 không có cách trích xuất hình ảnh, biểu đồ hoặc phương tiện khác từ tài liệu PDF, nhưng nó có thể trích xuất văn bản và trả về dưới dạng chuỗi Python. Để bắt đầu tìm hiểu cách thức hoạt động của PyPDF2, chúng tôi sẽ sử dụng nó trên tệp PDF mẫu được hiển thị trong

Hình 13-1. Trang PDF mà chúng tôi sẽ trích xuất văn bản từ

Tải xuống tệp PDF này từ http. //Không có tinh bột. com/automatestuff/ và nhập thông tin sau vào trình bao tương tác.

   >>> import PyPDF2
   >>> pdfFileObj = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[pdfFileObj]
❶ >>> pdfReader.numPages
   19
❷ >>> pageObj = pdfReader.getPage[0]
❸ >>> pageObj.extractText[]
   'OOFFFFIICCIIAALL BBOOAARRDD MMIINNUUTTEESS Meeting of March 7, 2015
   \n     The Board of Elementary and Secondary Education shall provide leadership
   and create policies for education that expand opportunities for children,
   empower families and communities, and advance Louisiana in an increasingly
   competitive global market. BOARD of ELEMENTARY and SECONDARY EDUCATION '

Đầu tiên, nhập mô-đun

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
6. Sau đó mở biên bản cuộc họp. pdf ở chế độ đọc nhị phân và lưu trữ nó trong
   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
7. Để lấy một đối tượng
   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
8 đại diện cho tệp PDF này, hãy gọi
   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
9 và chuyển nó cho
   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
7. Lưu trữ đối tượng
   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
8 này trong
   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❶ >>> page = pdfReader.getPage[0]
❷ >>> page.rotateClockwise[90]
   {'/Contents': [IndirectObject[961, 0], IndirectObject[962, 0],
   --snip--
   }
   >>> pdfWriter = PyPDF2.PdfFileWriter[]
   >>> pdfWriter.addPage[page]
❸ >>> resultPdfFile = open['rotatedPage.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> resultPdfFile.close[]
   >>> minutesFile.close[]
2.

Tổng số trang trong tài liệu được lưu trữ trong thuộc tính

   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❶ >>> page = pdfReader.getPage[0]
❷ >>> page.rotateClockwise[90]
   {'/Contents': [IndirectObject[961, 0], IndirectObject[962, 0],
   --snip--
   }
   >>> pdfWriter = PyPDF2.PdfFileWriter[]
   >>> pdfWriter.addPage[page]
❸ >>> resultPdfFile = open['rotatedPage.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> resultPdfFile.close[]
   >>> minutesFile.close[]
3 của đối tượng
   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
8 ❶. PDF ví dụ có 19 trang, nhưng hãy chỉ trích xuất văn bản từ trang đầu tiên

Để trích xuất văn bản từ một trang, bạn cần lấy một đối tượng

   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❶ >>> page = pdfReader.getPage[0]
❷ >>> page.rotateClockwise[90]
   {'/Contents': [IndirectObject[961, 0], IndirectObject[962, 0],
   --snip--
   }
   >>> pdfWriter = PyPDF2.PdfFileWriter[]
   >>> pdfWriter.addPage[page]
❸ >>> resultPdfFile = open['rotatedPage.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> resultPdfFile.close[]
   >>> minutesFile.close[]
5, đại diện cho một trang duy nhất của tệp PDF, từ một đối tượng
   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
8. Bạn có thể lấy một đối tượng
   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❶ >>> page = pdfReader.getPage[0]
❷ >>> page.rotateClockwise[90]
   {'/Contents': [IndirectObject[961, 0], IndirectObject[962, 0],
   --snip--
   }
   >>> pdfWriter = PyPDF2.PdfFileWriter[]
   >>> pdfWriter.addPage[page]
❸ >>> resultPdfFile = open['rotatedPage.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> resultPdfFile.close[]
   >>> minutesFile.close[]
5 bằng cách gọi phương thức ❷ của
   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❶ >>> page = pdfReader.getPage[0]
❷ >>> page.rotateClockwise[90]
   {'/Contents': [IndirectObject[961, 0], IndirectObject[962, 0],
   --snip--
   }
   >>> pdfWriter = PyPDF2.PdfFileWriter[]
   >>> pdfWriter.addPage[page]
❸ >>> resultPdfFile = open['rotatedPage.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> resultPdfFile.close[]
   >>> minutesFile.close[]
8 trên một đối tượng
   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
8 và truyền cho nó số trang của trang mà bạn quan tâm—trong trường hợp của chúng tôi, 0

PyPDF2 sử dụng chỉ mục dựa trên số không để tải trang. Trang đầu tiên là trang 0, trang thứ hai là , v.v. Điều này luôn xảy ra, ngay cả khi các trang được đánh số khác nhau trong tài liệu. Ví dụ: giả sử tệp PDF của bạn là đoạn trích dài ba trang từ một báo cáo dài hơn và các trang của nó được đánh số 42, 43 và 44. Để có được trang đầu tiên của tài liệu này, bạn sẽ muốn gọi cho

   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
❷ >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❷ >>> minutesFirstPage = pdfReader.getPage[0]
❸ >>> pdfWatermarkReader = PyPDF2.PdfFileReader[open['watermark.pdf', 'rb']]
❹ >>> minutesFirstPage.mergePage[pdfWatermarkReader.getPage[0]]
❺ >>> pdfWriter = PyPDF2.PdfFileWriter[]
❻ >>> pdfWriter.addPage[minutesFirstPage]

❼ >>> for pageNum in range[1, pdfReader.numPages]:
           pageObj = pdfReader.getPage[pageNum]
           pdfWriter.addPage[pageObj]
   >>> resultPdfFile = open['watermarkedCover.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> minutesFile.close[]
   >>> resultPdfFile.close[]
0, không phải
   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
❷ >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❷ >>> minutesFirstPage = pdfReader.getPage[0]
❸ >>> pdfWatermarkReader = PyPDF2.PdfFileReader[open['watermark.pdf', 'rb']]
❹ >>> minutesFirstPage.mergePage[pdfWatermarkReader.getPage[0]]
❺ >>> pdfWriter = PyPDF2.PdfFileWriter[]
❻ >>> pdfWriter.addPage[minutesFirstPage]

❼ >>> for pageNum in range[1, pdfReader.numPages]:
           pageObj = pdfReader.getPage[pageNum]
           pdfWriter.addPage[pageObj]
   >>> resultPdfFile = open['watermarkedCover.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> minutesFile.close[]
   >>> resultPdfFile.close[]
1 hoặc
   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
❷ >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❷ >>> minutesFirstPage = pdfReader.getPage[0]
❸ >>> pdfWatermarkReader = PyPDF2.PdfFileReader[open['watermark.pdf', 'rb']]
❹ >>> minutesFirstPage.mergePage[pdfWatermarkReader.getPage[0]]
❺ >>> pdfWriter = PyPDF2.PdfFileWriter[]
❻ >>> pdfWriter.addPage[minutesFirstPage]

❼ >>> for pageNum in range[1, pdfReader.numPages]:
           pageObj = pdfReader.getPage[pageNum]
           pdfWriter.addPage[pageObj]
   >>> resultPdfFile = open['watermarkedCover.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> minutesFile.close[]
   >>> resultPdfFile.close[]
2.

Sau khi bạn có đối tượng

   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❶ >>> page = pdfReader.getPage[0]
❷ >>> page.rotateClockwise[90]
   {'/Contents': [IndirectObject[961, 0], IndirectObject[962, 0],
   --snip--
   }
   >>> pdfWriter = PyPDF2.PdfFileWriter[]
   >>> pdfWriter.addPage[page]
❸ >>> resultPdfFile = open['rotatedPage.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> resultPdfFile.close[]
   >>> minutesFile.close[]
5, hãy gọi phương thức
   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
❷ >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❷ >>> minutesFirstPage = pdfReader.getPage[0]
❸ >>> pdfWatermarkReader = PyPDF2.PdfFileReader[open['watermark.pdf', 'rb']]
❹ >>> minutesFirstPage.mergePage[pdfWatermarkReader.getPage[0]]
❺ >>> pdfWriter = PyPDF2.PdfFileWriter[]
❻ >>> pdfWriter.addPage[minutesFirstPage]

❼ >>> for pageNum in range[1, pdfReader.numPages]:
           pageObj = pdfReader.getPage[pageNum]
           pdfWriter.addPage[pageObj]
   >>> resultPdfFile = open['watermarkedCover.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> minutesFile.close[]
   >>> resultPdfFile.close[]
4 của nó để trả về một chuỗi văn bản của trang ❸. Việc trích xuất văn bản không hoàn hảo. Văn bản Charles E. “Chas” Roemer, President từ PDF không có trong chuỗi do
   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
❷ >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❷ >>> minutesFirstPage = pdfReader.getPage[0]
❸ >>> pdfWatermarkReader = PyPDF2.PdfFileReader[open['watermark.pdf', 'rb']]
❹ >>> minutesFirstPage.mergePage[pdfWatermarkReader.getPage[0]]
❺ >>> pdfWriter = PyPDF2.PdfFileWriter[]
❻ >>> pdfWriter.addPage[minutesFirstPage]

❼ >>> for pageNum in range[1, pdfReader.numPages]:
           pageObj = pdfReader.getPage[pageNum]
           pdfWriter.addPage[pageObj]
   >>> resultPdfFile = open['watermarkedCover.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> minutesFile.close[]
   >>> resultPdfFile.close[]
4 trả về và khoảng cách đôi khi bị lệch. Tuy nhiên, nội dung văn bản PDF gần đúng này có thể đủ tốt cho chương trình của bạn.

Giải mã PDF

Một số tài liệu PDF có tính năng mã hóa giúp chúng không bị đọc cho đến khi người mở tài liệu cung cấp mật khẩu. Nhập nội dung sau vào trình bao tương tác với tệp PDF bạn đã tải xuống, tệp này đã được mã hóa bằng mật khẩu rosebud .

   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]

Tất cả các đối tượng

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
8 đều có thuộc tính
   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
❷ >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❷ >>> minutesFirstPage = pdfReader.getPage[0]
❸ >>> pdfWatermarkReader = PyPDF2.PdfFileReader[open['watermark.pdf', 'rb']]
❹ >>> minutesFirstPage.mergePage[pdfWatermarkReader.getPage[0]]
❺ >>> pdfWriter = PyPDF2.PdfFileWriter[]
❻ >>> pdfWriter.addPage[minutesFirstPage]

❼ >>> for pageNum in range[1, pdfReader.numPages]:
           pageObj = pdfReader.getPage[pageNum]
           pdfWriter.addPage[pageObj]
   >>> resultPdfFile = open['watermarkedCover.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> minutesFile.close[]
   >>> resultPdfFile.close[]
7 là
   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
❷ >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❷ >>> minutesFirstPage = pdfReader.getPage[0]
❸ >>> pdfWatermarkReader = PyPDF2.PdfFileReader[open['watermark.pdf', 'rb']]
❹ >>> minutesFirstPage.mergePage[pdfWatermarkReader.getPage[0]]
❺ >>> pdfWriter = PyPDF2.PdfFileWriter[]
❻ >>> pdfWriter.addPage[minutesFirstPage]

❼ >>> for pageNum in range[1, pdfReader.numPages]:
           pageObj = pdfReader.getPage[pageNum]
           pdfWriter.addPage[pageObj]
   >>> resultPdfFile = open['watermarkedCover.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> minutesFile.close[]
   >>> resultPdfFile.close[]
8 nếu PDF được mã hóa và
   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
❷ >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❷ >>> minutesFirstPage = pdfReader.getPage[0]
❸ >>> pdfWatermarkReader = PyPDF2.PdfFileReader[open['watermark.pdf', 'rb']]
❹ >>> minutesFirstPage.mergePage[pdfWatermarkReader.getPage[0]]
❺ >>> pdfWriter = PyPDF2.PdfFileWriter[]
❻ >>> pdfWriter.addPage[minutesFirstPage]

❼ >>> for pageNum in range[1, pdfReader.numPages]:
           pageObj = pdfReader.getPage[pageNum]
           pdfWriter.addPage[pageObj]
   >>> resultPdfFile = open['watermarkedCover.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> minutesFile.close[]
   >>> resultPdfFile.close[]
9 nếu không phải là ❶. Bất kỳ nỗ lực nào để gọi một chức năng đọc tệp trước khi nó được giải mã bằng mật khẩu chính xác sẽ dẫn đến lỗi ❷

Để đọc một tệp PDF được mã hóa, hãy gọi hàm

   >>> import PyPDF2
   >>> pdfFile = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[pdfFile]
   >>> pdfWriter = PyPDF2.PdfFileWriter[]
   >>> for pageNum in range[pdfReader.numPages]:
           pdfWriter.addPage[pdfReader.getPage[pageNum]]

❶ >>> pdfWriter.encrypt['swordfish']
   >>> resultPdf = open['encryptedminutes.pdf', 'wb']
   >>> pdfWriter.write[resultPdf]
   >>> resultPdf.close[]
0 và chuyển mật khẩu dưới dạng chuỗi ❸. Sau khi bạn gọi
   >>> import PyPDF2
   >>> pdfFile = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[pdfFile]
   >>> pdfWriter = PyPDF2.PdfFileWriter[]
   >>> for pageNum in range[pdfReader.numPages]:
           pdfWriter.addPage[pdfReader.getPage[pageNum]]

❶ >>> pdfWriter.encrypt['swordfish']
   >>> resultPdf = open['encryptedminutes.pdf', 'wb']
   >>> pdfWriter.write[resultPdf]
   >>> resultPdf.close[]
0 bằng mật khẩu chính xác, bạn sẽ thấy rằng việc gọi
   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❶ >>> page = pdfReader.getPage[0]
❷ >>> page.rotateClockwise[90]
   {'/Contents': [IndirectObject[961, 0], IndirectObject[962, 0],
   --snip--
   }
   >>> pdfWriter = PyPDF2.PdfFileWriter[]
   >>> pdfWriter.addPage[page]
❸ >>> resultPdfFile = open['rotatedPage.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> resultPdfFile.close[]
   >>> minutesFile.close[]
8 không còn gây ra lỗi nữa. Nếu nhập sai mật khẩu, hàm
   >>> import PyPDF2
   >>> pdfFile = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[pdfFile]
   >>> pdfWriter = PyPDF2.PdfFileWriter[]
   >>> for pageNum in range[pdfReader.numPages]:
           pdfWriter.addPage[pdfReader.getPage[pageNum]]

❶ >>> pdfWriter.encrypt['swordfish']
   >>> resultPdf = open['encryptedminutes.pdf', 'wb']
   >>> pdfWriter.write[resultPdf]
   >>> resultPdf.close[]
0 sẽ trả về
   >>> import PyPDF2
   >>> pdfFile = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[pdfFile]
   >>> pdfWriter = PyPDF2.PdfFileWriter[]
   >>> for pageNum in range[pdfReader.numPages]:
           pdfWriter.addPage[pdfReader.getPage[pageNum]]

❶ >>> pdfWriter.encrypt['swordfish']
   >>> resultPdf = open['encryptedminutes.pdf', 'wb']
   >>> pdfWriter.write[resultPdf]
   >>> resultPdf.close[]
4 và hàm
   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❶ >>> page = pdfReader.getPage[0]
❷ >>> page.rotateClockwise[90]
   {'/Contents': [IndirectObject[961, 0], IndirectObject[962, 0],
   --snip--
   }
   >>> pdfWriter = PyPDF2.PdfFileWriter[]
   >>> pdfWriter.addPage[page]
❸ >>> resultPdfFile = open['rotatedPage.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> resultPdfFile.close[]
   >>> minutesFile.close[]
8 sẽ tiếp tục bị lỗi. Lưu ý rằng phương thức
   >>> import PyPDF2
   >>> pdfFile = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[pdfFile]
   >>> pdfWriter = PyPDF2.PdfFileWriter[]
   >>> for pageNum in range[pdfReader.numPages]:
           pdfWriter.addPage[pdfReader.getPage[pageNum]]

❶ >>> pdfWriter.encrypt['swordfish']
   >>> resultPdf = open['encryptedminutes.pdf', 'wb']
   >>> pdfWriter.write[resultPdf]
   >>> resultPdf.close[]
0 chỉ giải mã đối tượng
   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
8, không phải tệp PDF thực. Sau khi chương trình của bạn kết thúc, tệp trên ổ cứng của bạn vẫn được mã hóa. Chương trình của bạn sẽ phải gọi lại
   >>> import PyPDF2
   >>> pdfFile = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[pdfFile]
   >>> pdfWriter = PyPDF2.PdfFileWriter[]
   >>> for pageNum in range[pdfReader.numPages]:
           pdfWriter.addPage[pdfReader.getPage[pageNum]]

❶ >>> pdfWriter.encrypt['swordfish']
   >>> resultPdf = open['encryptedminutes.pdf', 'wb']
   >>> pdfWriter.write[resultPdf]
   >>> resultPdf.close[]
0 trong lần chạy tiếp theo

Tạo tệp PDF

Bản sao của PyPDF2 đối với các đối tượng

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
8 là các đối tượng
   #! python3
   # combinePdfs.py - Combines all the PDFs in the current working directory into
   # into a single PDF.

❶ import PyPDF2, os

   # Get all the PDF filenames.
   pdfFiles = []
   for filename in os.listdir['.']:
       if filename.endswith['.pdf']:
❷         pdfFiles.append[filename]
❸ pdfFiles.sort[key=str.lower]

❹ pdfWriter = PyPDF2.PdfFileWriter[]

   # TODO: Loop through all the PDF files.

   # TODO: Loop through all the pages [except the first] and add them.

   # TODO: Save the resulting PDF to a file.
0, có thể tạo các tệp PDF mới. Nhưng PyPDF2 không thể viết văn bản tùy ý thành PDF như Python có thể làm với các tệp văn bản gốc. Thay vào đó, khả năng viết PDF của PyPDF2 bị giới hạn ở việc sao chép các trang từ các tệp PDF khác, xoay trang, chồng trang và mã hóa tệp

PyPDF2 không cho phép bạn chỉnh sửa trực tiếp PDF. Thay vào đó, bạn phải tạo một tệp PDF mới rồi sao chép nội dung từ một tài liệu hiện có. Các ví dụ trong phần này sẽ tuân theo cách tiếp cận chung này

  1. Mở một hoặc nhiều tệp PDF hiện có [các tệp PDF nguồn] thành các đối tượng

       >>> import PyPDF2
       >>> pdf1File = open['meetingminutes.pdf', 'rb']
       >>> pdf2File = open['meetingminutes2.pdf', 'rb']
    ❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
    ❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
    ❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]
    
       >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]
    
       >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]
    
    ❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
       >>> pdfWriter.write[pdfOutputFile]
       >>> pdfOutputFile.close[]
       >>> pdf1File.close[]
       >>> pdf2File.close[]
    8

  2. Tạo một đối tượng

       #! python3
       # combinePdfs.py - Combines all the PDFs in the current working directory into
       # into a single PDF.
    
    ❶ import PyPDF2, os
    
       # Get all the PDF filenames.
       pdfFiles = []
       for filename in os.listdir['.']:
           if filename.endswith['.pdf']:
    ❷         pdfFiles.append[filename]
    ❸ pdfFiles.sort[key=str.lower]
    
    ❹ pdfWriter = PyPDF2.PdfFileWriter[]
    
       # TODO: Loop through all the PDF files.
    
       # TODO: Loop through all the pages [except the first] and add them.
    
       # TODO: Save the resulting PDF to a file.
    0 mới

  3. Sao chép các trang từ đối tượng

       >>> import PyPDF2
       >>> pdf1File = open['meetingminutes.pdf', 'rb']
       >>> pdf2File = open['meetingminutes2.pdf', 'rb']
    ❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
    ❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
    ❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]
    
       >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]
    
       >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]
    
    ❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
       >>> pdfWriter.write[pdfOutputFile]
       >>> pdfOutputFile.close[]
       >>> pdf1File.close[]
       >>> pdf2File.close[]
    8 vào đối tượng
       #! python3
       # combinePdfs.py - Combines all the PDFs in the current working directory into
       # into a single PDF.
    
    ❶ import PyPDF2, os
    
       # Get all the PDF filenames.
       pdfFiles = []
       for filename in os.listdir['.']:
           if filename.endswith['.pdf']:
    ❷         pdfFiles.append[filename]
    ❸ pdfFiles.sort[key=str.lower]
    
    ❹ pdfWriter = PyPDF2.PdfFileWriter[]
    
       # TODO: Loop through all the PDF files.
    
       # TODO: Loop through all the pages [except the first] and add them.
    
       # TODO: Save the resulting PDF to a file.
    0

  4. Cuối cùng, sử dụng đối tượng

       #! python3
       # combinePdfs.py - Combines all the PDFs in the current working directory into
       # into a single PDF.
    
    ❶ import PyPDF2, os
    
       # Get all the PDF filenames.
       pdfFiles = []
       for filename in os.listdir['.']:
           if filename.endswith['.pdf']:
    ❷         pdfFiles.append[filename]
    ❸ pdfFiles.sort[key=str.lower]
    
    ❹ pdfWriter = PyPDF2.PdfFileWriter[]
    
       # TODO: Loop through all the PDF files.
    
       # TODO: Loop through all the pages [except the first] and add them.
    
       # TODO: Save the resulting PDF to a file.
    0 để viết PDF đầu ra

Tạo một đối tượng

   #! python3
   # combinePdfs.py - Combines all the PDFs in the current working directory into
   # into a single PDF.

❶ import PyPDF2, os

   # Get all the PDF filenames.
   pdfFiles = []
   for filename in os.listdir['.']:
       if filename.endswith['.pdf']:
❷         pdfFiles.append[filename]
❸ pdfFiles.sort[key=str.lower]

❹ pdfWriter = PyPDF2.PdfFileWriter[]

   # TODO: Loop through all the PDF files.

   # TODO: Loop through all the pages [except the first] and add them.

   # TODO: Save the resulting PDF to a file.
0 chỉ tạo ra một giá trị đại diện cho một tài liệu PDF trong Python. Nó không tạo tệp PDF thực tế. Để làm được điều đó, bạn phải gọi phương thức
   #! python3
   # combinePdfs.py - Combines all the PDFs in the current working directory into
   # into a single PDF.

❶ import PyPDF2, os

   # Get all the PDF filenames.
   pdfFiles = []
   for filename in os.listdir['.']:
       if filename.endswith['.pdf']:
❷         pdfFiles.append[filename]
❸ pdfFiles.sort[key=str.lower]

❹ pdfWriter = PyPDF2.PdfFileWriter[]

   # TODO: Loop through all the PDF files.

   # TODO: Loop through all the pages [except the first] and add them.

   # TODO: Save the resulting PDF to a file.
7 của PdfFileWriter

Phương thức

   #! python3
   # combinePdfs.py - Combines all the PDFs in the current working directory into
   # into a single PDF.

❶ import PyPDF2, os

   # Get all the PDF filenames.
   pdfFiles = []
   for filename in os.listdir['.']:
       if filename.endswith['.pdf']:
❷         pdfFiles.append[filename]
❸ pdfFiles.sort[key=str.lower]

❹ pdfWriter = PyPDF2.PdfFileWriter[]

   # TODO: Loop through all the PDF files.

   # TODO: Loop through all the pages [except the first] and add them.

   # TODO: Save the resulting PDF to a file.
7 lấy một đối tượng
   #! python3
   # combinePdfs.py - Combines all the PDFs in the current working directory into
   # into a single PDF.

❶ import PyPDF2, os

   # Get all the PDF filenames.
   pdfFiles = []
   for filename in os.listdir['.']:
       if filename.endswith['.pdf']:
❷         pdfFiles.append[filename]
❸ pdfFiles.sort[key=str.lower]

❹ pdfWriter = PyPDF2.PdfFileWriter[]

   # TODO: Loop through all the PDF files.

   # TODO: Loop through all the pages [except the first] and add them.

   # TODO: Save the resulting PDF to a file.
9 thông thường đã được mở ở chế độ ghi-nhị phân . Bạn có thể lấy một đối tượng
   #! python3
   # combinePdfs.py - Combines all the PDFs in the current working directory into
   # into a single PDF.

❶ import PyPDF2, os

   # Get all the PDF filenames.
   pdfFiles = []
   for filename in os.listdir['.']:
       if filename.endswith['.pdf']:
❷         pdfFiles.append[filename]
❸ pdfFiles.sort[key=str.lower]

❹ pdfWriter = PyPDF2.PdfFileWriter[]

   # TODO: Loop through all the PDF files.

   # TODO: Loop through all the pages [except the first] and add them.

   # TODO: Save the resulting PDF to a file.
9 như vậy bằng cách gọi hàm
   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
3 của Python với hai đối số. chuỗi bạn muốn đặt tên tệp PDF và _______ 51 _______2 để cho biết tệp sẽ được mở ở chế độ ghi nhị phân.

Nếu điều này nghe có vẻ hơi khó hiểu, đừng lo—bạn sẽ thấy điều này hoạt động như thế nào trong các ví dụ mã sau

Sao chép trang

Bạn có thể sử dụng PyPDF2 để sao chép các trang từ tài liệu PDF này sang tài liệu PDF khác. Điều này cho phép bạn kết hợp nhiều tệp PDF, cắt các trang không mong muốn hoặc sắp xếp lại các trang

Tải xuống biên bản cuộc họp. pdfphút họp2. pdf từ http. //Không có tinh bột. com/automatestuff/ và đặt các tệp PDF vào thư mục làm việc hiện tại. Nhập thông tin sau vào vỏ tương tác.

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]

Mở cả hai tệp PDF ở chế độ đọc nhị phân và lưu trữ hai đối tượng kết quả là

   #! python3
   # combinePdfs.py - Combines all the PDFs in the current working directory into
   # into a single PDF.

❶ import PyPDF2, os

   # Get all the PDF filenames.
   pdfFiles = []
   for filename in os.listdir['.']:
       if filename.endswith['.pdf']:
❷         pdfFiles.append[filename]
❸ pdfFiles.sort[key=str.lower]

❹ pdfWriter = PyPDF2.PdfFileWriter[]

   # TODO: Loop through all the PDF files.

   # TODO: Loop through all the pages [except the first] and add them.

   # TODO: Save the resulting PDF to a file.
9 trong
#! python3
# combinePdfs.py - Combines all the PDFs in the current working directory into
# a single PDF.

import PyPDF2, os

# Get all the PDF filenames.
pdfFiles = []
--snip--
# Loop through all the PDF files.
for filename in pdfFiles:
    pdfFileObj = open[filename, 'rb']
    pdfReader = PyPDF2.PdfFileReader[pdfFileObj]
    # TODO: Loop through all the pages [except the first] and add them.

# TODO: Save the resulting PDF to a file.
4 và
#! python3
# combinePdfs.py - Combines all the PDFs in the current working directory into
# a single PDF.

import PyPDF2, os

# Get all the PDF filenames.
pdfFiles = []
--snip--
# Loop through all the PDF files.
for filename in pdfFiles:
    pdfFileObj = open[filename, 'rb']
    pdfReader = PyPDF2.PdfFileReader[pdfFileObj]
    # TODO: Loop through all the pages [except the first] and add them.

# TODO: Save the resulting PDF to a file.
5. Gọi
   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
9 và vượt qua nó
#! python3
# combinePdfs.py - Combines all the PDFs in the current working directory into
# a single PDF.

import PyPDF2, os

# Get all the PDF filenames.
pdfFiles = []
--snip--
# Loop through all the PDF files.
for filename in pdfFiles:
    pdfFileObj = open[filename, 'rb']
    pdfReader = PyPDF2.PdfFileReader[pdfFileObj]
    # TODO: Loop through all the pages [except the first] and add them.

# TODO: Save the resulting PDF to a file.
4 để nhận một đối tượng
   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
8 trong phút họp. pdf ❶. Gọi nó một lần nữa và vượt qua nó
#! python3
# combinePdfs.py - Combines all the PDFs in the current working directory into
# a single PDF.

import PyPDF2, os

# Get all the PDF filenames.
pdfFiles = []
--snip--
# Loop through all the PDF files.
for filename in pdfFiles:
    pdfFileObj = open[filename, 'rb']
    pdfReader = PyPDF2.PdfFileReader[pdfFileObj]
    # TODO: Loop through all the pages [except the first] and add them.

# TODO: Save the resulting PDF to a file.
5 để lấy một đối tượng
   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
8 cho meetingminutes2. pdf ❷. Sau đó, tạo một đối tượng
   #! python3
   # combinePdfs.py - Combines all the PDFs in the current working directory into
   # into a single PDF.

❶ import PyPDF2, os

   # Get all the PDF filenames.
   pdfFiles = []
   for filename in os.listdir['.']:
       if filename.endswith['.pdf']:
❷         pdfFiles.append[filename]
❸ pdfFiles.sort[key=str.lower]

❹ pdfWriter = PyPDF2.PdfFileWriter[]

   # TODO: Loop through all the PDF files.

   # TODO: Loop through all the pages [except the first] and add them.

   # TODO: Save the resulting PDF to a file.
0 mới, đại diện cho một tài liệu PDF trống ❸.

Tiếp theo, sao chép tất cả các trang từ hai tệp PDF nguồn và thêm chúng vào đối tượng

   #! python3
   # combinePdfs.py - Combines all the PDFs in the current working directory into
   # into a single PDF.

❶ import PyPDF2, os

   # Get all the PDF filenames.
   pdfFiles = []
   for filename in os.listdir['.']:
       if filename.endswith['.pdf']:
❷         pdfFiles.append[filename]
❸ pdfFiles.sort[key=str.lower]

❹ pdfWriter = PyPDF2.PdfFileWriter[]

   # TODO: Loop through all the PDF files.

   # TODO: Loop through all the pages [except the first] and add them.

   # TODO: Save the resulting PDF to a file.
0. Nhận đối tượng
   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❶ >>> page = pdfReader.getPage[0]
❷ >>> page.rotateClockwise[90]
   {'/Contents': [IndirectObject[961, 0], IndirectObject[962, 0],
   --snip--
   }
   >>> pdfWriter = PyPDF2.PdfFileWriter[]
   >>> pdfWriter.addPage[page]
❸ >>> resultPdfFile = open['rotatedPage.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> resultPdfFile.close[]
   >>> minutesFile.close[]
5 bằng cách gọi
   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❶ >>> page = pdfReader.getPage[0]
❷ >>> page.rotateClockwise[90]
   {'/Contents': [IndirectObject[961, 0], IndirectObject[962, 0],
   --snip--
   }
   >>> pdfWriter = PyPDF2.PdfFileWriter[]
   >>> pdfWriter.addPage[page]
❸ >>> resultPdfFile = open['rotatedPage.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> resultPdfFile.close[]
   >>> minutesFile.close[]
8 trên đối tượng
   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
8 ❹. Sau đó chuyển đối tượng
   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❶ >>> page = pdfReader.getPage[0]
❷ >>> page.rotateClockwise[90]
   {'/Contents': [IndirectObject[961, 0], IndirectObject[962, 0],
   --snip--
   }
   >>> pdfWriter = PyPDF2.PdfFileWriter[]
   >>> pdfWriter.addPage[page]
❸ >>> resultPdfFile = open['rotatedPage.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> resultPdfFile.close[]
   >>> minutesFile.close[]
5 đó cho phương thức PdfFileWriter's
   #! python3
   # combinePdfs.py - Combines all the PDFs in the current working directory into
   # a single PDF.

   import PyPDF2, os

   --snip--

   # Loop through all the PDF files.
   for filename in pdfFiles:
   --snip--
       # Loop through all the pages [except the first] and add them.for pageNum in range[1, pdfReader.numPages]:
           pageObj = pdfReader.getPage[pageNum]
           pdfWriter.addPage[pageObj]

   # TODO: Save the resulting PDF to a file.
7 ❺. Các bước này được thực hiện đầu tiên cho
   #! python3
   # combinePdfs.py - Combines all the PDFs in the current working directory into
   # a single PDF.

   import PyPDF2, os

   --snip--

   # Loop through all the PDF files.
   for filename in pdfFiles:
   --snip--
       # Loop through all the pages [except the first] and add them.for pageNum in range[1, pdfReader.numPages]:
           pageObj = pdfReader.getPage[pageNum]
           pdfWriter.addPage[pageObj]

   # TODO: Save the resulting PDF to a file.
8 và sau đó thực hiện lại cho
   #! python3
   # combinePdfs.py - Combines all the PDFs in the current working directory into
   # a single PDF.

   import PyPDF2, os

   --snip--

   # Loop through all the PDF files.
   for filename in pdfFiles:
   --snip--
       # Loop through all the pages [except the first] and add them.for pageNum in range[1, pdfReader.numPages]:
           pageObj = pdfReader.getPage[pageNum]
           pdfWriter.addPage[pageObj]

   # TODO: Save the resulting PDF to a file.
9. Khi bạn sao chép xong các trang, hãy viết một tệp PDF mới có tên combinedminutes. pdf bằng cách truyền một đối tượng
   #! python3
   # combinePdfs.py - Combines all the PDFs in the current working directory into
   # into a single PDF.

❶ import PyPDF2, os

   # Get all the PDF filenames.
   pdfFiles = []
   for filename in os.listdir['.']:
       if filename.endswith['.pdf']:
❷         pdfFiles.append[filename]
❸ pdfFiles.sort[key=str.lower]

❹ pdfWriter = PyPDF2.PdfFileWriter[]

   # TODO: Loop through all the PDF files.

   # TODO: Loop through all the pages [except the first] and add them.

   # TODO: Save the resulting PDF to a file.
9 cho phương thức
   #! python3
   # combinePdfs.py - Combines all the PDFs in the current working directory into
   # into a single PDF.

❶ import PyPDF2, os

   # Get all the PDF filenames.
   pdfFiles = []
   for filename in os.listdir['.']:
       if filename.endswith['.pdf']:
❷         pdfFiles.append[filename]
❸ pdfFiles.sort[key=str.lower]

❹ pdfWriter = PyPDF2.PdfFileWriter[]

   # TODO: Loop through all the PDF files.

   # TODO: Loop through all the pages [except the first] and add them.

   # TODO: Save the resulting PDF to a file.
7 của PdfFileWriter ❻.

Ghi chú

PyPDF2 không thể chèn các trang vào giữa ______39_______0 đối tượng; .

   #! python3
   # combinePdfs.py - Combines all the PDFs in the current working directory into
   # a single PDF.

   import PyPDF2, os

   --snip--

   # Loop through all the PDF files.
   for filename in pdfFiles:
   --snip--
       # Loop through all the pages [except the first] and add them.for pageNum in range[1, pdfReader.numPages]:
           pageObj = pdfReader.getPage[pageNum]
           pdfWriter.addPage[pageObj]

   # TODO: Save the resulting PDF to a file.
7 method will only add pages to the end.

Bạn hiện đã tạo một tệp PDF mới kết hợp các trang từ phút cuộc họp. pdfphút họp2. pdf thành một tài liệu duy nhất. Hãy nhớ rằng đối tượng

   #! python3
   # combinePdfs.py - Combines all the PDFs in the current working directory into
   # into a single PDF.

❶ import PyPDF2, os

   # Get all the PDF filenames.
   pdfFiles = []
   for filename in os.listdir['.']:
       if filename.endswith['.pdf']:
❷         pdfFiles.append[filename]
❸ pdfFiles.sort[key=str.lower]

❹ pdfWriter = PyPDF2.PdfFileWriter[]

   # TODO: Loop through all the PDF files.

   # TODO: Loop through all the pages [except the first] and add them.

   # TODO: Save the resulting PDF to a file.
9 được chuyển đến
   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
9 cần được mở ở chế độ đọc-nhị phân bằng cách chuyển
#! python3
# combinePdfs.py - Combines all the PDFs in the current working directory into
# a single PDF.
import PyPDF2, os

--snip--

# Loop through all the PDF files.
for filename in pdfFiles:
--snip--
    # Loop through all the pages [except the first] and add them.
    for pageNum in range[1, pdfReader.numPages]:
    --snip--

# Save the resulting PDF to a file.
pdfOutput = open['allminutes.pdf', 'wb']
pdfWriter.write[pdfOutput]
pdfOutput.close[]
6 làm đối số thứ hai cho
   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
3. Tương tự như vậy, đối tượng
   #! python3
   # combinePdfs.py - Combines all the PDFs in the current working directory into
   # into a single PDF.

❶ import PyPDF2, os

   # Get all the PDF filenames.
   pdfFiles = []
   for filename in os.listdir['.']:
       if filename.endswith['.pdf']:
❷         pdfFiles.append[filename]
❸ pdfFiles.sort[key=str.lower]

❹ pdfWriter = PyPDF2.PdfFileWriter[]

   # TODO: Loop through all the PDF files.

   # TODO: Loop through all the pages [except the first] and add them.

   # TODO: Save the resulting PDF to a file.
9 được chuyển đến
#! python3
# combinePdfs.py - Combines all the PDFs in the current working directory into
# a single PDF.
import PyPDF2, os

--snip--

# Loop through all the PDF files.
for filename in pdfFiles:
--snip--
    # Loop through all the pages [except the first] and add them.
    for pageNum in range[1, pdfReader.numPages]:
    --snip--

# Save the resulting PDF to a file.
pdfOutput = open['allminutes.pdf', 'wb']
pdfWriter.write[pdfOutput]
pdfOutput.close[]
9 cần được mở ở chế độ ghi nhị phân với
#! python3
# combinePdfs.py - Combines all the PDFs in the current working directory into
# a single PDF.

import PyPDF2, os

# Get all the PDF filenames.
pdfFiles = []
--snip--
# Loop through all the PDF files.
for filename in pdfFiles:
    pdfFileObj = open[filename, 'rb']
    pdfReader = PyPDF2.PdfFileReader[pdfFileObj]
    # TODO: Loop through all the pages [except the first] and add them.

# TODO: Save the resulting PDF to a file.
2.

Xoay trang

Các trang của PDF cũng có thể được xoay theo gia số 90 độ bằng các phương pháp

   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
01 và
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
02. Truyền một trong các số nguyên
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
03,
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
04 hoặc
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
05 cho các phương thức này. Nhập thông tin sau vào trình bao tương tác, với phút họp. pdf trong thư mục làm việc hiện tại.

   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❶ >>> page = pdfReader.getPage[0]
❷ >>> page.rotateClockwise[90]
   {'/Contents': [IndirectObject[961, 0], IndirectObject[962, 0],
   --snip--
   }
   >>> pdfWriter = PyPDF2.PdfFileWriter[]
   >>> pdfWriter.addPage[page]
❸ >>> resultPdfFile = open['rotatedPage.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> resultPdfFile.close[]
   >>> minutesFile.close[]

Ở đây chúng tôi sử dụng

   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
06 để chọn trang đầu tiên của PDF ❶, sau đó chúng tôi gọi
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
07 trên trang đó ❷. Chúng tôi viết một tệp PDF mới với trang đã xoay và lưu dưới dạng rotatedPage. pdf ❸.

PDF thu được sẽ có một trang, được xoay 90 độ theo chiều kim đồng hồ, như trong. Các giá trị trả về từ

   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
01 và
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
02 chứa rất nhiều thông tin mà bạn có thể bỏ qua

Hình 13-2. Trang đã xoay. pdf với trang được xoay 90 độ theo chiều kim đồng hồ

Lớp phủ trang

PyPDF2 cũng có thể phủ nội dung của trang này lên trang khác, rất hữu ích khi thêm logo, dấu thời gian hoặc hình mờ vào trang. Với Python, thật dễ dàng để thêm hình mờ vào nhiều tệp và chỉ vào các trang mà chương trình của bạn chỉ định

Tải xuống hình mờ. pdf từ http. //Không có tinh bột. com/automatestuff/ và đặt tệp PDF vào thư mục làm việc hiện tại cùng với phút họp. pdf . Sau đó nhập thông tin sau vào Shell tương tác.

   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
❷ >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❷ >>> minutesFirstPage = pdfReader.getPage[0]
❸ >>> pdfWatermarkReader = PyPDF2.PdfFileReader[open['watermark.pdf', 'rb']]
❹ >>> minutesFirstPage.mergePage[pdfWatermarkReader.getPage[0]]
❺ >>> pdfWriter = PyPDF2.PdfFileWriter[]
❻ >>> pdfWriter.addPage[minutesFirstPage]

❼ >>> for pageNum in range[1, pdfReader.numPages]:
           pageObj = pdfReader.getPage[pageNum]
           pdfWriter.addPage[pageObj]
   >>> resultPdfFile = open['watermarkedCover.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> minutesFile.close[]
   >>> resultPdfFile.close[]

Ở đây chúng tôi tạo một đối tượng

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
8 của biên bản cuộc họp. pdf ❶. Chúng tôi gọi
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
06 để lấy một đối tượng
   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❶ >>> page = pdfReader.getPage[0]
❷ >>> page.rotateClockwise[90]
   {'/Contents': [IndirectObject[961, 0], IndirectObject[962, 0],
   --snip--
   }
   >>> pdfWriter = PyPDF2.PdfFileWriter[]
   >>> pdfWriter.addPage[page]
❸ >>> resultPdfFile = open['rotatedPage.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> resultPdfFile.close[]
   >>> minutesFile.close[]
5 cho trang đầu tiên và lưu trữ đối tượng này trong
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
13 ❷. Sau đó, chúng tôi tạo một đối tượng
   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
8 cho hình mờ. pdf ❸ và gọi cho
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
15 trên
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
13 ❹. Đối số chúng tôi chuyển đến
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
15 là một đối tượng
   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❶ >>> page = pdfReader.getPage[0]
❷ >>> page.rotateClockwise[90]
   {'/Contents': [IndirectObject[961, 0], IndirectObject[962, 0],
   --snip--
   }
   >>> pdfWriter = PyPDF2.PdfFileWriter[]
   >>> pdfWriter.addPage[page]
❸ >>> resultPdfFile = open['rotatedPage.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> resultPdfFile.close[]
   >>> minutesFile.close[]
5 cho trang đầu tiên của hình mờ. pdf .

Bây giờ chúng ta đã gọi

   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
15 trên
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
13,
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
13 đại diện cho trang đầu tiên được đánh dấu mờ. Chúng tôi tạo một đối tượng
   #! python3
   # combinePdfs.py - Combines all the PDFs in the current working directory into
   # into a single PDF.

❶ import PyPDF2, os

   # Get all the PDF filenames.
   pdfFiles = []
   for filename in os.listdir['.']:
       if filename.endswith['.pdf']:
❷         pdfFiles.append[filename]
❸ pdfFiles.sort[key=str.lower]

❹ pdfWriter = PyPDF2.PdfFileWriter[]

   # TODO: Loop through all the PDF files.

   # TODO: Loop through all the pages [except the first] and add them.

   # TODO: Save the resulting PDF to a file.
0 ❺ và thêm hình mờ trang đầu tiên ❻. Sau đó, chúng tôi duyệt qua phần còn lại của các trang trong phút họp. pdf và thêm chúng vào đối tượng
   #! python3
   # combinePdfs.py - Combines all the PDFs in the current working directory into
   # into a single PDF.

❶ import PyPDF2, os

   # Get all the PDF filenames.
   pdfFiles = []
   for filename in os.listdir['.']:
       if filename.endswith['.pdf']:
❷         pdfFiles.append[filename]
❸ pdfFiles.sort[key=str.lower]

❹ pdfWriter = PyPDF2.PdfFileWriter[]

   # TODO: Loop through all the PDF files.

   # TODO: Loop through all the pages [except the first] and add them.

   # TODO: Save the resulting PDF to a file.
0 ❼. Cuối cùng, chúng tôi mở một tệp PDF mới có tên watermarkedCover. pdf và viết nội dung của PdfFileWriter sang PDF mới.

hiển thị kết quả. Bản PDF mới của chúng tôi, Bìa có hình mờ. pdf , có tất cả nội dung của biên bản cuộc họp. pdf và trang đầu tiên được đánh dấu mờ.

Hình 13-3. PDF gốc [trái], PDF hình mờ [giữa] và PDF được hợp nhất [phải]

Mã hóa tệp PDF

Đối tượng

   #! python3
   # combinePdfs.py - Combines all the PDFs in the current working directory into
   # into a single PDF.

❶ import PyPDF2, os

   # Get all the PDF filenames.
   pdfFiles = []
   for filename in os.listdir['.']:
       if filename.endswith['.pdf']:
❷         pdfFiles.append[filename]
❸ pdfFiles.sort[key=str.lower]

❹ pdfWriter = PyPDF2.PdfFileWriter[]

   # TODO: Loop through all the PDF files.

   # TODO: Loop through all the pages [except the first] and add them.

   # TODO: Save the resulting PDF to a file.
0 cũng có thể thêm mã hóa vào tài liệu PDF. Nhập thông tin sau vào vỏ tương tác

   >>> import PyPDF2
   >>> pdfFile = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[pdfFile]
   >>> pdfWriter = PyPDF2.PdfFileWriter[]
   >>> for pageNum in range[pdfReader.numPages]:
           pdfWriter.addPage[pdfReader.getPage[pageNum]]

❶ >>> pdfWriter.encrypt['swordfish']
   >>> resultPdf = open['encryptedminutes.pdf', 'wb']
   >>> pdfWriter.write[resultPdf]
   >>> resultPdf.close[]

Trước khi gọi phương thức

   #! python3
   # combinePdfs.py - Combines all the PDFs in the current working directory into
   # into a single PDF.

❶ import PyPDF2, os

   # Get all the PDF filenames.
   pdfFiles = []
   for filename in os.listdir['.']:
       if filename.endswith['.pdf']:
❷         pdfFiles.append[filename]
❸ pdfFiles.sort[key=str.lower]

❹ pdfWriter = PyPDF2.PdfFileWriter[]

   # TODO: Loop through all the PDF files.

   # TODO: Loop through all the pages [except the first] and add them.

   # TODO: Save the resulting PDF to a file.
7 để lưu vào tệp, hãy gọi phương thức
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
26 và truyền cho nó một chuỗi mật khẩu ❶. PDF có thể có mật khẩu người dùng [cho phép bạn xem PDF] và mật khẩu chủ sở hữu [allowing you to set permissions for printing, commenting, extracting text, and other features]. The user password and owner password are the first and second arguments to
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
26, respectively. If only one string argument is passed to
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
26, it will be used for both passwords.

Trong ví dụ này, chúng tôi đã sao chép các trang của phút họp. pdf vào đối tượng

   #! python3
   # combinePdfs.py - Combines all the PDFs in the current working directory into
   # into a single PDF.

❶ import PyPDF2, os

   # Get all the PDF filenames.
   pdfFiles = []
   for filename in os.listdir['.']:
       if filename.endswith['.pdf']:
❷         pdfFiles.append[filename]
❸ pdfFiles.sort[key=str.lower]

❹ pdfWriter = PyPDF2.PdfFileWriter[]

   # TODO: Loop through all the PDF files.

   # TODO: Loop through all the pages [except the first] and add them.

   # TODO: Save the resulting PDF to a file.
0. Chúng tôi đã mã hóa PdfFileWriter bằng mật khẩu swordfish , mở một tệp PDF mới có tên mincryptedminutes. pdf và viết nội dung của PdfFileWriter sang PDF mới. Trước khi mọi người có thể xem phút mã hóa. pdf , họ sẽ phải nhập mật khẩu này. Bạn có thể muốn xóa biên bản cuộc họp ban đầu, không được mã hóa. pdf sau khi đảm bảo bản sao của nó được mã hóa chính xác.

Dự án. Kết hợp các trang được chọn từ nhiều tệp PDF

Giả sử bạn có một công việc nhàm chán là hợp nhất hàng chục tài liệu PDF thành một tệp PDF duy nhất. Mỗi người trong số họ có một trang bìa là trang đầu tiên, nhưng bạn không muốn trang bìa đó lặp lại trong kết quả cuối cùng. Mặc dù có rất nhiều chương trình miễn phí để kết hợp các tệp PDF, nhưng nhiều chương trình chỉ đơn giản là hợp nhất toàn bộ tệp lại với nhau. Hãy viết một chương trình Python để tùy chỉnh những trang bạn muốn trong PDF kết hợp

Ở cấp độ cao, đây là những gì chương trình sẽ làm

  • Tìm tất cả các tệp PDF trong thư mục làm việc hiện tại

  • Sắp xếp tên tệp để các tệp PDF được thêm vào theo thứ tự

  • Ghi từng trang, ngoại trừ trang đầu tiên, của mỗi tệp PDF vào tệp đầu ra

    Về mặt triển khai, mã của bạn sẽ cần thực hiện như sau

  • Gọi

       >>> import PyPDF2
       >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
    ❶ >>> pdfReader.isEncrypted
       True
       >>> pdfReader.getPage[0]
    ❷ Traceback [most recent call last]:
         File "", line 1, in 
           pdfReader.getPage[]
         --snip--
         File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
           raise utils.PdfReadError["file has not been decrypted"]
       PyPDF2.utils.PdfReadError: file has not been decrypted
    ❸ >>> pdfReader.decrypt['rosebud']
       1
       >>> pageObj = pdfReader.getPage[0]
    30 để tìm tất cả các tệp trong thư mục làm việc và xóa mọi tệp không phải PDF

  • Gọi phương thức danh sách

       >>> import PyPDF2
       >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
    ❶ >>> pdfReader.isEncrypted
       True
       >>> pdfReader.getPage[0]
    ❷ Traceback [most recent call last]:
         File "", line 1, in 
           pdfReader.getPage[]
         --snip--
         File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
           raise utils.PdfReadError["file has not been decrypted"]
       PyPDF2.utils.PdfReadError: file has not been decrypted
    ❸ >>> pdfReader.decrypt['rosebud']
       1
       >>> pageObj = pdfReader.getPage[0]
    31 của Python để sắp xếp thứ tự tên tệp theo thứ tự bảng chữ cái

  • Tạo một đối tượng

       #! python3
       # combinePdfs.py - Combines all the PDFs in the current working directory into
       # into a single PDF.
    
    ❶ import PyPDF2, os
    
       # Get all the PDF filenames.
       pdfFiles = []
       for filename in os.listdir['.']:
           if filename.endswith['.pdf']:
    ❷         pdfFiles.append[filename]
    ❸ pdfFiles.sort[key=str.lower]
    
    ❹ pdfWriter = PyPDF2.PdfFileWriter[]
    
       # TODO: Loop through all the PDF files.
    
       # TODO: Loop through all the pages [except the first] and add them.
    
       # TODO: Save the resulting PDF to a file.
    0 cho PDF đầu ra

  • Lặp lại từng tệp PDF, tạo một đối tượng

       >>> import PyPDF2
       >>> pdf1File = open['meetingminutes.pdf', 'rb']
       >>> pdf2File = open['meetingminutes2.pdf', 'rb']
    ❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
    ❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
    ❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]
    
       >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]
    
       >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]
    
    ❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
       >>> pdfWriter.write[pdfOutputFile]
       >>> pdfOutputFile.close[]
       >>> pdf1File.close[]
       >>> pdf2File.close[]
    8 cho nó

  • Lặp lại từng trang [trừ trang đầu tiên] trong mỗi tệp PDF

  • Thêm các trang vào PDF đầu ra

  • Ghi PDF đầu ra vào tệp có tên allminutes. pdf .

Đối với dự án này, hãy mở một cửa sổ trình chỉnh sửa tệp mới và lưu dưới dạng combinePdfs. p .

Bước 1. Tìm tất cả các tệp PDF

Đầu tiên, chương trình của bạn cần lấy danh sách tất cả các tệp có phần mở rộng . pdf trong thư mục làm việc hiện tại và sắp xếp chúng. Làm cho mã của bạn trông giống như sau.

   #! python3
   # combinePdfs.py - Combines all the PDFs in the current working directory into
   # into a single PDF.

❶ import PyPDF2, os

   # Get all the PDF filenames.
   pdfFiles = []
   for filename in os.listdir['.']:
       if filename.endswith['.pdf']:
❷         pdfFiles.append[filename]
❸ pdfFiles.sort[key=str.lower]

❹ pdfWriter = PyPDF2.PdfFileWriter[]

   # TODO: Loop through all the PDF files.

   # TODO: Loop through all the pages [except the first] and add them.

   # TODO: Save the resulting PDF to a file.

Sau dòng shebang và nhận xét mô tả về chức năng của chương trình, mã này nhập các mô-đun

   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
34 và
   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
6 ❶. Cuộc gọi
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
36 sẽ trả về danh sách mọi tệp trong thư mục làm việc hiện tại. Đoạn mã lặp lại danh sách này và chỉ thêm những tệp có . pdf phần mở rộng thành
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
37 ❷. Sau đó, danh sách này được sắp xếp theo thứ tự bảng chữ cái với đối số từ khóa
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
38 thành
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
31 ❸.

Một đối tượng

   #! python3
   # combinePdfs.py - Combines all the PDFs in the current working directory into
   # into a single PDF.

❶ import PyPDF2, os

   # Get all the PDF filenames.
   pdfFiles = []
   for filename in os.listdir['.']:
       if filename.endswith['.pdf']:
❷         pdfFiles.append[filename]
❸ pdfFiles.sort[key=str.lower]

❹ pdfWriter = PyPDF2.PdfFileWriter[]

   # TODO: Loop through all the PDF files.

   # TODO: Loop through all the pages [except the first] and add them.

   # TODO: Save the resulting PDF to a file.
0 được tạo để giữ các trang PDF được kết hợp ❹. Cuối cùng, một vài nhận xét phác thảo phần còn lại của chương trình

Bước 2. Mở từng tệp PDF

Bây giờ chương trình phải đọc từng tệp PDF trong

   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
37. Thêm phần sau vào chương trình của bạn

#! python3
# combinePdfs.py - Combines all the PDFs in the current working directory into
# a single PDF.

import PyPDF2, os

# Get all the PDF filenames.
pdfFiles = []
--snip--
# Loop through all the PDF files.
for filename in pdfFiles:
    pdfFileObj = open[filename, 'rb']
    pdfReader = PyPDF2.PdfFileReader[pdfFileObj]
    # TODO: Loop through all the pages [except the first] and add them.

# TODO: Save the resulting PDF to a file.

Đối với mỗi tệp PDF, vòng lặp sẽ mở một tên tệp ở chế độ đọc nhị phân bằng cách gọi

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
3 với
#! python3
# combinePdfs.py - Combines all the PDFs in the current working directory into
# a single PDF.
import PyPDF2, os

--snip--

# Loop through all the PDF files.
for filename in pdfFiles:
--snip--
    # Loop through all the pages [except the first] and add them.
    for pageNum in range[1, pdfReader.numPages]:
    --snip--

# Save the resulting PDF to a file.
pdfOutput = open['allminutes.pdf', 'wb']
pdfWriter.write[pdfOutput]
pdfOutput.close[]
6 làm đối số thứ hai. Cuộc gọi
   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
3 trả về một đối tượng
   #! python3
   # combinePdfs.py - Combines all the PDFs in the current working directory into
   # into a single PDF.

❶ import PyPDF2, os

   # Get all the PDF filenames.
   pdfFiles = []
   for filename in os.listdir['.']:
       if filename.endswith['.pdf']:
❷         pdfFiles.append[filename]
❸ pdfFiles.sort[key=str.lower]

❹ pdfWriter = PyPDF2.PdfFileWriter[]

   # TODO: Loop through all the PDF files.

   # TODO: Loop through all the pages [except the first] and add them.

   # TODO: Save the resulting PDF to a file.
9, đối tượng này được chuyển đến
   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
9 để tạo một đối tượng
   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
8 cho tệp PDF đó

Bước 3. Thêm từng trang

Đối với mỗi tệp PDF, bạn sẽ muốn lặp lại mọi trang ngoại trừ trang đầu tiên. Thêm mã này vào chương trình của bạn

   #! python3
   # combinePdfs.py - Combines all the PDFs in the current working directory into
   # a single PDF.

   import PyPDF2, os

   --snip--

   # Loop through all the PDF files.
   for filename in pdfFiles:
   --snip--
       # Loop through all the pages [except the first] and add them.for pageNum in range[1, pdfReader.numPages]:
           pageObj = pdfReader.getPage[pageNum]
           pdfWriter.addPage[pageObj]

   # TODO: Save the resulting PDF to a file.

Mã bên trong vòng lặp

   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
48 sao chép từng đối tượng
   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❶ >>> page = pdfReader.getPage[0]
❷ >>> page.rotateClockwise[90]
   {'/Contents': [IndirectObject[961, 0], IndirectObject[962, 0],
   --snip--
   }
   >>> pdfWriter = PyPDF2.PdfFileWriter[]
   >>> pdfWriter.addPage[page]
❸ >>> resultPdfFile = open['rotatedPage.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> resultPdfFile.close[]
   >>> minutesFile.close[]
5 riêng lẻ sang đối tượng
   #! python3
   # combinePdfs.py - Combines all the PDFs in the current working directory into
   # into a single PDF.

❶ import PyPDF2, os

   # Get all the PDF filenames.
   pdfFiles = []
   for filename in os.listdir['.']:
       if filename.endswith['.pdf']:
❷         pdfFiles.append[filename]
❸ pdfFiles.sort[key=str.lower]

❹ pdfWriter = PyPDF2.PdfFileWriter[]

   # TODO: Loop through all the PDF files.

   # TODO: Loop through all the pages [except the first] and add them.

   # TODO: Save the resulting PDF to a file.
0. Hãy nhớ rằng, bạn muốn bỏ qua trang đầu tiên. Vì PyPDF2 coi
   >>> import PyPDF2
   >>> pdfFile = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[pdfFile]
   >>> pdfWriter = PyPDF2.PdfFileWriter[]
   >>> for pageNum in range[pdfReader.numPages]:
           pdfWriter.addPage[pdfReader.getPage[pageNum]]

❶ >>> pdfWriter.encrypt['swordfish']
   >>> resultPdf = open['encryptedminutes.pdf', 'wb']
   >>> pdfWriter.write[resultPdf]
   >>> resultPdf.close[]
4 là trang đầu tiên, nên vòng lặp của bạn phải bắt đầu từ
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
52 ❶ rồi đi đến, nhưng không bao gồm, số nguyên trong
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
53

Bước 4. Lưu kết quả

Sau khi các vòng lặp

   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
48 lồng nhau này được lặp xong, biến
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
55 sẽ chứa một đối tượng
   #! python3
   # combinePdfs.py - Combines all the PDFs in the current working directory into
   # into a single PDF.

❶ import PyPDF2, os

   # Get all the PDF filenames.
   pdfFiles = []
   for filename in os.listdir['.']:
       if filename.endswith['.pdf']:
❷         pdfFiles.append[filename]
❸ pdfFiles.sort[key=str.lower]

❹ pdfWriter = PyPDF2.PdfFileWriter[]

   # TODO: Loop through all the PDF files.

   # TODO: Loop through all the pages [except the first] and add them.

   # TODO: Save the resulting PDF to a file.
0 với các trang cho tất cả các tệp PDF được kết hợp. Bước cuối cùng là ghi nội dung này vào một tệp trên ổ cứng. Thêm mã này vào chương trình của bạn

#! python3
# combinePdfs.py - Combines all the PDFs in the current working directory into
# a single PDF.
import PyPDF2, os

--snip--

# Loop through all the PDF files.
for filename in pdfFiles:
--snip--
    # Loop through all the pages [except the first] and add them.
    for pageNum in range[1, pdfReader.numPages]:
    --snip--

# Save the resulting PDF to a file.
pdfOutput = open['allminutes.pdf', 'wb']
pdfWriter.write[pdfOutput]
pdfOutput.close[]

Chuyển

#! python3
# combinePdfs.py - Combines all the PDFs in the current working directory into
# a single PDF.

import PyPDF2, os

# Get all the PDF filenames.
pdfFiles = []
--snip--
# Loop through all the PDF files.
for filename in pdfFiles:
    pdfFileObj = open[filename, 'rb']
    pdfReader = PyPDF2.PdfFileReader[pdfFileObj]
    # TODO: Loop through all the pages [except the first] and add them.

# TODO: Save the resulting PDF to a file.
2 đến
   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
3 sẽ mở tệp PDF đầu ra, allminutes. pdf , ở chế độ ghi nhị phân. Sau đó, chuyển đối tượng
   #! python3
   # combinePdfs.py - Combines all the PDFs in the current working directory into
   # into a single PDF.

❶ import PyPDF2, os

   # Get all the PDF filenames.
   pdfFiles = []
   for filename in os.listdir['.']:
       if filename.endswith['.pdf']:
❷         pdfFiles.append[filename]
❸ pdfFiles.sort[key=str.lower]

❹ pdfWriter = PyPDF2.PdfFileWriter[]

   # TODO: Loop through all the PDF files.

   # TODO: Loop through all the pages [except the first] and add them.

   # TODO: Save the resulting PDF to a file.
9 cho phương thức
   #! python3
   # combinePdfs.py - Combines all the PDFs in the current working directory into
   # into a single PDF.

❶ import PyPDF2, os

   # Get all the PDF filenames.
   pdfFiles = []
   for filename in os.listdir['.']:
       if filename.endswith['.pdf']:
❷         pdfFiles.append[filename]
❸ pdfFiles.sort[key=str.lower]

❹ pdfWriter = PyPDF2.PdfFileWriter[]

   # TODO: Loop through all the PDF files.

   # TODO: Loop through all the pages [except the first] and add them.

   # TODO: Save the resulting PDF to a file.
7 để tạo tệp PDF thực. Một cuộc gọi đến phương pháp
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
61 kết thúc chương trình.

Ý tưởng cho các chương trình tương tự

Khả năng tạo tệp PDF từ các trang của các tệp PDF khác sẽ cho phép bạn tạo các chương trình có thể thực hiện những việc sau

  • Cắt các trang cụ thể khỏi tệp PDF

  • Sắp xếp lại các trang trong PDF

  • Chỉ tạo một tệp PDF từ những trang có một số văn bản cụ thể, được xác định bởi

       >>> import PyPDF2
       >>> minutesFile = open['meetingminutes.pdf', 'rb']
    ❷ >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
    ❷ >>> minutesFirstPage = pdfReader.getPage[0]
    ❸ >>> pdfWatermarkReader = PyPDF2.PdfFileReader[open['watermark.pdf', 'rb']]
    ❹ >>> minutesFirstPage.mergePage[pdfWatermarkReader.getPage[0]]
    ❺ >>> pdfWriter = PyPDF2.PdfFileWriter[]
    ❻ >>> pdfWriter.addPage[minutesFirstPage]
    
    ❼ >>> for pageNum in range[1, pdfReader.numPages]:
               pageObj = pdfReader.getPage[pageNum]
               pdfWriter.addPage[pageObj]
       >>> resultPdfFile = open['watermarkedCover.pdf', 'wb']
       >>> pdfWriter.write[resultPdfFile]
       >>> minutesFile.close[]
       >>> resultPdfFile.close[]
    4

tài liệu từ

Python có thể tạo và sửa đổi các tài liệu Word có . đuôi tệp docx , với mô-đun

   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
63. Bạn có thể cài đặt mô-đun bằng cách chạy
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
64. [Phụ lục A có đầy đủ chi tiết về cài đặt các mô-đun của bên thứ ba. ]

Ghi chú

Khi sử dụng pip để cài đặt Python-Docx lần đầu tiên, hãy nhớ cài đặt

   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
63, không phải
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
66. Tên cài đặt
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
66 dành cho một mô-đun khác mà cuốn sách này không bao gồm. Tuy nhiên, khi bạn nhập mô-đun
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
63, bạn sẽ cần chạy
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
69, không phải
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
70

Nếu bạn không có Word, LibreOffice Writer và OpenOffice Writer đều là những ứng dụng thay thế miễn phí dành cho Windows, OS X và Linux có thể dùng để mở . tệp docx . Bạn có thể tải chúng xuống từ https. //www. thư viện. orghttp. //mở văn phòng. org , tương ứng. Tài liệu đầy đủ về Python-Docx có tại https. // trăn-docx. đọcthedocs. tổ chức/ . Mặc dù có phiên bản Word cho OS X nhưng chương này sẽ tập trung vào Word cho Windows.

So với văn bản gốc, . Các tệp docx có nhiều cấu trúc. Cấu trúc này được thể hiện bằng ba loại dữ liệu khác nhau trong Python-Docx. Ở mức cao nhất, một đối tượng

   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
71 đại diện cho toàn bộ tài liệu. Đối tượng
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
71 chứa danh sách các đối tượng
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
73 cho các đoạn văn trong tài liệu. [Một đoạn mới bắt đầu bất cứ khi nào người dùng nhấn ENTER hoặc RETURN trong khi nhập . ] Mỗi ​​đối tượng
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
73 này chứa danh sách một hoặc nhiều đối tượng
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
75. Đoạn văn một câu trong có bốn câu.

Hình 13-4. Các đối tượng

   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
75 được xác định trong một đối tượng
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
73

Văn bản trong tài liệu Word không chỉ là một chuỗi. Nó có phông chữ, kích thước, màu sắc và thông tin kiểu dáng khác được liên kết với nó. kiểu trong Word là tập hợp các thuộc tính này. Đối tượng

   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
75 là một chuỗi văn bản liền kề có cùng kiểu. Cần có một đối tượng
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
75 mới bất cứ khi nào kiểu văn bản thay đổi.

Đọc tài liệu Word

Hãy thử nghiệm với mô-đun

   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
63. Tải xuống bản trình diễn. docx từ http. //Không có tinh bột. com/automatestuff/ và lưu tài liệu vào thư mục làm việc. Sau đó nhập thông tin sau vào Shell tương tác.

   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
0

Tại ❶, chúng tôi mở một . docx bằng Python, gọi

   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
81 và chuyển tên tệp demo. docx . Điều này sẽ trả về một đối tượng
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
71, có thuộc tính
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
83 là danh sách các đối tượng
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
73. Khi chúng tôi gọi
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
85 trên
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
86, nó sẽ trả về
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
87, cho chúng tôi biết rằng có bảy đối tượng
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
73 trong tài liệu này ❷. Mỗi đối tượng
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
73 này có một thuộc tính
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
90 chứa một chuỗi văn bản trong đoạn văn đó [không có thông tin về kiểu dáng]. Ở đây, thuộc tính
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
90 đầu tiên chứa
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
92 ❸ và thuộc tính thứ hai chứa
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
93 ❹.

Mỗi đối tượng

   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
73 cũng có một thuộc tính
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
95 là danh sách các đối tượng
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
75. Các đối tượng
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
75 cũng có thuộc tính
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
90, chỉ chứa văn bản trong lần chạy cụ thể đó. Hãy xem xét các thuộc tính
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
90 trong đối tượng
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
73 thứ hai,
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
93. Gọi
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
85 trên đối tượng
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
73 này cho chúng ta biết rằng có bốn đối tượng
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
75 ❺. Đối tượng chạy đầu tiên chứa
   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
05 ❻. Sau đó, văn bản chuyển sang kiểu in đậm, vì vậy
   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
06 bắt đầu một đối tượng
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
75 mới ❼. Văn bản trở lại kiểu không bôi đậm sau đó, kết quả là đối tượng thứ ba
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
75,
   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
09 ❽. Cuối cùng, đối tượng
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
75 thứ tư và cuối cùng chứa
   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
11 theo kiểu in nghiêng ➒

Với Python-Docx, giờ đây các chương trình Python của bạn sẽ có thể đọc văn bản từ . docx và sử dụng nó giống như bất kỳ giá trị chuỗi nào khác.

Lấy toàn văn từ một. tệp docx

Nếu bạn chỉ quan tâm đến văn bản, không quan tâm đến thông tin kiểu dáng, trong tài liệu Word, bạn có thể sử dụng hàm

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
12. Nó chấp nhận tên tệp của . docx và trả về một giá trị chuỗi văn bản của nó. Mở một cửa sổ soạn thảo tệp mới và nhập đoạn mã sau, lưu mã dưới dạng readDocx. p .

   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
1

Hàm

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
12 mở tài liệu Word, lặp qua tất cả các đối tượng
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
73 trong danh sách
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
83, sau đó nối văn bản của chúng vào danh sách trong
   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
16. Sau vòng lặp, các chuỗi trong
   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
16 được nối với nhau bằng các ký tự xuống dòng

The readDocx. chương trình py có thể được nhập giống như bất kỳ mô-đun nào khác. Bây giờ nếu bạn chỉ cần văn bản từ tài liệu Word, bạn có thể nhập như sau.

   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
2

Bạn cũng có thể điều chỉnh

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
12 để sửa đổi chuỗi trước khi trả lại. Ví dụ: để thụt lề từng đoạn văn, hãy thay thế lệnh gọi
   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
19 trong readDocx. py với cái này.

   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
3

Để thêm dấu cách đôi vào giữa các đoạn văn, hãy thay đổi mã cuộc gọi

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
20 thành mã này

   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
4

Như bạn có thể thấy, chỉ cần một vài dòng mã để viết các hàm sẽ đọc một . docx và trả về một chuỗi nội dung theo ý thích của bạn.

Tạo kiểu đoạn văn và chạy các đối tượng

Trong Word dành cho Windows, bạn có thể xem các kiểu bằng cách nhấn CTRL - ALT-SHIFT-S to display the Styles pane, which looks like . On OS X, you can view the Styles pane by clicking the Chế độ xemKiểu menu item.

Hình 13-5. Hiển thị ngăn Kiểu bằng cách nhấn

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
21-S trên Windows

Word và các trình xử lý văn bản khác sử dụng các kiểu để giữ cho cách trình bày trực quan của các loại văn bản tương tự nhất quán và dễ thay đổi. Ví dụ: có lẽ bạn muốn đặt các đoạn nội dung ở dạng văn bản 11 điểm, Times New Roman, căn trái, căn lề phải. Bạn có thể tạo kiểu với các cài đặt này và gán nó cho tất cả các đoạn nội dung. Sau đó, nếu sau này bạn muốn thay đổi cách trình bày của tất cả các đoạn nội dung trong tài liệu, bạn chỉ cần thay đổi kiểu và tất cả các đoạn đó sẽ tự động được cập nhật

Đối với tài liệu Word, có ba loại kiểu. Kiểu đoạn văn có thể được áp dụng cho đối tượng

   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
73, kiểu ký tự có thể được áp dụng . Bạn có thể cung cấp cho cả hai kiểu đối tượng
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
73 và
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
75 bằng cách đặt thuộc tính
   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
26 của chúng thành một chuỗi. Chuỗi này phải là tên của một phong cách. Nếu
   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
26 được đặt thành
   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
28, thì sẽ không có kiểu dáng nào được liên kết với đối tượng
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
73 hoặc
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
75. linked styles can be applied to both kinds of objects. You can give both
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
73 and
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
75 objects styles by setting their
   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
26 attribute to a string. This string should be the name of a style. If
   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
26 is set to
   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
28, then there will be no style associated with the
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
73 or
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
75 object.

Các giá trị chuỗi cho các kiểu Word mặc định như sau

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
31

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
32

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
33

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
34

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
35

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
36

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
37

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
38

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
39

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
40

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
41

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
42

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
43

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
44

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
45

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
46

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
47

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
48

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
49

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
50

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
51

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
52

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
53

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
54

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
55

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
56

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
57

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
58

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
59

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
60

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
61

 

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
62

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
63

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
64

 

Khi đặt thuộc tính

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
26, không sử dụng dấu cách trong tên kiểu. Ví dụ: trong khi tên kiểu có thể là Nhấn mạnh tinh tế, bạn nên đặt thuộc tính
   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
26 thành giá trị chuỗi
   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
67 thay vì ________0____68. Bao gồm khoảng trắng sẽ khiến Word đọc sai tên kiểu và không áp dụng được

Khi sử dụng kiểu được liên kết cho đối tượng

   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
75, bạn sẽ cần thêm
   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
70 vào cuối tên của đối tượng đó. Ví dụ: để đặt kiểu liên kết Trích dẫn cho đối tượng
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
73, bạn sẽ sử dụng
   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
72, nhưng đối với đối tượng
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
75, bạn sẽ sử dụng
   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
74

Trong phiên bản hiện tại của Python-Docx [0. 7. 4], kiểu duy nhất có thể được sử dụng là kiểu Word mặc định và kiểu trong đã mở. docx . Không thể tạo các kiểu mới—mặc dù điều này có thể thay đổi trong các phiên bản tương lai của Python-Docx.

Tạo tài liệu Word với các kiểu không mặc định

Nếu bạn muốn tạo tài liệu Word sử dụng các kiểu ngoài kiểu mặc định, bạn sẽ cần mở Word thành một tài liệu Word trống và tự tạo kiểu bằng cách nhấp vào Kiểu mới . button at the bottom of the Styles pane [ shows this on Windows].

Thao tác này sẽ mở hộp thoại Tạo kiểu mới từ định dạng, nơi bạn có thể nhập kiểu mới. Sau đó, quay lại trình bao tương tác và mở tài liệu Word trống này bằng

   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
81, sử dụng nó làm cơ sở cho tài liệu Word của bạn. Tên bạn đã đặt cho kiểu này hiện sẽ có sẵn để sử dụng với Python-Docx

Hình 13-6. Nút Kiểu mới [trái] và hộp thoại Tạo kiểu mới từ định dạng [phải]

Chạy thuộc tính

Các lần chạy có thể được tạo kiểu thêm bằng cách sử dụng các thuộc tính

   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
90. Mỗi thuộc tính có thể được đặt thành một trong ba giá trị.
   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
❷ >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❷ >>> minutesFirstPage = pdfReader.getPage[0]
❸ >>> pdfWatermarkReader = PyPDF2.PdfFileReader[open['watermark.pdf', 'rb']]
❹ >>> minutesFirstPage.mergePage[pdfWatermarkReader.getPage[0]]
❺ >>> pdfWriter = PyPDF2.PdfFileWriter[]
❻ >>> pdfWriter.addPage[minutesFirstPage]

❼ >>> for pageNum in range[1, pdfReader.numPages]:
           pageObj = pdfReader.getPage[pageNum]
           pdfWriter.addPage[pageObj]
   >>> resultPdfFile = open['watermarkedCover.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> minutesFile.close[]
   >>> resultPdfFile.close[]
8 [thuộc tính luôn được bật, bất kể kiểu chạy nào khác được áp dụng cho lần chạy],
   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
❷ >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❷ >>> minutesFirstPage = pdfReader.getPage[0]
❸ >>> pdfWatermarkReader = PyPDF2.PdfFileReader[open['watermark.pdf', 'rb']]
❹ >>> minutesFirstPage.mergePage[pdfWatermarkReader.getPage[0]]
❺ >>> pdfWriter = PyPDF2.PdfFileWriter[]
❻ >>> pdfWriter.addPage[minutesFirstPage]

❼ >>> for pageNum in range[1, pdfReader.numPages]:
           pageObj = pdfReader.getPage[pageNum]
           pdfWriter.addPage[pageObj]
   >>> resultPdfFile = open['watermarkedCover.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> minutesFile.close[]
   >>> resultPdfFile.close[]
9 [thuộc tính luôn bị tắt] hoặc
   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
28 [mặc định là bất kỳ kiểu chạy nào được đặt thành]

liệt kê các thuộc tính

   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
90 có thể được đặt trên các đối tượng
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
75

Bảng 13-1.

   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
75 Đối tượng
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
90 Thuộc tính

Thuộc tính

Sự miêu tả

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
84

Văn bản xuất hiện in đậm

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
85

Văn bản xuất hiện trong chữ nghiêng

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
86

Văn bản được gạch chân

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
87

Văn bản xuất hiện với gạch ngang

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
88

Văn bản xuất hiện với gạch ngang đôi

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
89

Văn bản xuất hiện bằng chữ in hoa

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
90

Văn bản xuất hiện bằng chữ in hoa, chữ thường nhỏ hơn hai chấm

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
91

Văn bản xuất hiện với một cái bóng

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
92

Văn bản xuất hiện có đường viền thay vì liền mạch

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
93

Văn bản được viết từ phải sang trái

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
94

Văn bản xuất hiện được ép vào trang

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
95

Văn bản xuất hiện nổi lên khỏi trang một cách dễ dàng

Ví dụ: để thay đổi kiểu demo. docx , hãy nhập thông tin sau vào trình bao tương tác.

   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
5

Ở đây, chúng tôi sử dụng các thuộc tính

   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
90 và
   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
26 để dễ dàng xem nội dung của các đoạn văn trong tài liệu của chúng tôi. Chúng ta có thể thấy rằng thật đơn giản để chia một đoạn thành các lần chạy và truy cập từng lần chạy riêng lẻ. Vì vậy, chúng tôi nhận được lần chạy đầu tiên, thứ hai và thứ tư trong đoạn thứ hai, tạo kiểu cho mỗi lần chạy và lưu kết quả vào một tài liệu mới

Các từ Tiêu đề tài liệu ở đầu được sắp xếp lại. docx sẽ có kiểu Bình thường thay vì kiểu Tiêu đề, đối tượng

   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
75 cho văn bản Một đoạn văn đơn giản với một số . hiển thị kiểu dáng của đoạn văn và nội dung trong bold and italic will have their
   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
86 attributes set to
   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
❷ >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❷ >>> minutesFirstPage = pdfReader.getPage[0]
❸ >>> pdfWatermarkReader = PyPDF2.PdfFileReader[open['watermark.pdf', 'rb']]
❹ >>> minutesFirstPage.mergePage[pdfWatermarkReader.getPage[0]]
❺ >>> pdfWriter = PyPDF2.PdfFileWriter[]
❻ >>> pdfWriter.addPage[minutesFirstPage]

❼ >>> for pageNum in range[1, pdfReader.numPages]:
           pageObj = pdfReader.getPage[pageNum]
           pdfWriter.addPage[pageObj]
   >>> resultPdfFile = open['watermarkedCover.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> minutesFile.close[]
   >>> resultPdfFile.close[]
8. shows how the styles of paragraphs and runs look in restyled. docx .

Hình 13-7. được thiết kế lại. tệp docx file

Bạn có thể tìm tài liệu đầy đủ hơn về cách sử dụng kiểu của Python-Docx tại https. // trăn-docx. đọcthedocs. org/vi/mới nhất/người dùng/kiểu. html .

Viết tài liệu Word

Nhập thông tin sau vào vỏ tương tác

   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
6

Để tạo của riêng bạn. docx , hãy gọi

   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
81 để trả về một đối tượng Word
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
71 mới, trống. Phương thức tài liệu
   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❶ >>> page = pdfReader.getPage[0]
❷ >>> page.rotateClockwise[90]
   {'/Contents': [IndirectObject[961, 0], IndirectObject[962, 0],
   --snip--
   }
   >>> pdfWriter = PyPDF2.PdfFileWriter[]
   >>> pdfWriter.addPage[page]
❸ >>> resultPdfFile = open['rotatedPage.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> resultPdfFile.close[]
   >>> minutesFile.close[]
04 thêm một đoạn văn bản mới vào tài liệu và trả về một tham chiếu đến đối tượng
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
73 đã được thêm vào. Khi bạn hoàn tất việc thêm văn bản, hãy chuyển một chuỗi tên tệp vào phương thức tài liệu
   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❶ >>> page = pdfReader.getPage[0]
❷ >>> page.rotateClockwise[90]
   {'/Contents': [IndirectObject[961, 0], IndirectObject[962, 0],
   --snip--
   }
   >>> pdfWriter = PyPDF2.PdfFileWriter[]
   >>> pdfWriter.addPage[page]
❸ >>> resultPdfFile = open['rotatedPage.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> resultPdfFile.close[]
   >>> minutesFile.close[]
06 để lưu đối tượng
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
71 vào một tệp.

Thao tác này sẽ tạo một tệp có tên helloworld. docx trong thư mục làm việc hiện tại mà khi mở ra sẽ giống như.

Hình 13-8. Tài liệu Word được tạo bằng cách sử dụng

   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❶ >>> page = pdfReader.getPage[0]
❷ >>> page.rotateClockwise[90]
   {'/Contents': [IndirectObject[961, 0], IndirectObject[962, 0],
   --snip--
   }
   >>> pdfWriter = PyPDF2.PdfFileWriter[]
   >>> pdfWriter.addPage[page]
❸ >>> resultPdfFile = open['rotatedPage.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> resultPdfFile.close[]
   >>> minutesFile.close[]
08

Bạn có thể thêm đoạn văn bằng cách gọi lại phương thức

   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❶ >>> page = pdfReader.getPage[0]
❷ >>> page.rotateClockwise[90]
   {'/Contents': [IndirectObject[961, 0], IndirectObject[962, 0],
   --snip--
   }
   >>> pdfWriter = PyPDF2.PdfFileWriter[]
   >>> pdfWriter.addPage[page]
❸ >>> resultPdfFile = open['rotatedPage.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> resultPdfFile.close[]
   >>> minutesFile.close[]
04 với văn bản của đoạn văn mới. Hoặc để thêm văn bản vào cuối đoạn văn hiện có, bạn có thể gọi phương thức
   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❶ >>> page = pdfReader.getPage[0]
❷ >>> page.rotateClockwise[90]
   {'/Contents': [IndirectObject[961, 0], IndirectObject[962, 0],
   --snip--
   }
   >>> pdfWriter = PyPDF2.PdfFileWriter[]
   >>> pdfWriter.addPage[page]
❸ >>> resultPdfFile = open['rotatedPage.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> resultPdfFile.close[]
   >>> minutesFile.close[]
10 của đoạn văn và truyền vào đó một chuỗi. Nhập thông tin sau vào vỏ tương tác

   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
7

Tài liệu kết quả sẽ giống như. Lưu ý rằng văn bản Văn bản này đang được thêm vào đoạn thứ hai. đã được thêm vào đối tượng

   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
73 trong
   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❶ >>> page = pdfReader.getPage[0]
❷ >>> page.rotateClockwise[90]
   {'/Contents': [IndirectObject[961, 0], IndirectObject[962, 0],
   --snip--
   }
   >>> pdfWriter = PyPDF2.PdfFileWriter[]
   >>> pdfWriter.addPage[page]
❸ >>> resultPdfFile = open['rotatedPage.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> resultPdfFile.close[]
   >>> minutesFile.close[]
12, đây là đoạn thứ hai được thêm vào
   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❶ >>> page = pdfReader.getPage[0]
❷ >>> page.rotateClockwise[90]
   {'/Contents': [IndirectObject[961, 0], IndirectObject[962, 0],
   --snip--
   }
   >>> pdfWriter = PyPDF2.PdfFileWriter[]
   >>> pdfWriter.addPage[page]
❸ >>> resultPdfFile = open['rotatedPage.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> resultPdfFile.close[]
   >>> minutesFile.close[]
13. Các hàm
   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❶ >>> page = pdfReader.getPage[0]
❷ >>> page.rotateClockwise[90]
   {'/Contents': [IndirectObject[961, 0], IndirectObject[962, 0],
   --snip--
   }
   >>> pdfWriter = PyPDF2.PdfFileWriter[]
   >>> pdfWriter.addPage[page]
❸ >>> resultPdfFile = open['rotatedPage.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> resultPdfFile.close[]
   >>> minutesFile.close[]
04 và
   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❶ >>> page = pdfReader.getPage[0]
❷ >>> page.rotateClockwise[90]
   {'/Contents': [IndirectObject[961, 0], IndirectObject[962, 0],
   --snip--
   }
   >>> pdfWriter = PyPDF2.PdfFileWriter[]
   >>> pdfWriter.addPage[page]
❸ >>> resultPdfFile = open['rotatedPage.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> resultPdfFile.close[]
   >>> minutesFile.close[]
10 lần lượt trả về các đối tượng đoạn văn và đối tượng
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
75, giúp bạn không gặp rắc rối khi trích xuất chúng thành một bước riêng biệt.

Hãy nhớ rằng kể từ Python-Docx phiên bản 0. 5. 3, chỉ có thể thêm đối tượng

   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
73 mới vào cuối tài liệu và chỉ có thể thêm đối tượng
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
75 mới vào cuối đối tượng
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
73

Có thể gọi lại phương thức

   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❶ >>> page = pdfReader.getPage[0]
❷ >>> page.rotateClockwise[90]
   {'/Contents': [IndirectObject[961, 0], IndirectObject[962, 0],
   --snip--
   }
   >>> pdfWriter = PyPDF2.PdfFileWriter[]
   >>> pdfWriter.addPage[page]
❸ >>> resultPdfFile = open['rotatedPage.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> resultPdfFile.close[]
   >>> minutesFile.close[]
06 để lưu các thay đổi bổ sung mà bạn đã thực hiện

Hình 13-9. Tài liệu có nhiều đối tượng

   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
73 và
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
75 được thêm vào

Cả

   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❶ >>> page = pdfReader.getPage[0]
❷ >>> page.rotateClockwise[90]
   {'/Contents': [IndirectObject[961, 0], IndirectObject[962, 0],
   --snip--
   }
   >>> pdfWriter = PyPDF2.PdfFileWriter[]
   >>> pdfWriter.addPage[page]
❸ >>> resultPdfFile = open['rotatedPage.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> resultPdfFile.close[]
   >>> minutesFile.close[]
04 và
   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❶ >>> page = pdfReader.getPage[0]
❷ >>> page.rotateClockwise[90]
   {'/Contents': [IndirectObject[961, 0], IndirectObject[962, 0],
   --snip--
   }
   >>> pdfWriter = PyPDF2.PdfFileWriter[]
   >>> pdfWriter.addPage[page]
❸ >>> resultPdfFile = open['rotatedPage.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> resultPdfFile.close[]
   >>> minutesFile.close[]
10 đều chấp nhận một đối số thứ hai tùy chọn là một chuỗi của kiểu đối tượng
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
73 hoặc
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
75. Ví dụ

   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
8

Dòng này thêm một đoạn có nội dung Xin chào thế giới. theo kiểu Tiêu đề.

Thêm tiêu đề

Đang gọi

   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❶ >>> page = pdfReader.getPage[0]
❷ >>> page.rotateClockwise[90]
   {'/Contents': [IndirectObject[961, 0], IndirectObject[962, 0],
   --snip--
   }
   >>> pdfWriter = PyPDF2.PdfFileWriter[]
   >>> pdfWriter.addPage[page]
❸ >>> resultPdfFile = open['rotatedPage.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> resultPdfFile.close[]
   >>> minutesFile.close[]
27 thêm một đoạn văn với một trong các kiểu tiêu đề. Nhập thông tin sau vào vỏ tương tác

   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
9

Các đối số của

   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❶ >>> page = pdfReader.getPage[0]
❷ >>> page.rotateClockwise[90]
   {'/Contents': [IndirectObject[961, 0], IndirectObject[962, 0],
   --snip--
   }
   >>> pdfWriter = PyPDF2.PdfFileWriter[]
   >>> pdfWriter.addPage[page]
❸ >>> resultPdfFile = open['rotatedPage.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> resultPdfFile.close[]
   >>> minutesFile.close[]
27 là một chuỗi văn bản tiêu đề và một số nguyên từ
   >>> import PyPDF2
   >>> pdfFile = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[pdfFile]
   >>> pdfWriter = PyPDF2.PdfFileWriter[]
   >>> for pageNum in range[pdfReader.numPages]:
           pdfWriter.addPage[pdfReader.getPage[pageNum]]

❶ >>> pdfWriter.encrypt['swordfish']
   >>> resultPdf = open['encryptedminutes.pdf', 'wb']
   >>> pdfWriter.write[resultPdf]
   >>> resultPdf.close[]
4 đến
   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❶ >>> page = pdfReader.getPage[0]
❷ >>> page.rotateClockwise[90]
   {'/Contents': [IndirectObject[961, 0], IndirectObject[962, 0],
   --snip--
   }
   >>> pdfWriter = PyPDF2.PdfFileWriter[]
   >>> pdfWriter.addPage[page]
❸ >>> resultPdfFile = open['rotatedPage.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> resultPdfFile.close[]
   >>> minutesFile.close[]
30. Số nguyên
   >>> import PyPDF2
   >>> pdfFile = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[pdfFile]
   >>> pdfWriter = PyPDF2.PdfFileWriter[]
   >>> for pageNum in range[pdfReader.numPages]:
           pdfWriter.addPage[pdfReader.getPage[pageNum]]

❶ >>> pdfWriter.encrypt['swordfish']
   >>> resultPdf = open['encryptedminutes.pdf', 'wb']
   >>> pdfWriter.write[resultPdf]
   >>> resultPdf.close[]
4 làm tiêu đề theo kiểu Tiêu đề, được sử dụng cho phần đầu của tài liệu. Các số nguyên
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
52 đến
   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❶ >>> page = pdfReader.getPage[0]
❷ >>> page.rotateClockwise[90]
   {'/Contents': [IndirectObject[961, 0], IndirectObject[962, 0],
   --snip--
   }
   >>> pdfWriter = PyPDF2.PdfFileWriter[]
   >>> pdfWriter.addPage[page]
❸ >>> resultPdfFile = open['rotatedPage.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> resultPdfFile.close[]
   >>> minutesFile.close[]
30 dành cho các cấp tiêu đề khác nhau, với
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
52 là tiêu đề chính và
   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❶ >>> page = pdfReader.getPage[0]
❷ >>> page.rotateClockwise[90]
   {'/Contents': [IndirectObject[961, 0], IndirectObject[962, 0],
   --snip--
   }
   >>> pdfWriter = PyPDF2.PdfFileWriter[]
   >>> pdfWriter.addPage[page]
❸ >>> resultPdfFile = open['rotatedPage.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> resultPdfFile.close[]
   >>> minutesFile.close[]
30 là tiêu đề phụ thấp nhất. Hàm
   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❶ >>> page = pdfReader.getPage[0]
❷ >>> page.rotateClockwise[90]
   {'/Contents': [IndirectObject[961, 0], IndirectObject[962, 0],
   --snip--
   }
   >>> pdfWriter = PyPDF2.PdfFileWriter[]
   >>> pdfWriter.addPage[page]
❸ >>> resultPdfFile = open['rotatedPage.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> resultPdfFile.close[]
   >>> minutesFile.close[]
27 trả về một đối tượng
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
73 để giúp bạn tiết kiệm bước trích xuất đối tượng đó từ đối tượng
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
71 thành một bước riêng biệt

Kết quả tiêu đề. docx sẽ trông như thế nào.

Hình 13-10. Các tiêu đề . tài liệu docx có tiêu đề từ 0 đến 4

Thêm dòng và ngắt trang

Để thêm dấu ngắt dòng [thay vì bắt đầu một đoạn hoàn toàn mới], bạn có thể gọi phương thức

   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❶ >>> page = pdfReader.getPage[0]
❷ >>> page.rotateClockwise[90]
   {'/Contents': [IndirectObject[961, 0], IndirectObject[962, 0],
   --snip--
   }
   >>> pdfWriter = PyPDF2.PdfFileWriter[]
   >>> pdfWriter.addPage[page]
❸ >>> resultPdfFile = open['rotatedPage.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> resultPdfFile.close[]
   >>> minutesFile.close[]
39 trên đối tượng
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
75 mà bạn muốn dấu ngắt xuất hiện sau đó. Thay vào đó, nếu bạn muốn thêm dấu ngắt trang, bạn cần chuyển giá trị
   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❶ >>> page = pdfReader.getPage[0]
❷ >>> page.rotateClockwise[90]
   {'/Contents': [IndirectObject[961, 0], IndirectObject[962, 0],
   --snip--
   }
   >>> pdfWriter = PyPDF2.PdfFileWriter[]
   >>> pdfWriter.addPage[page]
❸ >>> resultPdfFile = open['rotatedPage.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> resultPdfFile.close[]
   >>> minutesFile.close[]
41 làm đối số duy nhất cho
   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❶ >>> page = pdfReader.getPage[0]
❷ >>> page.rotateClockwise[90]
   {'/Contents': [IndirectObject[961, 0], IndirectObject[962, 0],
   --snip--
   }
   >>> pdfWriter = PyPDF2.PdfFileWriter[]
   >>> pdfWriter.addPage[page]
❸ >>> resultPdfFile = open['rotatedPage.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> resultPdfFile.close[]
   >>> minutesFile.close[]
39, như được thực hiện ở giữa ví dụ sau

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
0

Thao tác này tạo tài liệu Word dài hai trang với Đây là trang đầu tiên. ở trang đầu tiên và Đây ở trang thứ hai. vào ngày thứ hai. Mặc dù vẫn còn nhiều khoảng trống trên trang đầu tiên sau văn bản Đây là trang đầu tiên. , chúng tôi đã buộc đoạn tiếp theo bắt đầu trên một trang mới bằng cách chèn dấu ngắt trang sau lần chạy đầu tiên của đoạn đầu tiên ❶.

thêm hình ảnh

   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
71 đối tượng có một phương thức
   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❶ >>> page = pdfReader.getPage[0]
❷ >>> page.rotateClockwise[90]
   {'/Contents': [IndirectObject[961, 0], IndirectObject[962, 0],
   --snip--
   }
   >>> pdfWriter = PyPDF2.PdfFileWriter[]
   >>> pdfWriter.addPage[page]
❸ >>> resultPdfFile = open['rotatedPage.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> resultPdfFile.close[]
   >>> minutesFile.close[]
44 cho phép bạn thêm một hình ảnh vào cuối tài liệu. Giả sử bạn có tệp zophie. png trong thư mục làm việc hiện tại. Bạn có thể thêm zophie. png vào cuối tài liệu của bạn với chiều rộng 1 inch và chiều cao 4 cm [Word có thể sử dụng cả đơn vị đo lường và hệ mét] bằng cách nhập thông tin sau.

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
1

Đối số đầu tiên là một chuỗi tên tệp của hình ảnh. Các đối số từ khóa

   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❶ >>> page = pdfReader.getPage[0]
❷ >>> page.rotateClockwise[90]
   {'/Contents': [IndirectObject[961, 0], IndirectObject[962, 0],
   --snip--
   }
   >>> pdfWriter = PyPDF2.PdfFileWriter[]
   >>> pdfWriter.addPage[page]
❸ >>> resultPdfFile = open['rotatedPage.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> resultPdfFile.close[]
   >>> minutesFile.close[]
45 và
   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❶ >>> page = pdfReader.getPage[0]
❷ >>> page.rotateClockwise[90]
   {'/Contents': [IndirectObject[961, 0], IndirectObject[962, 0],
   --snip--
   }
   >>> pdfWriter = PyPDF2.PdfFileWriter[]
   >>> pdfWriter.addPage[page]
❸ >>> resultPdfFile = open['rotatedPage.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> resultPdfFile.close[]
   >>> minutesFile.close[]
46 tùy chọn sẽ đặt chiều rộng và chiều cao của hình ảnh trong tài liệu. Nếu bỏ đi thì chiều rộng và chiều cao sẽ mặc định là kích thước bình thường của ảnh

Bạn có thể muốn chỉ định chiều cao và chiều rộng của hình ảnh theo các đơn vị quen thuộc như inch và cm, vì vậy bạn có thể sử dụng các hàm

   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❶ >>> page = pdfReader.getPage[0]
❷ >>> page.rotateClockwise[90]
   {'/Contents': [IndirectObject[961, 0], IndirectObject[962, 0],
   --snip--
   }
   >>> pdfWriter = PyPDF2.PdfFileWriter[]
   >>> pdfWriter.addPage[page]
❸ >>> resultPdfFile = open['rotatedPage.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> resultPdfFile.close[]
   >>> minutesFile.close[]
47 và
   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❶ >>> page = pdfReader.getPage[0]
❷ >>> page.rotateClockwise[90]
   {'/Contents': [IndirectObject[961, 0], IndirectObject[962, 0],
   --snip--
   }
   >>> pdfWriter = PyPDF2.PdfFileWriter[]
   >>> pdfWriter.addPage[page]
❸ >>> resultPdfFile = open['rotatedPage.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> resultPdfFile.close[]
   >>> minutesFile.close[]
48 khi bạn chỉ định các đối số từ khóa
   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❶ >>> page = pdfReader.getPage[0]
❷ >>> page.rotateClockwise[90]
   {'/Contents': [IndirectObject[961, 0], IndirectObject[962, 0],
   --snip--
   }
   >>> pdfWriter = PyPDF2.PdfFileWriter[]
   >>> pdfWriter.addPage[page]
❸ >>> resultPdfFile = open['rotatedPage.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> resultPdfFile.close[]
   >>> minutesFile.close[]
45 và
   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❶ >>> page = pdfReader.getPage[0]
❷ >>> page.rotateClockwise[90]
   {'/Contents': [IndirectObject[961, 0], IndirectObject[962, 0],
   --snip--
   }
   >>> pdfWriter = PyPDF2.PdfFileWriter[]
   >>> pdfWriter.addPage[page]
❸ >>> resultPdfFile = open['rotatedPage.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> resultPdfFile.close[]
   >>> minutesFile.close[]
46

Tóm lược

Thông tin văn bản không chỉ dành cho các tệp văn bản gốc; . Bạn có thể sử dụng mô-đun

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
6 để đọc và viết tài liệu PDF. Thật không may, việc đọc văn bản từ các tài liệu PDF không phải lúc nào cũng dẫn đến một bản dịch hoàn hảo sang một chuỗi do định dạng tệp PDF phức tạp và một số tệp PDF có thể không đọc được. Trong những trường hợp này, bạn sẽ không gặp may trừ khi các bản cập nhật trong tương lai cho PyPDF2 hỗ trợ các tính năng PDF bổ sung

Tài liệu Word đáng tin cậy hơn và bạn có thể đọc chúng với mô-đun

   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
63. Bạn có thể thao tác văn bản trong tài liệu Word thông qua các đối tượng
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
73 và
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
75. Các đối tượng này cũng có thể được cung cấp kiểu, mặc dù chúng phải từ tập hợp kiểu hoặc kiểu mặc định đã có trong tài liệu. Bạn có thể thêm các đoạn văn, tiêu đề, dấu ngắt và hình ảnh mới vào tài liệu, mặc dù chỉ ở phần cuối

Nhiều hạn chế khi làm việc với các tài liệu PDF và Word là do các định dạng này được thiết kế để hiển thị độc đáo cho người đọc, thay vì dễ dàng phân tích cú pháp bằng phần mềm. Chương tiếp theo sẽ xem xét hai định dạng phổ biến khác để lưu trữ thông tin. Tệp JSON và CSV. Các định dạng này được thiết kế để máy tính sử dụng và bạn sẽ thấy rằng Python có thể hoạt động với các định dạng này dễ dàng hơn nhiều

câu hỏi thực hành


Q

1. Giá trị chuỗi của tên tệp PDF là not được truyền cho hàm

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
9. Thay vào đó, bạn chuyển cái gì cho hàm?

Q

2. Các đối tượng

   #! python3
   # combinePdfs.py - Combines all the PDFs in the current working directory into
   # into a single PDF.

❶ import PyPDF2, os

   # Get all the PDF filenames.
   pdfFiles = []
   for filename in os.listdir['.']:
       if filename.endswith['.pdf']:
❷         pdfFiles.append[filename]
❸ pdfFiles.sort[key=str.lower]

❹ pdfWriter = PyPDF2.PdfFileWriter[]

   # TODO: Loop through all the PDF files.

   # TODO: Loop through all the pages [except the first] and add them.

   # TODO: Save the resulting PDF to a file.
9 cho
   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❶ >>> page = pdfReader.getPage[0]
❷ >>> page.rotateClockwise[90]
   {'/Contents': [IndirectObject[961, 0], IndirectObject[962, 0],
   --snip--
   }
   >>> pdfWriter = PyPDF2.PdfFileWriter[]
   >>> pdfWriter.addPage[page]
❸ >>> resultPdfFile = open['rotatedPage.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> resultPdfFile.close[]
   >>> minutesFile.close[]
57 và
   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❶ >>> page = pdfReader.getPage[0]
❷ >>> page.rotateClockwise[90]
   {'/Contents': [IndirectObject[961, 0], IndirectObject[962, 0],
   --snip--
   }
   >>> pdfWriter = PyPDF2.PdfFileWriter[]
   >>> pdfWriter.addPage[page]
❸ >>> resultPdfFile = open['rotatedPage.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> resultPdfFile.close[]
   >>> minutesFile.close[]
58 cần được mở ở chế độ nào?

Q

3. Làm thế nào để bạn có được một đối tượng

   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❶ >>> page = pdfReader.getPage[0]
❷ >>> page.rotateClockwise[90]
   {'/Contents': [IndirectObject[961, 0], IndirectObject[962, 0],
   --snip--
   }
   >>> pdfWriter = PyPDF2.PdfFileWriter[]
   >>> pdfWriter.addPage[page]
❸ >>> resultPdfFile = open['rotatedPage.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> resultPdfFile.close[]
   >>> minutesFile.close[]
5 từ một đối tượng
   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
8?

Q

4. Biến

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
8 lưu trữ số trang trong tài liệu PDF là gì?

Q

5. Nếu PDF của một đối tượng

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
8 được mã hóa bằng mật khẩu
   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❶ >>> page = pdfReader.getPage[0]
❷ >>> page.rotateClockwise[90]
   {'/Contents': [IndirectObject[961, 0], IndirectObject[962, 0],
   --snip--
   }
   >>> pdfWriter = PyPDF2.PdfFileWriter[]
   >>> pdfWriter.addPage[page]
❸ >>> resultPdfFile = open['rotatedPage.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> resultPdfFile.close[]
   >>> minutesFile.close[]
63, bạn phải làm gì trước khi có thể lấy được
   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❶ >>> page = pdfReader.getPage[0]
❷ >>> page.rotateClockwise[90]
   {'/Contents': [IndirectObject[961, 0], IndirectObject[962, 0],
   --snip--
   }
   >>> pdfWriter = PyPDF2.PdfFileWriter[]
   >>> pdfWriter.addPage[page]
❸ >>> resultPdfFile = open['rotatedPage.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> resultPdfFile.close[]
   >>> minutesFile.close[]
5 đối tượng từ nó?

Q

6. Bạn sử dụng phương pháp nào để xoay trang?

Q

7. Phương thức nào trả về một đối tượng

   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
71 cho tệp có tên demo. docx ?

Q

8. Sự khác biệt giữa đối tượng

   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
73 và đối tượng
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
75 là gì?

Q

9. Làm cách nào để bạn có được danh sách các đối tượng

   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
73 cho một đối tượng
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
71 được lưu trữ trong một biến có tên
   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❶ >>> page = pdfReader.getPage[0]
❷ >>> page.rotateClockwise[90]
   {'/Contents': [IndirectObject[961, 0], IndirectObject[962, 0],
   --snip--
   }
   >>> pdfWriter = PyPDF2.PdfFileWriter[]
   >>> pdfWriter.addPage[page]
❸ >>> resultPdfFile = open['rotatedPage.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> resultPdfFile.close[]
   >>> minutesFile.close[]
13?

Q

10. Loại đối tượng nào có các biến

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
84,
   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
86,
   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
85,
   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
87 và
   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
92?

Q

11. Sự khác biệt giữa việc đặt biến

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
84 thành
   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
❷ >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❷ >>> minutesFirstPage = pdfReader.getPage[0]
❸ >>> pdfWatermarkReader = PyPDF2.PdfFileReader[open['watermark.pdf', 'rb']]
❹ >>> minutesFirstPage.mergePage[pdfWatermarkReader.getPage[0]]
❺ >>> pdfWriter = PyPDF2.PdfFileWriter[]
❻ >>> pdfWriter.addPage[minutesFirstPage]

❼ >>> for pageNum in range[1, pdfReader.numPages]:
           pageObj = pdfReader.getPage[pageNum]
           pdfWriter.addPage[pageObj]
   >>> resultPdfFile = open['watermarkedCover.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> minutesFile.close[]
   >>> resultPdfFile.close[]
8,
   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
❷ >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❷ >>> minutesFirstPage = pdfReader.getPage[0]
❸ >>> pdfWatermarkReader = PyPDF2.PdfFileReader[open['watermark.pdf', 'rb']]
❹ >>> minutesFirstPage.mergePage[pdfWatermarkReader.getPage[0]]
❺ >>> pdfWriter = PyPDF2.PdfFileWriter[]
❻ >>> pdfWriter.addPage[minutesFirstPage]

❼ >>> for pageNum in range[1, pdfReader.numPages]:
           pageObj = pdfReader.getPage[pageNum]
           pdfWriter.addPage[pageObj]
   >>> resultPdfFile = open['watermarkedCover.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> minutesFile.close[]
   >>> resultPdfFile.close[]
9 hoặc
   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
28 là gì?

Q

12. Làm thế nào để bạn tạo một đối tượng

   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
71 cho một tài liệu Word mới?

Q

13. Làm thế nào để bạn thêm một đoạn văn bản có nội dung

   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❶ >>> page = pdfReader.getPage[0]
❷ >>> page.rotateClockwise[90]
   {'/Contents': [IndirectObject[961, 0], IndirectObject[962, 0],
   --snip--
   }
   >>> pdfWriter = PyPDF2.PdfFileWriter[]
   >>> pdfWriter.addPage[page]
❸ >>> resultPdfFile = open['rotatedPage.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> resultPdfFile.close[]
   >>> minutesFile.close[]
81 vào một đối tượng
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
71 được lưu trữ trong một biến có tên là
   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❶ >>> page = pdfReader.getPage[0]
❷ >>> page.rotateClockwise[90]
   {'/Contents': [IndirectObject[961, 0], IndirectObject[962, 0],
   --snip--
   }
   >>> pdfWriter = PyPDF2.PdfFileWriter[]
   >>> pdfWriter.addPage[page]
❸ >>> resultPdfFile = open['rotatedPage.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> resultPdfFile.close[]
   >>> minutesFile.close[]
13?

Q

14. Những số nguyên nào biểu thị các cấp độ của tiêu đề có sẵn trong tài liệu Word?

Dự án thực hành

Để thực hành, hãy viết các chương trình thực hiện các công việc sau

PDF hoang tưởng

Sử dụng hàm

   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❶ >>> page = pdfReader.getPage[0]
❷ >>> page.rotateClockwise[90]
   {'/Contents': [IndirectObject[961, 0], IndirectObject[962, 0],
   --snip--
   }
   >>> pdfWriter = PyPDF2.PdfFileWriter[]
   >>> pdfWriter.addPage[page]
❸ >>> resultPdfFile = open['rotatedPage.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> resultPdfFile.close[]
   >>> minutesFile.close[]
84 từ Chương 9, viết một tập lệnh sẽ duyệt qua mọi tệp PDF trong một thư mục [và các thư mục con của nó] và mã hóa các tệp PDF bằng mật khẩu được cung cấp trên dòng lệnh. Lưu từng tệp PDF được mã hóa bằng _encrypted. pdf hậu tố được thêm vào tên tệp gốc. Trước khi xóa tệp gốc, hãy yêu cầu chương trình đọc và giải mã tệp để đảm bảo rằng tệp đã được mã hóa chính xác.

Sau đó, viết một chương trình tìm tất cả các tệp PDF được mã hóa trong một thư mục [và các thư mục con của nó] và tạo một bản sao của tệp PDF được giải mã bằng mật khẩu được cung cấp. Nếu mật khẩu không chính xác, chương trình sẽ in một thông báo cho người dùng và tiếp tục với tệp PDF tiếp theo

Lời mời tùy chỉnh dưới dạng tài liệu Word

Giả sử bạn có tệp văn bản tên khách. khách này. txt có một tên trên mỗi dòng, như sau.

   >>> import PyPDF2
   >>> pdf1File = open['meetingminutes.pdf', 'rb']
   >>> pdf2File = open['meetingminutes2.pdf', 'rb']
❶ >>> pdf1Reader = PyPDF2.PdfFileReader[pdf1File]
❷ >>> pdf2Reader = PyPDF2.PdfFileReader[pdf2File]
❸ >>> pdfWriter = PyPDF2.PdfFileWriter[]

   >>> for pageNum in range[pdf1Reader.numPages]:pageObj = pdf1Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

   >>> for pageNum in range[pdf2Reader.numPages]:pageObj = pdf2Reader.getPage[pageNum]pdfWriter.addPage[pageObj]

❽ >>> pdfOutputFile = open['combinedminutes.pdf', 'wb']
   >>> pdfWriter.write[pdfOutputFile]
   >>> pdfOutputFile.close[]
   >>> pdf1File.close[]
   >>> pdf2File.close[]
2

Viết chương trình tạo tài liệu Word với lời mời tùy chỉnh giống như

Vì Python-Docx chỉ có thể sử dụng những kiểu đã tồn tại trong tài liệu Word, trước tiên bạn sẽ phải thêm các kiểu này vào một tệp Word trống, sau đó mở tệp đó bằng Python-Docx. Nên có một lời mời trên mỗi trang trong tài liệu Word kết quả, vì vậy hãy gọi

   >>> import PyPDF2
   >>> minutesFile = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[minutesFile]
❶ >>> page = pdfReader.getPage[0]
❷ >>> page.rotateClockwise[90]
   {'/Contents': [IndirectObject[961, 0], IndirectObject[962, 0],
   --snip--
   }
   >>> pdfWriter = PyPDF2.PdfFileWriter[]
   >>> pdfWriter.addPage[page]
❸ >>> resultPdfFile = open['rotatedPage.pdf', 'wb']
   >>> pdfWriter.write[resultPdfFile]
   >>> resultPdfFile.close[]
   >>> minutesFile.close[]
39 để thêm dấu ngắt trang sau đoạn cuối của mỗi lời mời. Bằng cách này, bạn sẽ chỉ cần mở một tài liệu Word để in tất cả các lời mời cùng một lúc

Hình 13-11. Tài liệu Word được tạo bởi tập lệnh mời tùy chỉnh của bạn

Bạn có thể tải xuống mẫu khách. txt từ http. //Không có tinh bột. com/automatestuff/ .

Brute-Force PDF Password Breaker

Giả sử bạn có một tệp PDF được mã hóa mà bạn đã quên mật khẩu, nhưng bạn nhớ đó là một từ tiếng Anh. Cố gắng đoán mật khẩu đã quên của bạn là một nhiệm vụ khá nhàm chán. Thay vào đó, bạn có thể viết một chương trình sẽ giải mã PDF bằng cách thử mọi từ tiếng Anh có thể cho đến khi tìm thấy từ phù hợp. Đây được gọi là tấn công mật khẩu vũ phu. Tải xuống tệp văn bản từ điển. txt từ http. //Không có tinh bột. com/automatestuff/ . tệp từ điển này chứa hơn 44.000 từ tiếng Anh với mỗi từ một dòng.

Sử dụng các kỹ năng đọc tệp bạn đã học trong Chương 8, tạo danh sách các chuỗi từ bằng cách đọc tệp này. Sau đó lặp lại từng từ trong danh sách này, chuyển nó đến phương thức

   >>> import PyPDF2
   >>> pdfFile = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[pdfFile]
   >>> pdfWriter = PyPDF2.PdfFileWriter[]
   >>> for pageNum in range[pdfReader.numPages]:
           pdfWriter.addPage[pdfReader.getPage[pageNum]]

❶ >>> pdfWriter.encrypt['swordfish']
   >>> resultPdf = open['encryptedminutes.pdf', 'wb']
   >>> pdfWriter.write[resultPdf]
   >>> resultPdf.close[]
0. Nếu phương thức này trả về số nguyên
   >>> import PyPDF2
   >>> pdfFile = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[pdfFile]
   >>> pdfWriter = PyPDF2.PdfFileWriter[]
   >>> for pageNum in range[pdfReader.numPages]:
           pdfWriter.addPage[pdfReader.getPage[pageNum]]

❶ >>> pdfWriter.encrypt['swordfish']
   >>> resultPdf = open['encryptedminutes.pdf', 'wb']
   >>> pdfWriter.write[resultPdf]
   >>> resultPdf.close[]
4, thì mật khẩu đã sai và chương trình của bạn sẽ tiếp tục với mật khẩu tiếp theo. Nếu
   >>> import PyPDF2
   >>> pdfFile = open['meetingminutes.pdf', 'rb']
   >>> pdfReader = PyPDF2.PdfFileReader[pdfFile]
   >>> pdfWriter = PyPDF2.PdfFileWriter[]
   >>> for pageNum in range[pdfReader.numPages]:
           pdfWriter.addPage[pdfReader.getPage[pageNum]]

❶ >>> pdfWriter.encrypt['swordfish']
   >>> resultPdf = open['encryptedminutes.pdf', 'wb']
   >>> pdfWriter.write[resultPdf]
   >>> resultPdf.close[]
0 trả về
   >>> import PyPDF2
   >>> pdfReader = PyPDF2.PdfFileReader[open['encrypted.pdf', 'rb']]
❶ >>> pdfReader.isEncrypted
   True
   >>> pdfReader.getPage[0]
❷ Traceback [most recent call last]:
     File "", line 1, in 
       pdfReader.getPage[]
     --snip--
     File "C:\Python34\lib\site-packages\PyPDF2\pdf.py", line 1173, in getObject
       raise utils.PdfReadError["file has not been decrypted"]
   PyPDF2.utils.PdfReadError: file has not been decrypted
❸ >>> pdfReader.decrypt['rosebud']
   1
   >>> pageObj = pdfReader.getPage[0]
52, thì chương trình của bạn sẽ thoát ra khỏi vòng lặp và in mật khẩu bị tấn công. Bạn nên thử cả dạng viết hoa và viết thường của mỗi từ. [Trên máy tính xách tay của tôi, việc xem qua tất cả 88.000 từ viết hoa và viết thường từ tệp từ điển mất vài phút. Đây là lý do tại sao bạn không nên sử dụng một từ tiếng Anh đơn giản cho mật khẩu của mình. ]

Làm cách nào để phân tích cú pháp tệp docx trong python?

Phân tích cú pháp tài liệu Word bằng Python .
Bước 1. Nhập các gói của bạn. .
Bước 2. Phân tích cú pháp tài liệu XML. .
Bước 3. Khám phá XML cho các phần và văn bản bạn muốn. .
Bước 4. Tìm tất cả các đoạn. .
Bước 5. Tìm tất cả các phần “Heading 2”. .
Bước 6. Cuối cùng, trích xuất tiêu đề Heading 2 và văn bản tiếp theo

Làm cách nào để chuyển đổi tệp docx sang tệp txt trong python?

Cách chuyển đổi DOCX sang TXT .
Cài đặt 'Aspose. Từ cho Python thông qua. NET'
Thêm tham chiếu thư viện [nhập thư viện] vào dự án Python của bạn
Mở tệp DOCX nguồn bằng Python
Gọi phương thức 'save[]', chuyển tên tệp đầu ra có phần mở rộng TXT
Nhận kết quả chuyển đổi DOCX dưới dạng TXT

Làm thế nào để đọc docx trong gấu trúc?

Xử lý dữ liệu bảng thành pandas dataframe. Sử dụng các thuộc tính có sẵn của thư viện python-docx, đọc từng hàng của bảng và truy xuất văn bản từ từng ô và tạo danh sách python gồm danh sách chứa từng hàng. Then convert that python data structure to pandas DataFrame.

Mô-đun docx trong python là gì?

python-docx là thư viện Python để tạo và cập nhật Microsoft Word [. docx] tệp .

Chủ Đề