
リストは PDF ドキュメント作成 の基本的な要素であり、項目のコレクションを効率的に整理して提示することができます。PDF で最も一般的に使用される 3 つのリストタイプは、順序付きリスト、順序なしリスト(箇条書きリストとも呼ばれる)、および ネストされたリスト です。これらのリストは、PDF ドキュメント内で情報を整理され視覚的に魅力的な方法で提示することを可能にします。
このガイドでは、Spire.PDF for Python を使用して、プロフェッショナルな PDF ドキュメントを生成するために PDF ドキュメントで順序付き、順序なし、ネストされたリストを作成する方法を探ります。Spire.PDF for Python が提供する機能を利用することで、開発者はこれらのリストを簡単にフォーマットし、PDF ページに組み込むことができます。
クイックナビゲーション
- 前提条件
- Spire.PDF のリストクラスの理解
- Python で PDF に順序付きリストを作成
- Python を使用して PDF に順序なしリストを作成
- Python で PDF にネストされたリストを作成
- PDF リストの一般的な使用事例
- 結論
- よくある質問
前提条件
開始する前に、以下が準備されていることを確認してください:
Python 3.x がインストールされていること
Spire.PDF for Python および plum-dispatch v1.7.4 がインストールされていること:
pip install Spire.PDFまた、Spire.PDF for Python パッケージをダウンロードして、プロジェクトに手動で追加することもできます。
PDF ドキュメント構造の基本的な理解
このガイドでは、単純な順序付きリストから複雑なネスト構造まで、さまざまなリスト作成手法を実演します。
Spire.PDF のリストクラスの理解
実装に入る前に、Spire.PDF for Python でリストを作成するために利用可能な主要なクラスとプロパティを理解することが重要です。
PdfSortedList クラスと PdfList クラスは、PDF ドキュメントでさまざまなタイプのリストを生成するための主要なコンポーネントです。以下の表は、主要なクラスとプロパティを要約しています:
| クラスまたはプロパティ | 説明 |
|---|---|
PdfSortedList クラス |
PDF ドキュメント内の順序付きリストを表します。 |
PdfList クラス |
PDF ドキュメント内の順序なしリストを表します。 |
Brush プロパティ |
リストのブラシを取得または設定します。 |
Font プロパティ |
リストのフォントを取得または設定します。 |
Indent プロパティ |
リストのインデントを取得または設定します。 |
TextIndent プロパティ |
マーカーからリスト項目テキストまでのインデントを取得または設定します。 |
Items プロパティ |
リストの項目を取得します。 |
Marker プロパティ |
リストのマーカーを取得または設定します。 |
Draw() メソッド |
指定された位置でページのキャンバスにリストを描画します。 |
PdfOrderedMarker クラス |
数字、文字、ローマ数字など、順序付きリストのマーカー样式を表します。 |
PdfMarker クラス |
順序なしリストの箇条記号样式を表します。 |
これらのクラスはリストのフォーマットを包括的に制御し、開発者がフォント、マーカー、インデント、位置付けをカスタマイズしてプロフェッショナルな PDF 出力を可能にします。
Python で PDF に順序付きリストを作成
開発者は Spire.PDF for Python の PdfSortedList クラスを使用して順序付きリストを作成し、このクラスで使用可能なプロパティを使用してフォーマットできます。その後、PdfSortedList.Draw() メソッドを使用してリストを PDF ページに描画できます。
ステップバイステップの実装
PDF ドキュメントで順序付きリストを作成する方法の詳細なステップバイステップガイド:
PdfDocumentクラスのオブジェクトを作成PdfDocument.Pages.Add()メソッドを使用してドキュメントにページを追加- タイトルとリスト用のフォントおよびブラシを作成
PdfPageBase.Canvas.DrawString()メソッドを使用してページ上にリストタイトルを描画- 指定された項目で順序付きリストを作成するために
PdfSortedListクラスのインスタンスを初期化 - リスト用の順序付きマーカーを作成するために
PdfOrderedMarkerクラスのインスタンスを初期化 - リストのフォント、項目インデント、テキストインデント、ブラシ、マーカーを設定
PdfSortedList.Draw()メソッドを使用してページ上にリストを描画PdfDocument.SaveToFile()メソッドを使用してドキュメントを保存
コード例
from spire.pdf import *
from spire.pdf.common import *
# PdfDocument クラスのオブジェクトを作成
pdf = PdfDocument()
# 指定されたページサイズと余白でドキュメントにページを追加
page = pdf.Pages.Add()
# タイトルフォントとリストフォントを作成
titleFont = PdfTrueTypeFont("Yu Gothic UI", 14.0, 1, True)
listFont = PdfTrueTypeFont("Yu Gothic UI", 12.0, 0, True)
# リストを描画するためのブラシを作成
brush = PdfBrushes.get_Black()
# 初期座標を指定
x = 50.0
y = 50.0
# タイトルを描画
title = "PDF 作成の基本手順"
page.Canvas.DrawString(title, titleFont, brush, x, y)
# 番号付きリストを作成
listItems = "PdfDocument オブジェクトを作成します。\n" \
+ "ドキュメントにページを追加します。\n" \
+ "テキストやリストなどのコンテンツを描画します。\n"\
+ "PDF ファイルとして保存します。"
list = PdfSortedList(listItems)
# リスト用のマーカーを作成
marker = PdfOrderedMarker(PdfNumberStyle.UpperRoman, listFont)
# リストをフォーマット
list.Font = listFont
list.Indent = 2
list.TextIndent = 4
list.Brush = brush
list.Marker = marker
# ページ上にリストを描画
list.Draw(page.Canvas, x, y + float(titleFont.MeasureString(title).Height + 5))
# ドキュメントを保存
pdf.SaveToFile("output/CreateNumberedList.pdf")
pdf.Close()

