2018年3月14日水曜日

python PDFで横断幕

最近、またpythonにハマリだしたので、プログラムを作りました。

PDF 1ページに一文字を出力するプログラムです。

店舗の窓に並べて貼れば、横断幕のできあがりです。

以下のコードでは、"みらさまのなぐりがき"が 1ページに一文字ずつ出力されます。
実行には、reportlabというモジュールが必要です。

# -*- coding: utf-8 -*-

from reportlab.pdfgen import canvas
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.cidfonts import UnicodeCIDFont
from reportlab.lib.units import cm


pdfFile = canvas.Canvas('./みらさま.pdf')
pdfFile.saveState()

pdfFile.setAuthor('みらさま')
pdfFile.setTitle('みらさまのなぐりがき')
pdfFile.setSubject('横断幕')

# A4
pdfFile.setPageSize((21.0*cm, 29.7*cm))
# B5
# pdfFile.setPageSize((18.2*cm, 25.7*cm))



pdfmetrics.registerFont(UnicodeCIDFont('HeiseiKakuGo-W5'))
pdfFile.setFont('HeiseiKakuGo-W5', 21.0*cm)

title='みらさまのなぐりがき' #書きたい文字
h=(29.7-21.0)/2.0*cm
for moji in title:
    pdfFile.setFont('HeiseiKakuGo-W5', 21.0*cm)
    pdfFile.setFillColorRGB(1.0,0.5,0.3) #文字色の指定
    pdfFile.drawString(0*cm, h, moji)
    pdfFile.showPage()
   
pdfFile.save()

0 件のコメント:

コメントを投稿