Это будет быстрая запись о том, как использовать Pypdf2 Для чтения и записи файлов PDF. Он не только имеет возможность читать страницы, он также может прочитать и написать некоторые другие части файлов PDF, такие как закладки.
Основной процесс
Если вы просто хотите объединить кучу PDF-файлов, чтобы сделать один больший PDF-файл, то путь к этому идет несколько так:
from PyPDF2 import PdfFileWriter, PdfFileReader # ... file1 = PdfFileReader(file(filename1, "rb")) file2 = PdfFileReader(file(filename2, "rb")) output = PdfFileWriter() page1 = file1.getPage(specificPageIndex) page2 = file2.getPage(specificPageIndex) output.addPage(page1) output.addPage(page2) outputStream = file("document-output.pdf", "wb") output.write(outputStream) outputStream.close()
Здесь я объясню каждую строку процесса выше.
- Во-первых, мы импортируем
PdffileWriter
иPdffilereader
Из PypDF2 это классы, которые пишут и читают файлы PDF, соответственно. Есть также другой классPdffilemerger
Это отвечает за сочетание целых файлов в файл PDF. Основное отличие между pdffileWriter и pdffilemerger заключается в том, что pdffilemerger обходит объекты страницы и сбрасывает весь PDF в файл, в то время как PDFHILEWRITER позволяет добавлять определенные страницы с PDF и промывать их в файл. - Затем мы создаем объект pdffilereader из файла, открытого в двоичном режиме.
- Мы также построим PDFFILEWRISTER, ему не нужны какие-либо аргументы, переданные ему.
- В объектах pdffilereader мы можем использовать
GetPage ()
Чтобы получить доступ к странице PDF на указанном номере страницы. Это не всегда ярлык внизу страницы, поскольку некоторые PDF имеют нерешенные страницы и страницы, помеченные римскими цифрами, поэтому приведет к тому, что этикетки начнут маркировку от 1 нескольких страниц после первой страницы. addpage ()
Способ pdffileWriter вызывается, когда мы хотим добавить страницу , это требует объекта PDF страницы в качестве его аргумента.- Наконец мы называем
Написать ()
На PDFFILEWRITER, поставьте дескриптор открытого файла, чтобы написать файл PDF.
Дополнительные поля
Файл PDF содержит больше, чем просто страницы. Некоторые PDF имеют метки страницы на каждой странице или нет на метках на некоторых страницах, например, книги. В книгах некоторые страницы не должны быть помечены рядом. Другие страницы, такие как раздел введения, используйте буквы вместо номеров для маркировки. Эти этикетки страницы могут быть прочитаны из pdffilereader.
Закладки (наброски документов, по сути, оглавление) также можно прочитать из PDF, используя pdffilereader.
p = PdfFileReader(file(filename, "rb")) # Gets the document outline (bookmarks). Returns a nested # list of Destination objects. dest = p.getOutlines() # ... Sample Destination object >>> dest_obj.title "Appendix" >>> dest_obj.page 692 # Number of pages in the PDF file num = p.getNumPages() # The following demonstrates how to get the document information # of the PDF file >>> from PyPDF2 import PdfFileReader >>> inputPdf = PdfFileReader(open("test.pdf", "rb")) >>> docInfo = inputPdf.getDocumentInfo() >>> docInfo.author Anonymous >>> docInfo.creator Hewlett Packard MFP >>> docInfo.producer Acrobat Distiller 10.0.0 (Windows) >>> docInfo.title A Test >>> docInfo.subject testing
Иногда PDF зашифрован, что приведет к тому, что большинство функций выше, которые прочитают любые свойства или метаданные в нем. Вы можете расшифровать PDF, позвонив на расшифровать («пароль»)
Метод в PdFreadFile.
А также были сделаны
Это было легко, не так ли? Теперь вы можете манипулировать файлами PDF, добавив и удаляя страницы, которые вы хотите изменить, и чтение метаданных файлов PDF.
Если вы видите какие-либо ошибки здесь, пожалуйста, дайте мне знать, чтобы я мог их исправить.
Оригинал: “https://dev.to/zenulabidin/reading-and-writing-pdfs-in-python-nnp”