重要なポイント
PdfSortedListはリスト項目を自動的に番号付けPdfOrderedMarkerはさまざまな番号付け样式(アラビア数字、ローマ数字、アルファベット)をサポート- インデントはマーカーとテキスト間の間隔を制御
Draw()メソッドは指定された座標にリストを配置
Spire.PDF for Python では、リストの作成だけでなく、図形を描画して PDF ページに追加することもできます。詳しくは、「Python を使用して PDF 文書に図形を描画する方法」をご参照ください。
Python を使用して PDF に順序なしリストを作成
Spire.PDF for Python は PDF ドキュメントで順序なしリストを作成するための PdfList クラスを提供します。開発者はマーカー样式、フォント、インデント、ブラシを設定することでリストの外観をカスタマイズできます。順序なしリストは組み込みの記号マーカーとカスタム画像マーカーの両方をサポートし、さまざまなドキュメント样式とプレゼンテーション要件に適しています。
記号マーカーを使用した順序なしリストの作成
記号マーカーを使用した順序なしリストの作成には、PdfList.Marker.Style および PdfList.Marker.Font プロパティを通じてマーカー样式とマーカーフォントを設定することが含まれます。
実装手順
詳細な手順は以下の通りです:
PdfDocumentクラスのオブジェクトを作成PdfDocument.Pages.Add()メソッドを使用してドキュメントにページを追加- タイトル、マーカー、リスト用のフォントおよびブラシを作成
PdfPageBase.Canvas.DrawString()メソッドを使用してページ上にリストタイトルを描画- 指定された項目で順序なしリストを作成するために
PdfListクラスのインスタンスを初期化 - リストのフォント、項目インデント、テキストインデント、ブラシを設定
PdfList.Marker.StyleおよびPdfList.Marker.Fontプロパティを通じてマーカー样式とフォントを設定PdfList.Draw()メソッドを使用してページ上にリストを描画PdfDocument.SaveToFile()メソッドを使用してドキュメントを保存
コード例
from spire.pdf import *
from spire.pdf.common import *
# PdfDocument クラスのオブジェクトを作成
pdf = PdfDocument()
# 指定されたページサイズと余白でドキュメントにページを追加
page = pdf.Pages.Add()
# タイトルフォント、リストフォント、マーカーフォントを作成
titleFont = PdfTrueTypeFont("Yu Gothic UI", 14.0, 1, True)
listFont = PdfTrueTypeFont("Yu Gothic UI", 12.0, 0, True)
markerFont = PdfTrueTypeFont("Yu Gothic UI", 8.0, 0, True)
# リストを描画するためのブラシを作成
brush = PdfBrushes.get_Black()
# 初期座標を指定
x = 50.0
y = 50.0
# タイトルを描画
title = "製品の特徴"
page.Canvas.DrawString(title, titleFont, brush, x, y)
# 順序なしリストを作成
listContent = "高速な PDF 処理をサポートします。\n" \
+ "複数のドキュメント形式に対応しています。\n" \
+ "シンプルな API で PDF を柔軟に操作できます。"
list = PdfList(listContent)
# リストをフォーマット
list.Font = listFont
list.Indent = 2
list.TextIndent = 4
list.Brush = brush
# マーカーをフォーマット
list.Marker.Style = PdfUnorderedMarkerStyle.Asterisk
list.Marker.Font = markerFont
# ページ上にリストを描画
list.Draw(page.Canvas, x, float(y + titleFont.MeasureString(title).Height + 5))
# ドキュメントを保存
pdf.SaveToFile("output/CreateSymbolBulletedList.pdf")
pdf.Close()

