CTC 教育サービス
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes
こんにちは、吉政創成 菱沼です。 今回も「いちばんやさしいPython入門教室(大澤 文孝氏著) 」を片手に勉強していきます。
さて、前回は拡張モジュールのインストール方法について学習しました。 今回からは前回インストールしたPDFを作るライブラリ、ReportLabを使って学習しますが、まずはReportLabの基本的な手順を確認します。
まずはテキストで紹介されているサンプルを実行してみます。それがこちら。
これを実行すると出力されるのがこちらです。
出力された先は、実行したファイル(ここではexample08-03-01.py)が保存されているフォルダでした。 動作を確認したところで、次はコードを確認していきます。
tkinterやcalendarのモジュールを使うのと同様に、先にモジュールを使えるようにしないといけないため、import文かfrom文で読み込みます。基本の書式を振り返ってみますとこうなります。
それぞれの書き方何が違うのかと言いますと... 例えばcalendarモジュールで同じ処理を試してみるとこうなります。③に行くにつれて記述が短くなっていることがわかります。②はモジュール名を短縮して書けるようになりますが、逆に正式名称では書けなくなりますのでご注意を。③はモジュールの中の特定のクラス(一部の機能)に限定して呼び出しているので、モジュール名を書かなくてもよくなりますが、モジュールの他の機能は使えません。
今回使用するライブラリ、ReportLabでPDFを作成する場合は、大体5種類のクラスを使うのだそうです。それが以下の5点。
-----
P.242
ReportLabにはたくさんの関数やクラスが含まれていますが、PDFを作成する場合は、だいたい次の5種類のクラスをインポートするのが一般的です。
-----
ということで、これらのクラスが指定されているのはサンプルコードで言うこの部分ですね。
ちなみに、ライブラリ名の後に「.」で続けられていますが、これはこのライブラリで使える関数名や変数名になります。
さて、PDFで文字を書くために、事前にどのフォントを利用するか、登録する必要があるのだそうです。 テキストではAcrobatに含まれている標準フォントを利用しているようです。まずはテキストから引用です。
-----
P.242
フォントを登録するには、pdfmetricsのregisterFontというメソッドを使います。括弧の中に指定するのは、指定したい文字の書体――フォント名です。
自由な書体を使うこともできますが、ここにあるように「UnicodeCIDFont」というオブジェクトを使うと、Acrobatに含まれている標準フォントを利用できます。 Acrobatが対応している標準フォントの種類は表のとおりです。明朝体とゴシック体があり、最も古いAcrobat4に対応しているのが、明朝体は「HeiseiMin-W3(平成明朝体)」、ゴシック体は「HeiseiKakuGo-W5(平成角ゴシック体)」です。 (中略)
Acrobatバージョン | 明朝体 | ゴシック体 |
---|---|---|
Acrobat4 | HeiseiMin-W3(平成明朝体) | HeiseiKakuGo-W5 (平成角ゴシック体) |
Acrobat5 Acrobat6 |
KozMinPro-Regular-Acro (小塚明朝体) |
KozGoPro-Metium-Acro (小塚ゴシック体) |
Acrobat7 | KozMinProVI-Regular (小塚明朝体) |
KozGoPro-Metium (小塚ゴシック体) |
-----
もちろん、Acrobat対応以外にWindowsなどのOSですでに利用しているフォントや、無料・有料のフォントファイルを持っているようなら、それも利用できるように設定できるそうです。 Windowsにインストールされているフォントは以下の場所で確認できます。Macについては後ほど。
C:\Windows\Fonts
ここで確認できるフォントの中から使いたいフォントのプロパティを開き、パスとフォントファイルの名前をプログラムに埋め込んでいきます。 ちなみに使用できるファイルの種類は「.ttc」のみとテキストには書かれているのですが、調べてみると「.ttf」も使えるようです。
フォントの登録をする
※フォントのファイル名の部分はフォントのパスも含めた名称を指定します。
なので、Windowsの場合であれば、C:¥¥windows¥¥Fonts¥¥(ファイル名.拡張子)です。
(¥マークが2回になっていることをお忘れなく。)
フォントの指定をする
ここはサンプルコードと変わらず、setFontが使用されます。
ということで、やってみたのがこちら。 ちょうどTTFファイルとして游明朝がありましたので、ちゃんと動くかを.ttfで試してみました。
そして出力結果がこちらです。 左が元のサンプルコード(Acrobat標準フォント)で、右がTTFフォントである游明朝です。
ちゃんと.ttfでも出力できることがわかりました。 (別途、.ttcでも試してみましたが、問題なく出力されていましたがここでは割愛します。)
Macは「OpenType」と呼ばれるフォントが標準で使用されており、そのフォントはReportLabでは使えないようなので、市販やフリーのTrue Typeフォントを手に入れる必要があるそうです。プログラムにするときのフォントの指定方法はWindowsと同じですが、フォントファイルの保存場所はプログラムファイルを置く場所でよさそうです。
きりがいいので今回はこちらで終了です。 最後に公式ドキュメントや参考サイトをご紹介します。ご興味がある方は覗いてみてください。
今回もお付き合いいただきありがとうございました。
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes