PDFの3ページ毎に空白ページを挿入して、両面印刷したいという要望がありました。
何のことでしょうか?
小中学校では全国学力テスト(全国学力・学習状況調査)というものがあります。
6年生では国語と算数、中学生では国語と数学と英語です。
テストの結果は個人票というPDFになって返ってくるのですが、学年単位です。
6年生は1ページ目に国語、2ページ目に算数、3ページ目は次の児童の国語。
この場合、両面印刷が可能です。
しかし、中学生では3ページ目に英語、4ページ目に次の生徒の国語というPDFになっています。
中学生全員分3ページずつ両面印刷しないといけない???
というわけでPDFの4ページ目に空白ページを挿入して、両面印刷する方法をやってみました。
残念ながらPythonなどプログラム記述を利用するため、難しいめの方法となっています!
・全国学力テスト 中学校 個人票 両面印刷
・PDFに空白ページを挿入する
・pdf 空白ページ 追加 フリー
①前提
今回の環境についてです。
・Windows10
・Python 3.11.5
・PyPDF2
②ファイルの準備をする
後々にファイルの指定がわかりやすいようにデスクトップに置きました。
・input.pdf
元となる入力PDFファイル。とりあえず7ページ目まで作成しました。
・blank.pdf
白紙1ページのPDFファイル。
・pdf.py
Pythonのプログラムファイル。
参考:Pythonのプログラム(pdf.py)の作成
メモ帳を開いて以下のプログラムを入力しました。
import PyPDF2
input_pdf = "input.pdf" # 入力PDFファイル名
output_pdf = "output.pdf" # 出力PDFファイル名
blank_pdf = "blank.pdf" # 空白ページファイル
# PDFファイルを読み込む
with open(input_pdf, 'rb') as pdf_file, open(blank_pdf, 'rb') as blank_file:
pdf_reader = PyPDF2.PdfReader(pdf_file)
blank_reader = PyPDF2.PdfReader(blank_file)
pdf_writer = PyPDF2.PdfWriter()
# 1ページ目をコピー
first_page = pdf_reader.pages[0]
pdf_writer.add_page(first_page)
# 3ページごとに1ページの空白ページを挿入
for page_num in range(1, len(pdf_reader.pages)):
# 空白ページを挿入
if (page_num) % 3 == 0:
blank_page = blank_reader.pages[0]
pdf_writer.add_page(blank_page)
# 元のページをコピー
page = pdf_reader.pages[page_num]
pdf_writer.add_page(page)
# 出力PDFファイルに保存
with open(output_pdf, 'wb') as output_file:
pdf_writer.write(output_file)
print(f"{output_pdf} を作成しました。")
プログラムはメモ帳を保存する時に「pdf.py」という名前にしました。
③Pythonのダウンロード&インストール
以下のURLからPythonのダウンロード
https://www.python.org/downloads/windows/
記事作成時はPython 3.11.5でした。
Download Windows installer(64-bit)を利用してインストールしました。
④コマンドプロンプトの起動
スタートメニュー > Windowsシステムツール > コマンドプロンプト
起動後
C:¥Users¥(ユーザー名)>
という表示になっています。
⑤「PyPDF2 ライブラリ」のインストール
コマンドプロンプト上でPDFのためのセットをインストールします。
さきほどのC:¥Users¥(ユーザー名)>の続きに、以下を入力します。
pip install PyPDF2
入力ができたら、Enterを押すとインストールが開始されます。
⑥コマンドプロンプトでデスクトップに移動。
コマンドプロンプト上でデスクトップに移動します。
C:¥Users¥(ユーザー名)>の続きに、以下を入力します。
cd desktop
Enterを押すと
C:¥Users¥(ユーザー名)\Desktop>
という状態になります。
⑦Python(pdf.py)を指定する
デスクトップ上にあるpdf.pyを指定します。
pdf.py
⑧完成
デスクトップにoutput.pdfが作成されています。
3ページ毎に空白ページが挿入されました!
何かありましたらコメントください。
お読みいただきありがとうございます。
コメント