0
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 の PDF に変換

Last updated at Posted at 2021-04-15

例えば 10ページの A4 の PDF を、5ページの A3 の PDF に変換します。

pdf_a4_a3.py
#! /usr/bin/python3
#
#	pdf_a4_a3.py
#
#					Feb/1/2023
#
import  sys
import  PyPDF2
from PyPDF2 import Transformation
#
# ------------------------------------------------------------------
def pdf_merge_proc(pdf_reader1):
#	pages= pdf_reader1.getNumPages()
	pages= len(pdf_reader1.pages)
	nn_out = int((pages + 1) / 2)
	sys.stderr.write("pages = %d\n" % pages)
	sys.stderr.write("nn_out = %d\n" % nn_out)
#
	pdf_writer = PyPDF2.PdfWriter()
#
	for icount in range(nn_out):
		it = icount * 2
#		page_obj_a = pdf_reader1.getPage(it)
		page_obj_a = pdf_reader1.pages[it]


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

		page_obj_out.merge_page(page_obj_a)

		jt = it + 1
		if jt < pages:
			page_obj_b = pdf_reader1.pages[jt]
			page_obj_b.add_transformation(Transformation().translate(595, 0));
			page_obj_out.merge_page(page_obj_b,expand=True);
#
		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 = sys.argv[1]
pdf_out = sys.argv[2]
#
pdf_file_in = open(pdf_in, 'rb')
pdf_reader1 = PyPDF2.PdfReader(pdf_file_in)
#
pdf_writer = pdf_merge_proc(pdf_reader1)
#
pdf_output_file = open(pdf_out, 'wb')
pdf_writer.write(pdf_output_file)
pdf_output_file.close()
pdf_file_in.close()
#
sys.stderr.write ("*** 終了 ***\n")
# ------------------------------------------------------------------

実行方法

./pdf_a4_a3.py file_a4_in.pdf file_a3_out.pdf

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

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

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

0
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
0
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?