チュートリアル
簡単にライブラリーを使用するためのチュートリアルコレクション

PDF ドキュメントに適切なフォントを適用することで、可読性と視覚的な魅力が向上します。基本的なテキストレンダリング、多言語サポート、またはカスタムブランディングのいずれが必要であっても、Spire.PDF for Python は標準 PDF フォント、TrueType フォント、プライベートフォント、CJK フォントを含む柔軟なフォントオプションを提供します。
このチュートリアルでは、Spire.PDF for Python を使用して Python でさまざまなフォントを扱う実践的な手法を紹介し、プロ品質の PDF 文書を効率的に作成する方法について解説します。
クイックナビゲーション
開始する前に、以下を確認してください:
Python 3.x がインストールされていること
Spire.PDF for Python がインストールされていること:
pip install Spire.PDF
また、Spire.PDF for Python をダウンロードして、プロジェクトに手動で追加することもできます。
オプション: プライベートフォント用のカスタムフォントファイル (.ttf または .otf)
標準 PDF フォントは PDF 仕様に組み込まれており、埋め込みは不要です。14 の標準フォントには、Helvetica、Times Roman、Courier、Symbol、ZapfDingbats (太字/斜体バリアントを含む) があります。軽量ドキュメントで普遍的な互換性が必要な場合に最適です。
from spire.pdf.common import *
from spire.pdf import *
# PdfDocument オブジェクトを作成
pdf = PdfDocument()
page = pdf.Pages.Add()
brush = PdfBrushes.get_Black()
y = 50.0
# Helvetica フォントを適用
font = PdfFont(PdfFontFamily.Helvetica, 14.0)
page.Canvas.DrawString("Standard Font: Helvetica", font, brush, 0.0, y)
# Courier フォントを適用
font = PdfFont(PdfFontFamily.Courier, 14.0)
page.Canvas.DrawString("Standard Font: Courier", font, brush, 0.0, (y := y + 16.0))
# Times Roman フォントを適用
font = PdfFont(PdfFontFamily.TimesRoman, 14.0)
page.Canvas.DrawString("Standard Font: TimesRoman", font, brush, 0.0, (y := y + 16.0))
# ドキュメントを保存
pdf.SaveToFile("StandardFonts.pdf")
pdf.Close()
以下に生成されたPDF文書を示します。

重要なポイント:
PdfFontFamily 列挙型を使用してフォントインスタンスを作成PDF にテキストを描画する方法についてさらに詳しく知りたい場合は、「Python で PDF にテキストを追加する方法」をご参照ください。
TrueType フォント (.ttf) は、標準フォントと比較してより優れたレンダリング品質と拡張された文字サポートを提供します。太字、斜体スタイルをサポートし、多言語コンテンツに適しています。
from spire.pdf.common import *
from spire.pdf import *
pdf = PdfDocument()
page = pdf.Pages.Add()
brush = PdfBrushes.get_Black()
y = 30.0
# Yu Gothic フォントを太字スタイルで適用
trueTypeFont = PdfTrueTypeFont("Yu Gothic", 14.0, PdfFontStyle.Bold, True)
page.Canvas.DrawString("TrueType フォント: Yu Gothic Bold", trueTypeFont, brush, 0.0, y)
pdf.SaveToFile("TrueTypeFonts.pdf")
pdf.Close()
以下に生成されたPDF文書を示します。

API の説明:
アラビア語やヘブライ語などの言語の場合、テキスト方向を設定:
from spire.pdf.common import *
from spire.pdf import *
pdf = PdfDocument()
page = pdf.Pages.Add()
brush = PdfBrushes.get_Black()
y = 30.0
# アラビア語テキストの例
arabicText = "\u0627\u0644\u0630\u0647\u0627\u0628\u0021\u0020" + \
"\u0628\u062F\u0648\u0631\u0647\u0020\u062D\u0648\u0644\u0647\u0627\u0021\u0020" + \
"\u0627\u0644\u0630\u0647\u0627\u0628\u0021"
trueTypeFont = PdfTrueTypeFont("Arial", 14.0, PdfFontStyle.Bold, True)
rctg = RectangleF(PointF(0.0, y), page.Canvas.ClientSize)
strformat = PdfStringFormat(PdfTextAlignment.Right)
strformat.RightToLeft = True
page.Canvas.DrawString(arabicText, trueTypeFont, brush, rctg, strformat)
pdf.SaveToFile("RTLText.pdf")
pdf.Close()
以下に生成されたPDF文書を示します。

実装ノート:
RightToLeft = True を設定PdfStringFormat を使用してテキスト配置を制御RectangleF) を定義プライベートフォントにより、ターゲットシステムにインストールされていないカスタムフォントファイル (.ttf/.otf) を埋め込むことができます。これにより、異なる環境間で一貫したブランディングとタイポグラフィが保証されます。
from spire.pdf.common import *
from spire.pdf import *
pdf = PdfDocument()
page = pdf.Pages.Add()
brush = PdfBrushes.get_Black()
y = 30.0
# カスタムフォントファイルを読み込む (作業ディレクトリにファイルが存在することを確認)
trueTypeFont = PdfTrueTypeFont("POTTAONE-REGULAR.TTF", 14.0)
page.Canvas.DrawString("プライベートフォント - Potta One", trueTypeFont, brush, 0.0, y)
pdf.SaveToFile("PrivateFonts.pdf")
pdf.Close()
以下に生成されたPDF文書を示します。

