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

如何将pdf文件中的两页合并为一页

柯瀚海
2023-03-14

我有一个pdf,里面总共有6页的图片。我想将第1页和第2页合并为单个pdf,以此类推,共3到6页。

我将所有6页的pdf拆分为单独的pdf。

从PyPDF2导入操作系统导入PdfFileReader、PdfFileWriter

pdf_splitter: fname=os.path.splitext(os.path.basename(path))[0]

pdf = PdfFileReader(path)
for page in range(pdf.getNumPages()):
    pdf_writer = PdfFileWriter()
    pdf_writer.addPage(pdf.getPage(page))

    output_filename = '{}_page_{}.pdf'.format(
        fname, page+1)

    with open(output_filename, 'wb') as out:
        pdf_writer.write(out)

    print('Created: {}'.format(output_filename))

if name=='main': path='D:\Task\Samples\fw9.pdf'pdf_splitter(path)

我想知道如何将fw9的第1页和第2页合并为一个pdf文件,该文件只包含一个页面,其中一半页面为fw9 pdf文件的第1页,另一半页面为fw9 pdf文件的第2页。我必须对所有6页进行此操作,1-2页为1页,1页为pdf,3-4页为另一个pdf,只有1页,两者在同一页上,依此类推。如果有人知道怎么做,请帮忙。

共有1个答案

颛孙和颂
2023-03-14

库pyPDF2也有一个PdfFileMerger对象,它应该做你想要的。

从这里的示例中,您可以创建一个PdfFileMerger,读取两个页面并将它们放入一个文件中。

我稍微改变了你的脚本,以创建也文件与页面0-1, 2-3, 4-5ecc...(当然第0页是第一页,但python编号从0开始)

import os
from PyPDF2 import PdfFileReader, PdfFileWriter, PdfFileMerger

def pdf_splitter(path): 

    fname = os.path.splitext(os.path.basename(path))[0]

    pdf = PdfFileReader(path)
    input_paths = []
    for page in range(pdf.getNumPages()):
        pdf_writer = PdfFileWriter()
        pdf_writer.addPage(pdf.getPage(page))
        output_filename = '{}_page_{}.pdf'.format(fname, page+1)
        input_paths.append(output_filename)
        with open(output_filename, 'wb') as out:
            pdf_writer.write(out)

        print('Created: {}'.format(output_filename))

        # every 2 pages! 
        # Change the two if you need every other number of pages!
        if page % 2 == 1:
            pdf_merger = PdfFileMerger() #create pdfilemerger
            for path in input_paths: 
                pdf_merger.append(path) #read the single pages

            # we call it pages_N-1_N, so first would be pages_0_1!
            output_path = '{}_pages_{}_{}.pdf'.format(fname, page-1, page)
            with open(output_path, 'wb') as fileobj:
                pdf_merger.write(fileobj) # write the two pages pdf!

            input_paths = []

if __name__ == '__main__': 

    path = 'D:\Tasks\Samples\fw9.pdf' 
    pdf_splitter(path)

这是你想要的吗?

这将首先为每个页面创建单个pdf,然后将它们2组合到2。创建单个pdf也可以跳过,但我不确定你是否想要它。

 类似资料:
  • 问题内容: 如何使用Java合并两个WAV文件? 我试过了,但是没有正常工作,他们还有其他方法吗? 问题答案: 如果直接使用wav文件的字节,则可以在任何编程语言中使用相同的策略。对于此示例,我将假设两个源文件具有相同的比特率/数字通道,并且具有相同的长度/大小。(否则,您可能可以在开始合并之前对其进行编辑)。 首先看一下WAV规范,我在斯坦福课程网站上找到了一个很好的人: 常见的标头长度为44或

  • 问题内容: 如何将多个PDF文件合并/转换为一个大PDF文件? 我尝试了以下操作,但是目标文件的内容不符合预期: 我需要一个非常简单/基本的命令行(CLI)解决方案。最好的办法是,如果我可以将合并/转换的输出直接传送到管道中(就像我之前在这里提出的问题中最初尝试的那样:Linux管道(convert->pdf2ps-> lp)。 问题答案: 抱歉,我设法使用Google自己找到了答案,还有些运气:

  • //步骤1:创建文档-对象文档Document=new Document(); 提前道谢。

  • 问题内容: 我有一张桌子 但是我希望输出如下(我想使用此输出与其他一些表进行内部联接) 我已经调查过,但不确定如何使用它。 问题答案: 这种转换称为 枢轴 。您没有指定要使用的数据库,但是可以在任何系统中使用带有表达式的聚合函数: 参见带有演示的SQL Fiddle 根据您的数据库,如果您可以同时访问和函数,则可以使用它们来获取结果。该函数将和列转换为行。完成后,您可以使用函数创建四个新列: 请参

  • 我正在尝试将两个PDF文件中的页面合并为一个PDF和一个页面。因此,我尝试了下面使用PyPDF2的代码: 它生成一个文件和一个页面,其中包含来自文件1的第1页的内容,但我没有找到来自文件2的第1页的任何数据。似乎它没有被合并。