Python PyPDF2文件的完整克隆

Python PyPDF2文件的完整克隆,python,pdf,pypdf2,Python,Pdf,Pypdf2,我试图使用PyPDF2复制整个PDF,下面的代码复制内容,但不复制PDF的大纲 并使用如下代码python test.py 这是我目前掌握的代码 from PyPDF2 import PdfFileWriter, PdfFileReader import sys import os.path def main(argv): if not os.path.isfile(argv[0]) and \ not os.path.isfile(argv[1]): prin

我试图使用PyPDF2复制整个PDF,下面的代码复制内容,但不复制PDF的大纲

并使用如下代码
python test.py

这是我目前掌握的代码

from PyPDF2 import PdfFileWriter, PdfFileReader
import sys
import os.path

def main(argv):
    if not os.path.isfile(argv[0]) and \
    not os.path.isfile(argv[1]):
        print("Invalid path")
        sys.exit()
    input_pdf = PdfFileReader(open(argv[0], "rb"))
    output_pdf = PdfFileWriter()
    input_pdf_pages = input_pdf.getNumPages()
    for i in range(0, input_pdf_pages):
        output_pdf.addPage(input_pdf.getPage(i))
    output_pdf.write(open(argv[1], "wb"))

if __name__ == "__main__":
    main(sys.argv[1:])

PdfFileWriter
确实有许多复制整个文件的方法:
appendPagesFromReader
cloneReaderDocumentRoot
cloneDocumentFromReader


但是,我也不能让它们正常工作。;-)你可能会有更好的运气。

可能不是100%精确的复制品,但是

for i in range(input_pdf.getNumPages()): output_pdf.addPage(input_pdf.getPage(i))

如果你想得到一个完美的副本,为什么不复制整个文件呢?我正在尝试修改pdf的内容,但第一步是制作一个正确的pdf副本。问题中已经提到了这一点:
for I in range(0,input\u pdf\u pages):output\u pdf.addPage(input\u pdf.getPage(I))
。在回答问题之前,一定要仔细阅读问题。