Python
PDF
PyPDF2

A4のPDFをA3に2面付(2in1)する -- Python(PyPDF2)

A4のPDFを左右に並べてA3で書き出します。
2in1 とか 2UP とか言うんですかね?

A4-2in1-Simple.py
import PyPDF2

a3_width = 1190.5511811024
a3_height = 841.8897637795

pdf_file = open('A4.pdf','rb')
pdf_reader = PyPDF2.PdfFileReader(pdf_file)
page_obj = pdf_reader.getPage(0)

# A3 の台紙を生成
base_page = PyPDF2.pdf.PageObject.createBlankPage(width=a3_width, height=a3_height)
# A3の左にPDFを配置
base_page.mergePage(page_obj)
# A3の右にPDFを配置
base_page.mergeRotatedScaledTranslatedPage(page_obj, 0, 1, a3_width / 2, 0, expand=False)

pdf_writer = PyPDF2.PdfFileWriter()
pdf_writer.addPage(base_page)

pdf_output_file = open('A3-2in1.pdf','wb')
pdf_writer.write(pdf_output_file)

pdf_output_file.close()
pdf_file.close()

Acrobat等のアプリケーションでも可能ですが、余白がついてしまい100%等倍で出力できません。
イラストレーターだと処理できますが、重いアプリ立ち上げたくないケースもありますよね?

ネットで検索しても、あまりヒットしなかったので、「退屈なことはPythonにやらせよう」のサンプルコードとPyPDF2のドキュメントを参考にして書いてみました。

A3用紙の(ポイント)サイズは、イラストレーターで作成したA3のドキュメントのサイズをAppleScriptで取得した数値です。

getDocSize.scpt
tell application "Adobe Illustrator"
    tell document 1
        {width, height}
    end tell
end tell