【Python】挿入する文字のスペースを調整する|ReportLab基礎

挿入する文字のスペースを調整する|ReportLab基礎_アイキャッチ プログラミング

※ 当サイトはアフィリエイト広告を利用しています。

levtech-ad
スポンサーリンク

ReportLabを使用すると、Pythonを使用してPDFに挿入する文字のスペースを調整することができます。

本記事では、ReportLabを使用した、PDFに挿入する文字のスペースを調整する方法について、詳しくご説明します。

こんな人に読んでほしい
  • Pythonを使用したPDFの操作方法を知りたい人
  • PDFに挿入する文字のスペースを調整する方法を知りたい人
levtech-ad

ReportLabとは

ReportLabは、Pythonを使用してPDFを操作するための外部ライブラリの1つです。

PDF操作用ライブラリは他にも、PyPDF4PDFMinerなどいくつか存在します。

それぞれのライブラリの用途は、以下の通りです。

ライブラリ用途
ReportLab・PDFの新規作成
PDFMiner・テキストの抽出
PyPDF4・画像の抽出
・PDFファイルの結合や分割
・しおり(目次)の追加

本記事では、ReportLabによる、PDFに挿入する文字のスペースを調整する方法をご紹介します。

ReportLabのインストール

「ReportLab」は、以下コマンドを入力することで、インストールすることができます。

コマンドの入力は、コマンドプロンプトあるいはターミナルから行います。

pip install reportlab

動作確認として、試しに以下を入力します。

from reportlab.pdfgen import canvas

上記を入力してもエラーが発生しなければ、正常にインストールされています。

PDFに挿入する文字のスペースを調整する

文字スペースの調整

reportlab.pdfgen」クラスのcanvas.Canvas()で用意したPDFに対して、setWordSpace()を使用することで、文字スペースを調整することができます。

見比べ易いように、文字スペースを複数指定した例を、以下にご紹介します。

#input
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import A4, portrait, landscape
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.cidfonts import UnicodeCIDFont
from reportlab.lib.units import mm
import os
from reportlab.lib.colors import deeppink

# A4(横)の新規PDFファイルを作成
p = canvas.Canvas("sample.pdf", pagesize=landscape(A4))

# 文章指定
sentence = ["When I find myself in times of trouble", 
            "Mother Mary comes to me",
            "Speaking words of wisdom",
            "Let it be"]

# 文字スペースの指定
textobject = p.beginText()
textobject.setTextOrigin(30*mm, 130*mm)
textobject.setFont("Helvetica-Bold", 36)
wordspace = 0
textobject.setFillColor(deeppink)
for line in sentence:
    textobject.setWordSpace(wordspace)
    textobject.textLine("%s: %s" %(wordspace,line))
    wordspace = wordspace+10

# 文字の挿入
p.drawText(textobject)

# 保存
p.showPage()
p.save()
文字スペースの調整

行間スペースの調整

reportlab.pdfgen」クラスのcanvas.Canvas()で用意したPDFに対して、setLeading()を使用することで、行間スペースを調整することができます。

行間スペースを複数指定した例を、以下にご紹介します。

#input
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import A4, portrait, landscape
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.cidfonts import UnicodeCIDFont
from reportlab.lib.units import mm
import os
from reportlab.lib.colors import deeppink

# A4(横)の新規PDFファイルを作成
p = canvas.Canvas("sample.pdf", pagesize=landscape(A4))

# 文章指定
sentence = ["When I find myself in times of trouble", 
            "Mother Mary comes to me",
            "Speaking words of wisdom",
            "Let it be"]

# 行間スペースの指定
textobject = p.beginText()
textobject.setTextOrigin(30*mm, 150*mm)
textobject.setFont("Helvetica-Bold", 36)
leading = 50
textobject.setFillColor(deeppink)
for line in sentence:
    textobject.setLeading(leading)
    textobject.textLine("%s: %s" %(leading,line))
    leading = leading+50

# 文字の挿入
p.drawText(textobject)

# 保存
p.showPage()
p.save()
行間スペースの調整

まとめ

この記事では、ReportLabを使用した、PDFに挿入する文字のスペースを調整する方法について、ご説明しました。

本記事を参考に、ぜひ試してみて下さい。

参考

Python学習用おすすめ教材

Pythonの基本を学びたい方向け

統計学基礎を学びたい方向け

Pythonの統計解析を学びたい方向け

おすすめプログラミングスクール

Pythonをはじめ、プログラミングを学ぶなら、TechAcademy(テックアカデミー)がおすすめです。

私も入っていますが、好きな時間に気軽にオンラインで学べますので、何より楽しいです。

現役エンジニアからマンツーマンで学べるので、一人では中々続かない人にも、向いていると思います。

無料体験ができますので、まずは試してみてください!

\まずは無料体験!/
スポンサーリンク
タイトルとURLをコピーしました