reportlab で A4横 PDF ファイルを作成


次のような A4横ファイルを作成する方法です。

gen_landscape.py
#! /usr/bin/python
# -*- coding: utf-8 -*-
#
#   gen_landscape.py
#
#                       Jan/11/2019
#
# ------------------------------------------------------------------
import  sys
#
from reportlab.pdfgen import canvas
from reportlab.pdfbase.pdfmetrics import registerFont
from reportlab.pdfbase.cidfonts import UnicodeCIDFont
from reportlab.lib.pagesizes import A4, landscape, portrait
from reportlab.pdfbase.ttfonts import TTFont
# ------------------------------------------------------------------
sys.stderr.write("*** 開始 ***\n")
#
file_out = sys.argv[1]
sys.stderr.write(file_out + "\n")
#
IPAG_TTF = "/usr/share/fonts/OTF/ipag.ttf"
TakaoMincho_TTF = "/usr/share/fonts/OTF/TakaoMincho.ttf"
TakaoGothic_TTF = "/usr/share/fonts/OTF/TakaoGothic.ttf"
#
registerFont(TTFont('ipag', IPAG_TTF))
registerFont(TTFont('takao_mincho', TakaoMincho_TTF))
registerFont(TTFont('takao_gothic', TakaoGothic_TTF))
#
pdf_canvas = canvas.Canvas(file_out,pagesize=landscape(A4))
#
ypos = 500
str_base="2019年1月11日"
str_base = "日本語でこんにちは! "
for font in ['ipag','takao_mincho','takao_gothic']:
    pdf_canvas.setFont(font, 30)
    str_out = str_base + font
    pdf_canvas.drawString(100, ypos, str_out)
    ypos -= 100
#
ypos = 200
str_base="2019年1月11日"
for font in ['ipag','takao_mincho','takao_gothic']:
    pdf_canvas.setFont(font, 15)
    str_out = str_base + "  " + font
    pdf_canvas.drawString(400, ypos, str_out)
    ypos -= 50
#
pdf_canvas.showPage()
pdf_canvas.save()
#
sys.stderr.write("*** 終了 ***\n")
# ------------------------------------------------------------------

実行方法

./gen_landscape.py out01.pdf

A4縦 PDF ファイルを作成する方法のサンプルはこちら
reportlab で PDF ファイルを作成