Я просто пытаюсь объединить некоторые файлы PDF, используя python, а точнее PyPDF2. Достаточно просто, но почему-то выдает ошибку, которую просто не понимаю.
В поисках решения я обнаружил, что эта проблема была и у других людей. Однако для меня не было опубликовано удовлетворительное решение.
Мой код для слияния файлов:
from PyPDF2 import PdfFileMerger
def merge(self, work_files, destination_file):
pdf_merger = PdfFileMerger()
for pdf in work_files:
pdf_merger.append(pdf)
#also tried the following with the same results:
#with open(pdf, 'wb') as fileobj:
#merger.append(fileobj)
with open(destination_file, 'wb') as fileobj:
pdf_merger.write(fileobj)
, тогда как work_files
- это список путей к PDF-файлам для слияния и destination_file
это файл, в который предполагается сохранить объединенный PDF-файл.
Это приводит к следующей ошибке (полная трассировка стека предоставляется по запросу):
Traceback (most recent call last):
File "main.py", line 9, in <module>
merger.append(fileobj)
File "/home/user/.local/lib/python3.8/sitepackages/PyPDF2/merger.py",line 203,
in append
self.merge(len(self.pages), fileobj, bookmark, pages,
import_bookmarks)
File "/home/user/.local/lib/python3.8/site-
packages/PyPDF2/merger.py",
line 133, in merge
pdfr = PdfFileReader(fileobj, strict=self.strict)
File "/home/user/.local/lib/python3.8/site-
packages/PyPDF2/pdf.py", line 1084,
in __init__
self.read(stream)
File "/home/user/.local/lib/python3.8/site
packages/PyPDF2/pdf.py", line 1689,
in read
stream.seek(-1, 2)
OSError: [Errno 22] Invalid argument
Я пробовал разные способы ввода paths, я пробовал относительные пути, абсолютные пути, а также безуспешно разбирал их в другой файл.
Я использую python 3.8 и работаю с Linux Ubuntu 20.04.
Буду благодарен за любую помощь.