いくつかのロックされたPDFをマージする必要があり、すべての入力PDFが出力PDFの奇数ページから始まるようにしたいと思います。
例:A.pdf
3ページがあります。B.pdf
4ページあります。私欲しくない私の出力には7ページがあります。私が望むのは、1-3ページがから出て、A.pdf
4ページが空で、5-8ページがから出る8ページPDFですB.pdf
。どうすればいいですか?
pdftkについて知っていますが、マニュアルページにそのようなオプションがありません。
ベストアンサー1
これpypdfライブラリPythonコードを書こうとすると、これらの作業は簡単になります。以下のコードをpdf-cat-even
(または必要に応じて)スクリプトに保存して実行可能にし、(chmod +x pdf-cat-even
)実行して出力をファイルにリダイレクトします。./pdf-cat-even a.pdf b.pdf >concatenated.pdf
現在のバージョンのpypdfはパイプへの書き込みをサポートしていません。
#!/usr/bin/env python3
import copy, sys
from pypdf import PdfWriter, PdfReader
output = PdfWriter()
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 = PdfReader(filename)
for p in input.pages:
# This code is executed for every input page in turn
output.add_page(p)
output_page_number += 1
while output_page_number % alignment != 0:
output.add_blank_page()
output_page_number += 1
output.write(sys.stdout.buffer)