1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Python3: A4 の PDF をマージして A3 にする

Last updated at Posted at 2018-03-06

A4 のファイルを左右に並べて A3 にします。

pdf_merge.py
#! /usr/bin/python
#
#	pdf_merge.py
#
#					   Jan/31/2023
#
import  sys
import  PyPDF2
from PyPDF2 import Transformation
#
# ------------------------------------------------------------------
def show_size_proc(page_obj_in):
	print(page_obj_in.artbox.lower_left)
	print(page_obj_in.artbox.lower_right)
	print(page_obj_in.artbox.upper_left)
	print(page_obj_in.artbox.upper_right)
# ------------------------------------------------------------------
def pdf_merge_proc(pdf_reader1,pdf_reader2):
	page_obj_a = pdf_reader1.pages[0]
	page_obj_b = pdf_reader2.pages[0]

	show_size_proc(page_obj_a)

	page_obj_out = PyPDF2.PageObject.create_blank_page(width=1190, height=842)
	page_obj_out_bb = PyPDF2.PageObject.create_blank_page(width=1190, height=842)

	page_obj_out.merge_page(page_obj_a)

	op = Transformation().translate(tx=595, ty=0)
	page_obj_out_bb.merge_page(page_obj_b)
	page_obj_out_bb.add_transformation(op)
	page_obj_out.merge_page(page_obj_out_bb) 
#
	show_size_proc(page_obj_out)
#
	pdf_writer = PyPDF2.PdfWriter()
	pdf_writer.add_page(page_obj_out)
#
	return pdf_writer
# ------------------------------------------------------------------
sys.stderr.write ("*** 開始 ***\n")
sys.stderr.write("PyPDF2.__version__ = %s\n" % PyPDF2.__version__)
pdf_in_a = sys.argv[1]
pdf_in_b = sys.argv[2]
pdf_out = sys.argv[3]
#
pdf_file1 = open(pdf_in_a, 'rb')
pdf_file2 = open(pdf_in_b, 'rb')
pdf_reader1 = PyPDF2.PdfReader(pdf_file1)
pdf_reader2 = PyPDF2.PdfReader(pdf_file2)
#
pdf_writer = pdf_merge_proc(pdf_reader1,pdf_reader2)
#
pdf_output_file = open(pdf_out, 'wb')
pdf_writer.write(pdf_output_file)
#
pdf_file1.close()
pdf_file2.close()
pdf_output_file.close()
#
sys.stderr.write ("*** 終了 ***\n")
# ------------------------------------------------------------------

実行コマンド
入力 in01.pdf (A4) in02.pdf (A4)
出力 out01.pdf (A3)

./pdf_merge.py in01.pdf in02.pdf out01.pdf

実行結果

$ ./pdf_merge.py in01.pdf in02.pdf out01.pdf
*** 開始 ***
PyPDF2.__version__ = 3.0.1
(0, 0)
(595.2756, 0)
(0, 841.8898)
(595.2756, 841.8898)
(0, 0)
(1190, 0)
(0, 842)
(1190, 842)
*** 終了 ***

次のバージョンで確認しました。

$ python --version
Python 3.10.7
>>> import  PyPDF2
>>> PyPDF2.__version__
'3.0.1'
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?