利用可能なマーカー样式
Spire.PDF for Python はさまざまな記号マーカー样式をサポートします:
Asterisk(*)Bullet(•)Circle(○)Diamond(◆)Square(■)
ドキュメントのデザイン要件に基づいて適切な样式を選択してください。
画像マーカーを使用した順序なしリストの作成
記号マーカーに加えて、Spire.PDF for Python では開発者がカスタム画像をリストマーカーとして使用することも可能です。このアプローチは、ブランド化されたドキュメントや視覚的にカスタマイズされた PDF レイアウトを作成する場合に役立ちます。
実装手順
詳細な手順は以下の通りです:
PdfDocumentクラスのオブジェクトを作成PdfDocument.Pages.Add()メソッドを使用してドキュメントにページを追加- タイトルとリスト用のフォントおよびブラシを作成
PdfPageBase.Canvas.DrawString()メソッドを使用してページ上にリストタイトルを描画- 指定された項目で順序なしリストを作成するために
PdfListクラスのインスタンスを初期化 - リストのフォント、項目インデント、テキストインデント、ブラシを設定
PdfImage.FromFile()メソッドを使用して画像を読み込み- マーカー样式を
PdfUnorderedMarkerStyle.CustomImageに設定し、読み込んだ画像をマーカーとして設定 PdfList.Draw()メソッドを使用してページ上にリストを描画PdfDocument.SaveToFile()メソッドを使用してドキュメントを保存
コード例
from spire.pdf import *
from spire.pdf.common import *
# PdfDocument クラスのオブジェクトを作成
pdf = PdfDocument()
# 指定されたページサイズと余白でドキュメントにページを追加
page = pdf.Pages.Add()
# タイトルフォントとリストフォントを作成
titleFont = PdfCjkStandardFont(PdfCjkFontFamily.HeiseiMinchoW3, 14.0, PdfFontStyle.Bold)
listFont = PdfCjkStandardFont(PdfCjkFontFamily.HeiseiMinchoW3, 12.0, PdfFontStyle.Regular)
# リストを描画するためのブラシを作成
brush = PdfBrushes.get_Black()
# 初期座標を指定
x = 50.0
y = 50.0
# タイトルを描画
title = "主な機能"
page.Canvas.DrawString(title, titleFont, brush, x, y)
# 順序なしリストを作成
listContent = "PDF の作成・編集・変換をサポートします。\n" \
+ "画像、表、リストなどの要素を柔軟に配置できます。\n" \
+ "シンプルな API で効率的に PDF を操作できます。"
list = PdfList(listContent)
# リストをフォーマット
list.Font = listFont
list.Indent = 2
list.TextIndent = 4
list.Brush = brush
# 画像を読み込み
image = PdfImage.FromFile("Marker.png")
# マーカーをカスタム画像に設定
list.Marker.Style = PdfUnorderedMarkerStyle.CustomImage
list.Marker.Image = image
# ページ上にリストを描画
list.Draw(page.Canvas, x, float(y + titleFont.MeasureString(title).Height + 5))
# ドキュメントを保存
pdf.SaveToFile("output/CreateImageBulletedList.pdf")
pdf.Close()