使用のヒント:
PdfTrueTypeFont を介して読み込まれると、フォントは自動的に埋め込まれるCJK (中国語、日本語、韓国語) フォントは、東アジア言語に必要な数千の文字をサポートします。Spire.PDF は、各言語に最適化されたフォントファミリーを提供します。
from spire.pdf.common import *
from spire.pdf import *
pdf = PdfDocument()
page = pdf.Pages.Add()
brush = PdfBrushes.get_Black()
y = 30.0
# Monotype Hei Medium で中国語テキストを描画
cjkFont = PdfCjkStandardFont(PdfCjkFontFamily.MonotypeHeiMedium, 14.0)
page.Canvas.DrawString("中文字体示例:欢迎使用 PDF 文档", cjkFont, brush, 0.0, y)
# Hanyang Systems Gothic Medium で日本語テキストを描画
cjkFont = PdfCjkStandardFont(PdfCjkFontFamily.HanyangSystemsGothicMedium, 14.0)
page.Canvas.DrawString("日本語フォントの例:PDF ドキュメントへようこそ", cjkFont, brush, 0.0, (y := y + 20.0))
# Hanyang Systems Shin MyeongJo Medium で韓国語テキストを描画
cjkFont = PdfCjkStandardFont(PdfCjkFontFamily.HanyangSystemsShinMyeongJoMedium, 14.0)
page.Canvas.DrawString("한국어 글꼴 예제: PDF 문서에 오신 것을 환영합니다", cjkFont, brush, 0.0, (y := y + 20.0))
pdf.SaveToFile("CJKFonts.pdf")
pdf.Close()
以下に生成されたPDF文書を示します。

フォントファミリーの選択:
正しいフォントファミリーを使用することで、各言語の適切なグリフレンダリングが保証されます。
問題: フォントファイルが見つからない場合、PdfTrueTypeFont がエラーをスロー。
解決策:
import os
font_path = "custom_font.ttf"
if os.path.exists(font_path):
font = PdfTrueTypeFont(font_path, 14.0)
else:
print(f"フォントファイルが見つかりません: {font_path}")
問題: 中国語/日本語/韓国語の文字が空白の四角形または疑問符として表示される。
解決策:
問題: アラビア語またはヘブライ語のテキストが右から左ではなく左から右にレンダリングされる。
解決策:
strformat = PdfStringFormat(PdfTextAlignment.Right)
strformat.RightToLeft = True
page.Canvas.DrawString(text, font, brush, rectangle, strformat)
RightToLeft = True を設定問題: 一部の文字が正しく表示されないか、完全に欠落している。
解決策:
PDF ドキュメントに適切なフォントを適用することは、可読性、多言語サポート、全体的なドキュメントプレゼンテーションを向上させるために不可欠です。Spire.PDF for Python を使用すると、標準 PDF フォント、TrueType フォント、プライベートフォント、CJK フォントを扱うことができ、異なる言語と書式要件に対応したプロフェッショナルな PDF ドキュメントを作成できます。
各シナリオに適したフォントタイプを選択することで、互換性、外観、ファイルサイズのバランスをより効果的に取ることができます。レポート、請求書、多言語ドキュメント、またはブランド付き PDF を生成する場合でも、Spire.PDF は Python アプリケーション向けの柔軟なフォント処理機能を提供します。
Spire.PDF for Python を評価し、評価制限を解除したい場合は、30 日間の無料トライアルを申請できます。
標準 PDF フォントは埋め込みを必要としない 14 の組み込みフォント (Helvetica、Times Roman など) で、ファイルサイズが小さくなります。TrueType フォント (.ttf) は外部フォントファイルで、より優れたレンダリング品質と幅広い文字サポートを提供しますが、PDF に埋め込む必要があります。
はい、任意の TrueType (.ttf) または OpenType (.otf) フォントファイルを使用できます。ただし、フォントのライセンス条項を確認してください — 一部のフォントは埋め込みを制限したり、配布に商用ライセンスを必要としたりします。
CJK 表示の問題は通常、言語に対して間違ったフォントファミリーを使用した場合に発生します。言語固有の CJK フォントを使用してください: 中国語には MonotypeHeiMedium、日本語には HanyangSystemsGothicMedium、韓国語には HanyangSystemsShinMyeongJoMedium。
はい、フォントデータが PDF に含まれるため、フォントの埋め込みによりファイルサイズが増加します。影響を最小限に抑えるには:
もちろんです。同じ PDF 内で標準フォント、TrueType フォント、プライベートフォント、CJK フォントを組み合わせることができます。各テキスト要素に異なるフォントを使用できるため、豊かなタイポグラフィと多言語コンテンツが可能になります。
本番環境デプロイメントの場合: