我被要求创建一个由(许多)不同文档的第一页的重复页面组成的PDF文档.我需要在中间留个空格.

示例:给定PDF文档AB,我的新文档可能是

A1 A1 A1 ... A1  blank blank blank  B1 B1 B1 B1 ... B1
<---- N times->  <-- N blanks --->  <----- N times -->

Python是我最初使用的工具,但不是必需的.只是不能访问C等.

我已经准备好了最初的部分.我的问题是我怎么才能做到add the blank pages? PdfFileMerger没有用于添加空白页的属性.

我不希望仅为此目的而创建单独的PDF文档.我不会修改源PDF以将空白页添加为suggested here

我应该注意到,目前,A和B是单页PDF.但我可能会被要求从源文档中获取某一页.

Select 的库是打开的,只是发现PdfFileMerger正在工作.

from PyPDF2 import PdfFileMerger

merged = PdfFileMerger()

# example: 20 of each A and B
docs = [(20, "A.pdf"),
        (20, "B.pdf") ]

blankpagecount = 3

for p in docs:
    numpages = p[0]
    docname  = p[1]
    for i in range(numpages):
        merged.append(docname)
    # --- no property for adding blank page
    #for i in range(blankpagecount):
    #    merged.addBlankPage()

merged.write("mergeddoc2.pdf")
merged.close()

推荐答案

如果你使用的是PyMuPDF,那就是超级简单、超级快速:

import fitz  # PyMuPDF

N = 5
A = fitz.open("A.pdf")  # PDF A
B = fitz.open("B.pdf")  # PDF B
doc = fitz.open()  # output PDF

for i in range(N):  # insert page 0 from A for N times
    doc.insert_pdf(A, from_page=0, to_page=0)

for i in range(N):  # insert N blank pages
    doc.insert_page(-1)

for i in range(N):  # append page 0 from B for N times
    doc.insert_pdf(B, from_page=0, to_page=0)

doc.ez_save("output.pdf")  # save output with decent compression

Python相关问答推荐

aiohTTP与pytest的奇怪行为

隐藏QComboBox的指示器(qdarkstyle)

Docker-compose:为不同项目创建相同的容器

"如果发生特定错误,返回值

机器人与Pyton Minecraft服务器状态不和

无法使用python.h文件; Python嵌入错误

当密钥是复合且唯一时,Pandas合并抱怨标签不唯一

我必须将Sigmoid函数与r2值的两种类型的数据集(每种6个数据集)进行匹配,然后绘制匹配函数的求导.我会犯错

将numpy数组存储在原始二进制文件中

追溯(最近最后一次调用):文件C:\Users\Diplom/PycharmProject\Yolo01\Roboflow-4.py,第4行,在模块导入roboflow中

Excel图表-使用openpyxl更改水平轴与Y轴相交的位置(Python)

Julia CSV for Python中的等效性Pandas index_col参数

当从Docker的--env-file参数读取Python中的环境变量时,每个\n都会添加一个\'.如何没有额外的?

如何从数据库上传数据到html?

形状弃用警告与组合多边形和多边形如何解决

如何在UserSerializer中添加显式字段?

创建可序列化数据模型的最佳方法

改进大型数据集的框架性能

isinstance()在使用dill.dump和dill.load后,对列表中包含的对象失败

为什么if2/if3会提供两种不同的输出?