画像マーカーのベストプラクティス
- より良い視認性のために小さく高コントラストの画像を使用
- 画像がサポートされている形式(PNG、JPEG、BMP)であることを確認
- 印刷品質の PDF のために画像解像度を考慮
- テキストフォントサイズに対するマーカーサイズをテスト
Python で PDF にネストされたリストを作成
ネストされたリストを作成する場合、親リストと各レベルのサブリストの両方を順序なしリストまたは順序付きリストとして作成できます。各レベルのリストが作成されると、PdfListItem.SubList プロパティを使用してリストを親リストの対応する項目のサブリストとして設定できます。
実装手順
ネストされたリストを作成する手順は以下の通りです:
PdfDocumentクラスのオブジェクトを作成PdfDocument.Pages.Add()メソッドを使用してドキュメントにページを追加- タイトルとリスト用のフォントおよびブラシを作成
PdfPageBase.Canvas.DrawString()メソッドを使用してページ上にリストタイトルを描画- 親リストとして順序なしリストを作成し、リストとマーカーをフォーマット
- 親リストの項目用にサブリストを作成し、各サブリストをフォーマット
PdfList.Items.get_Item()メソッドを使用して親リストの項目を取得PdfListItem.SubListプロパティを使用して指定されたリストをサブリストとして設定PdfList.Draw()メソッドを使用してページ上にリストを描画PdfDocument.SaveToFile()メソッドを使用してドキュメントを保存
コード例
from spire.pdf import *
from spire.pdf.common import *
# PdfDocument クラスのオブジェクトを作成
pdf = PdfDocument()
# 指定されたページサイズと余白でドキュメントにページを追加
page = pdf.Pages.Add()
# タイトルフォントとリストフォントを作成
titleFont = PdfTrueTypeFont("Yu Gothic UI", 14.0, 1, True)
listFont = PdfTrueTypeFont("Yu Gothic UI", 12.0, 0, True)
markerFont = PdfTrueTypeFont("Yu Gothic UI", 12.0, 0, True)
# タイトルとリストを描画するためのブラシを作成
titleBrush = PdfBrushes.get_Blue()
firstListBrush = PdfBrushes.get_Purple()
secondListBrush = PdfBrushes.get_Black()
# 初期座標を指定
x = 50.0
y = 50.0
# タイトルを描画
title = "PDF 機能一覧"
page.Canvas.DrawString(title, titleFont, titleBrush, x, y)
# 親リストを作成
parentListContent = "ドキュメント操作:\n" + "ページ操作:\n" + "コンテンツ操作:"
parentList = PdfList(parentListContent)
# 親リストをフォーマット
indent = 4
textIndent = 4
parentList.Font = listFont
parentList.Indent = indent
parentList.TextIndent = textIndent
# 親リストマーカーを設定
parentList.Marker.Style = PdfUnorderedMarkerStyle.Square
parentList.Marker.Font = markerFont
# ネストされたサブリストを作成し、それらをフォーマット
subListMarker = PdfOrderedMarker(PdfNumberStyle.LowerLatin, markerFont)
subList1Content = "PDF の作成\n" + "PDF の保存\n" + "PDF の変換"
subList1 = PdfSortedList(subList1Content, subListMarker)
subList1.Font = listFont
subList1.Indent = indent * 2
subList1.TextIndent = textIndent
subList2Content = "ページの追加\n" + "ページの削除"
subList2 = PdfSortedList(subList2Content, subListMarker)
subList2.Font = listFont
subList2.Indent = indent * 2
subList2.TextIndent = textIndent
subList3Content = "テキストの描画\n" + "画像の挿入\n" + "リストの作成"
subList3 = PdfSortedList(subList3Content, subListMarker)
subList3.Font = listFont
subList3.Indent = indent * 2
subList3.TextIndent = textIndent
# 作成されたリストを親リストの各項目のネストされたサブリストとして設定
item1 = parentList.Items.get_Item(0)
item1.SubList = subList1
item2 = parentList.Items.get_Item(1)
item2.SubList = subList2
item3 = parentList.Items.get_Item(2)
item3.SubList = subList3
# リストを描画
parentList.Draw(page.Canvas, x, float(y + titleFont.MeasureString(title).Height + 5))
# ドキュメントを保存
pdf.SaveToFile("output/CreateNestedList.pdf")
pdf.Close()

