Python PDF-слияние - Как сохранить исходное имя файла и работать массово - PullRequest
0 голосов
/ 10 июля 2020

Заранее спасибо за помощь. Я искал решение, но мне кажется, что то, что я ищу, всегда немного отличается от любых найденных мною сообщений.

Мне нужно добавить одну титульную страницу ( pdf) в тысячи локальных PDF-файлов. У меня есть каталог с тысячами PDF-файлов, к которым нужно добавить одну титульную страницу. Заглавная страница будет одинаковой на каждой итерации, но уловка в том, что мне нужно сохранить имя файла исходного PDF-файла, в который я добавляю титульную страницу.

Я думал, что это было бы достаточно просто пролистать oop через мой каталог, сохранить текущее имя файла, слить PDF-файл перед ним, вывести как имя файла, которое было сохранено как переменную в другом каталоге.

I смог придумать сценарий, который объединит все файлы в текущем каталоге, но я наткнулся на стену с прогрессом. Вот код на данный момент.

from PyPDF2 import PdfFileMerger
import glob
import os

pdf_files = glob.glob("./*.pdf")

output_pdf = "PDF-Output.pdf"

merger = PdfFileMerger()

for pdf in pdf_files:
    merger.append(open(pdf, 'rb'))

with open(output_pdf, 'wb') as fout:
    merger.write(fout)

print("PDF Merge success.")

Любая помощь будет принята с благодарностью!

1 Ответ

0 голосов
/ 10 июля 2020

Предполагается, что у вас есть титульный лист, сохраненный в title.pdf. Затем вам нужно объединить титульную страницу и каждый PDF-файл.

from PyPDF2 import PdfFileMerger, PdfFileReader
import glob
import os

title_file = "./title.pdf"
pdf_files = glob.glob("./*.pdf")

for name in pdf_files:
    if name is not title_file:
        merger = PdfFileMerger()
        merger.append(PdfFileReader(title_file, 'rb')
        merger.append(PdfFileReader(name, 'rb')
        merger.write(name)
        merger.close()
    

Это перебирает все файлы в pdf_files и добавляет к ним титульную страницу. Затем он сохраняет файл под его старым именем, перезаписывая старый файл.

Я настоятельно рекомендую сделать резервную копию перед запуском этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...