当前位置: 首页 > 知识库问答 >
问题:

PyPDF2-合并来自两个不同PDF文件的页面无效

侯焱
2023-03-14

我正在尝试将两个PDF文件中的页面合并为一个PDF和一个页面。因此,我尝试了下面使用PyPDF2的代码

from PyPDF2 import PdfFileReader,PdfFileWriter
import sys
f = sys.argv[1]
k = sys.argv[2]
print f,k
file1 = PdfFileReader(file(f, "rb"))
file2 = PdfFileReader(file(k, "rb"))
output = PdfFileWriter()
page = file1.getPage(0)
page.mergePage(file2.getPage(0))
output.addPage(page)
outputStream = file("join.pdf", "wb")
output.write(outputStream)
outputStream.close()

它生成一个文件和一个页面,其中包含来自文件1的第1页的内容,但我没有找到来自文件2的第1页的任何数据。似乎它没有被合并。

共有2个答案

须巴英
2023-03-14
def merge_page(self, output_pdf,*input_pdfs):
    a=len(input_pdfs)
    print (a)
    merge = PyPDF2.PdfFileMerger()
    outputStream = open(output_pdf, "wb")
    if a<2:
        raise Exception ("Need Atleast Two Pdf for Merging")

    else:
        for x in input_pdfs:
            merge.append(open(x,"rb"))
        merge.write(outputStream)
    outputStream.close()

对我来说,这段代码是在PyCharm中工作的,它可能需要n个pdf文件才能合并成单个pdf文件,但编号应该是2个或更多,否则会出现错误。

都建树
2023-03-14

在使用完全相同的代码,我能够得到两个PDF作为合并PDF在一个页面与第二个重叠的第一个,我参考了这个链接的详细信息。

而且,与其使用file(),不如根据这个Python文档使用open(),所以我这样做了。

此外,我对您的代码做了一些细微的更改,但在我的机器上仍然可以正常工作。我正在使用ubuntu16.04python2.7

代码如下:

from PyPDF2 import PdfFileReader,PdfFileWriter
import sys

f = sys.argv[1]
k = sys.argv[2]
print f, k
file1 = PdfFileReader(open(f, "rb"))
file2 = PdfFileReader(open(k, "rb"))
output = PdfFileWriter()
page = file1.getPage(0)
page.mergePage(file2.getPage(0))
output.addPage(page)

with open("join.pdf", "wb") as outputStream:
    output.write(outputStream)

我希望这有帮助。

更新:

下面是我的代码,它将两个pdf页面合并为一个页面。

from pyPdf import PdfFileWriter, PdfFileReader
from pdfnup import generateNup

initial_output = PdfFileWriter()
input1 = PdfFileReader(open("landscape1.pdf", "rb"))
input2 = PdfFileReader(open("landscape2.pdf", "rb"))

initial_output.addPage(input1.getPage(0))
initial_output.addPage(input2.getPage(0))

# creates a new pdf file with required pages as separate pages.
initial_output.write(file("final.pdf", "wb"))

# merges newly created pdf file pages as one.
generateNup("final.pdf", 2, "intermediate.pdf")

# overwrite and rotates the final.pdf
final_output = PdfFileWriter()
final_output.addPage(PdfFileReader(open("intermediate.pdf", "rb")).getPage(0).rotateClockwise(90)) 
final_output.write(open("final.pdf", "wb"))

我已经添加了一个新的代码,现在它也在旋转最终的pdf。您需要的输出PDF是final。pdf

这里是谷歌驱动器链接到我的驱动器的PDF文件。此外,我对pdfnup.py进行了轻微的更改,以便与我的系统兼容,如果您想使用相同的文件,您也可以在上面的驱动器链接中找到它。

 类似资料:
  • 我看了一个视频,学习如何将PDF文件合并成一个PDF文件。我试图修改一点代码,以便处理一个文件夹,其中有PDF文件主文件夹(Spyder)有,这是代码 我有一个名为的子文件夹进入主文件夹,在这个子文件夹中,我把PDF文件和子文件夹内的我创建了一个名为的文件夹。我得到了错误文件没有找到1.pdf虽然当打印的内循环,我得到了PDF名称。 错误的追溯

  • 我有一个pdf,里面总共有6页的图片。我想将第1页和第2页合并为单个pdf,以此类推,共3到6页。 我将所有6页的pdf拆分为单独的pdf。 从PyPDF2导入操作系统导入PdfFileReader、PdfFileWriter pdf_splitter: fname=os.path.splitext(os.path.basename(path))[0] if name=='main': path=

  • 我想合并几个pdf文件。我该怎么做? 到目前为止,我得到的是这个。 我正在尝试使用这个程序包myokyawhtun/PDFMerger。 根据我尝试合并的文件的不同,错误也会有所不同。 如果我尝试合并同一个pdf两次,则会生成该文件,但全部为空 如果我尝试上面的代码,就会得到HTTP错误500 如果我尝试使用更多文件,就会出现tcpdi_解析器内存不足错误 底线是它似乎不起作用。 我已经尝试了其他

  • 本文向大家介绍Linux使用join -a1来合并两个文件,包括了Linux使用join -a1来合并两个文件的使用技巧和注意事项,需要的朋友参考一下 要合并以下两个文件,一起合并在一起,合并到1.txt中 合并的后的1.txt Jerry 20 man Alice 30 woman David 40 上面的文件特点是有相同的,则合并,第二列缺少内容的。这个时候使用join -a1 1.txt 2

  • 我使用将PDF合并在一起,但遇到了一个问题。下面的代码抛出一个错误。我做错了什么?当我用注释掉一行时,它会正确地打印出文件路径。 文件“C:\test\pdftest.py”,第9行,合并中。在init self中添加(PdfFileReader(open(os.path.join(path,pdf),'rb'))文件“C:\python\lib\site packages\pypdf2-1.26

  • 我有一个png非压缩文件(600KBytes),我正试图保存为JPG,以减少android应用程序的大小。 null null 谢谢你。