高度なネスト技術
- 複数のネストレベルがサポート(サブリスト内のサブリスト)
- 各レベルで異なるマーカー样式を使用可能
- 視覚的階層のためにインデントを段階的に調整
- 異なるレベルで順序付きリストと順序なしリストを混合
PDF リストの一般的な使用事例
リストは、コンテンツを明確かつ構造化された方法で整理するために PDF ドキュメントで広く使用されています。Spire.PDF for Python を使用することで、開発者はビジネス、教育、技術シナリオ向けにさまざまなタイプのリストベースの PDF コンテンツを自動的に生成できます。
一般的な使用事例には以下が含まれます:
- カタログやパンフレットでの製品機能リストの作成
- 会議アジェンダとタスクチェックリストの生成
- コースアウトラインと学習教材の構築
- API パラメータと構成オプションの表示
- ステップバイステップの指示を含むトラブルシューティングガイドの作成
- ポリシー項目、要件、コンプライアンス情報の整理
- ネストされたリストを使用した階層コンテンツの生成
順序付きリスト、順序なしリスト、ネストされたリストを組み合わせることで、開発者は読みやすさと視覚的構造が向上したプロフェッショナルな PDF ドキュメントを作成できます。
結論
PDF ドキュメントでリストを作成することは、情報を明確かつプロフェッショナルに整理するために不可欠です。Spire.PDF for Python を使用することで、開発者は 順序付きリスト、記号または画像を使用した順序なしリスト、および ネストされたリスト を簡単に実装して、ドキュメントの読みやすさを向上させることができます。
順序付きリスト用の PdfSortedList と順序なしリスト用の PdfList という主要なクラスは、フォーマット、マーカー、レイアウトを包括的に制御します。これらを適切なインデントとマーカーのカスタマイズと組み合わせることで、ビジネス、教育、技術目的に適した洗練された PDF ドキュメントを生成できます。
このアプローチは、レポート生成の自動化、構造化されたドキュメントの作成、プログラム的にプロフェッショナル品質の PDF 出力を生成する場合に特に役立ちます。
Spire.PDF for Python のパフォーマンスを評価し、制限を解除したい場合は、30 日間の無料トライアルを申請 できます。
よくある質問
PDF の順序付きリストと順序なしリストの違いは何ですか?
順序付きリスト は順序や優先度を示すために連続的なマーカー(数字、文字、ローマ数字)を使用しますが、順序なしリスト は順序を暗示せずに項目を提示するために記号(箇条書き、アスタリスク、円)またはカスタム画像を使用します。
同じ PDF で異なるリストタイプを混合できますか?
はい。同じドキュメント内で順序付きリストと順序なしリストを組み合わせることができます。さらに、ネストされたリストを使用すると、異なる階層レベルでリストタイプを混合できます。例えば、順序付きサブリストを持つ順序なしの親リストなどです。
Spire.PDF for Python でリストのインデントをカスタマイズするにはどうすればよいですか?
Indent プロパティを使用してページ余白からの全体的なリストインデントを制御し、TextIndent プロパティを使用してマーカーとリスト項目テキスト間の間隔を調整します。
カスタム画像をリストマーカーとして使用できますか?
はい。PdfList.Marker.Style を PdfUnorderedMarkerStyle.CustomImage に設定し、PdfImage オブジェクトを PdfList.Marker.Image に割り当てます。画像ファイルがアクセス可能でサポートされている形式であることを確認してください。
多レベルのネストされたリストを作成するにはどうすればよいですか?
各ネストレベル用に別々のリストオブジェクトを作成し、PdfListItem.SubList プロパティを使用してサブリストを特定の親項目に接続します。視覚的な明確さのためにインデントを段階的に調整します(例:indent * 2、indent * 3)。
順序付きリストで利用可能なマーカー样式は何ですか?
PdfOrderedMarker は以下の複数の番号付け样式をサポートします:
- アラビア数字(1、2、3)
- 小文字/大文字(a、b、c / A、B、C)
- ローマ数字(i、ii、iii / I、II、III)
ドキュメントのコンテキストに最适合する样式を選択してください。






