我只是尝试使用 python 合并一些 PDF 文件,更具体地说是 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
我尝试了不同的输入路径的方法,我尝试了相对路径、绝对路径以及将它们解析到另一个文件中,但没有任何成功。
我正在使用 python 3.8 并使用 Linux Ubuntu 20.04。
如果有任何帮助,我将不胜感激。