我需要合并一些打瞌睡的 pdf,我希望所有输入 pdf 都从输出 pdf 的奇数页开始。
示例:A.pdf
有 3 页,B.pdf
有 4 页。我不希望我的输出有 7 页。我想要的是一个 8 页的 pdf,其中第 1-3A.pdf
页来自,第 4 页是空的,第 5-8 页来自B.pdf
. 我怎样才能做到这一点?
我知道 pdftk,但我在手册页中没有找到这样的选项。
如果您愿意编写一些 Python ,PyPdf 库可以使这类事情变得简单。将下面的代码保存在一个名为pdf-cat-even
(或任何您喜欢的脚本)的脚本中,使其可执行 ( chmod +x pdf-cat-even
),并将其作为过滤器 ( ./pdf-cat-even a.pdf b.pdf >concatenated.pdf
) 运行。你需要 pyPdf ?1.13 的addBlankPage
方法。
#!/usr/bin/env python
import copy, sys
from pyPdf import PdfFileWriter, PdfFileReader
output = PdfFileWriter()
output_page_number = 0
alignment = 2 # to align on even pages
for filename in sys.argv[1:]:
# This code is executed for every file in turn
input = PdfFileReader(open(filename))
for p in [input.getPage(i) for i in range(0,input.getNumPages())]:
# This code is executed for every input page in turn
output.addPage(p)
output_page_number += 1
while output_page_number % alignment != 0:
output.addBlankPage()
output_page_number += 1
output.write(sys.stdout)
Run Code Online (Sandbox Code Playgroud)