リストは、情報を整理するのに最適な方法です。テキストの塊と比較すると、通常、リストから重要なポイントを特定することは容易です。PDF のリストには、一般に、順序付きリストと順序なしリストの2つのタイプがあります。また、ネストされたリストで、これらの2つのタイプを混在させることができます。この記事では、Spire.PDF for Java を使用して、PDF ドキュメントに様々な種類のリストを作成する方法について説明します。
Spire.PDF for Java は、順序付きリストと順序なしリストを表現するために、それぞれ PdfSortedList クラスと PdfUnorderedList クラスを提供します。リストの内容、インデント、フォント、マーカーのスタイルやその他の属性を設定するには、これら2つのクラスの下のメソッドを使用します。次の表は、このチュートリアルに関係する主要なクラスとメソッドの一覧です。
クラス・メソッド | 説明 |
PdfSortedList クラス | PDFドキュメント内の順序付きリストを表します。 |
PdfUnorderedList クラス | PDFドキュメント内の順序なしリストを表します。 |
PdfListBase.setBrush() メソッド | リストのブラシを設定します。 |
PdfListBase.setFont() メソッド | リストのフォントを設定します。 |
PdfListBase.sertIndent() メソッド | リストのインデントを設定します。 |
PdfListBase.setTextIndent() メソッド | マーカーからリスト項目のテキストまでのインデントを設定します。 |
PdfListBase.getItems() メソッド | リストの項目を取得します。 |
PdfListBase.setMarker() メソッド | リストのマーカーを設定します。 |
PdfListBase.draw() メソッド | ページ上の指定された位置にリストを描画します。 |
PdfOrderedMarker クラス | 数字、文字、ローマ数字など、順序付きリストのマーカスタイルを表します。 |
PdfMarker クラス | 順序なしリストの箇条書きのスタイルを表します。 |
Spire.PDF for Java をインストールします
まず、Spire. PDF for Java を Java プロジェクトに追加する必要があります。JAR ファイルは、このリンクからダウンロードできます。Maven を使用する場合は、次のコードをプロジェクトの pom.xml ファイルに追加する必要があります。
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url> https://repo.e-iceblue.com/nexus/content/groups/public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.pdf</artifactId>
<version>8.8.3</version>
</dependency>
</dependencies>
PDF で順序付きリストを作成する
順序付きリストとは,一連のオブジェクトを格納するコンテナのことである.リスト内の各項目は、数字、文字、またはローマ数字でマークされます。以下は、Spire.PDF for Java を使用して、PDF に順序付きリストを作成する手順です。
- PdfDocument クラスのオブジェクトを作成します。
- PdfDocument.getPages().add() メソッドを用いてページを追加します。
- リスト用の PdfBrush と PdfFont クラスオブジェクトを作成します。
- PdfOrderedMarker クラスのオブジェクトを作成し、マーカーのスタイルを Lower_Latin に指定します。
- リストの内容を文字列に指定し、その文字列を元に PdfSortedList クラスのオブジェクトを作成します。
- PdfSortedList オブジェクトの下にあるメソッドを使って、リストのフォント、インデント、ブラシ、マーカーを設定します。
- PdfSortedList.draw() メソッドを使用して、ページ上の指定された位置にリストを描画します。
- PdfDocument.saveToFile() メソッドを使用して、ドキュメントを保存します。
- Java
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfNumberStyle;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.PdfPageSize;
import com.spire.pdf.graphics.*;
import com.spire.pdf.lists.PdfOrderedMarker;
import com.spire.pdf.lists.PdfSortedList;
import java.awt.*;
public class createOrderedList {
public static void main(String[] args) {
//PdfDocumentクラスのオブジェクトを作成する
PdfDocument doc = new PdfDocument();
//余白を設定する
PdfMargins margins = new PdfMargins(30);
//ページを追加する
PdfPageBase page = doc.getPages().add(PdfPageSize.A4, margins);
//ブラシを作成する
PdfBrush brush = PdfBrushes.getBlack();
//フォントを作成する
PdfCjkStandardFont titleFont = new PdfCjkStandardFont(PdfCjkFontFamily.Heisei_Kaku_Gothic_W_5, 14f);
PdfCjkStandardFont listFont = new PdfCjkStandardFont(PdfCjkFontFamily.Heisei_Kaku_Gothic_W_5, 12f);
//順序付きリストのメーカーを作成する
PdfOrderedMarker marker = new PdfOrderedMarker(PdfNumberStyle.Lower_Latin, listFont);
//初期座標を指定する
float x = 10;
float y = 20;
//タイトルを描画する
String title = "必要なWeb開発スキル";
page.getCanvas().drawString(title, titleFont, brush, x, y);
y = y + (float) titleFont.measureString(title).getHeight();
y = y + 5;
//番号付きリストを作成する
String listContent = "コマンドライン Unix\n"
+ "Vim\n"
+ "HTML\n"
+ "CSS\n"
+ "Python\n"
+ "JavaScript\n"
+ "SQL";
PdfSortedList list = new PdfSortedList(listContent);
//リストのフォント、インデント、テキストインデント、ブラシ、マーカーを設定する
list.setFont(listFont);
list.setIndent(2);
list.setTextIndent(4);
list.setBrush(brush);
list.setMarker(marker);
//ページ上の指定された位置にリストを描画する
list.draw(page, x, y);
//ドキュメントを保存する
doc.saveToFile("順序付きリスト.pdf");
}
}
PDF で記号の箇条書きリストを作成する
順序無しリストは、箇条書きリストとも呼ばれ、特別な順序や順番を持たない関連項目の集合体である。リスト内の各項目は、箇条書きでマークされています。以下は、Spire.PDF for Java を使用して、PDF 内の順序無しリストを作成する手順です。
- PdfDocument クラスのオブジェクトを作成します。
- PdfDocument.getPages().add() メソッドを用いてページを追加します。
- リスト用の PdfBrush と PdfFont クラスオブジェクトを作成します。
- PdfMarker オブジェクトを作成し、マーカーのスタイルを指定します。
- リストの内容を文字列に指定し、その文字列を元に PdfUnorderedList クラスのオブジェクトを作成します。
- PdfUnorderedList オブジェクトの下にあるメソッドを使って、リストのフォント、インデント、ブラシ、マーカーを設定します。
- PdfUnorderedList.draw() メソッドを用いて、ページ上の指定された位置にリストを描画します。
- PdfDocument.saveToFile() メソッドを使用して、ドキュメントを保存します。
- Java
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.PdfPageSize;
import com.spire.pdf.graphics.*;
import com.spire.pdf.lists.PdfMarker;
import com.spire.pdf.lists.PdfUnorderedList;
import com.spire.pdf.lists.PdfUnorderedMarkerStyle;
import java.awt.*;
public class createUnorderedList {
public static void main(String[] args) {
//PdfDocumentクラスのオブジェクトを作成する
PdfDocument doc = new PdfDocument();
//余白を設定する
PdfMargins margin = new PdfMargins(30);
//ページを追加する
PdfPageBase page = doc.getPages().add(PdfPageSize.A4, margin);
//フォントを作成する
PdfCjkStandardFont titleFont = new PdfCjkStandardFont(PdfCjkFontFamily.Heisei_Kaku_Gothic_W_5, 14f);
PdfCjkStandardFont listFont = new PdfCjkStandardFont(PdfCjkFontFamily.Heisei_Kaku_Gothic_W_5, 12f);
PdfCjkStandardFont markerFont = new PdfCjkStandardFont(PdfCjkFontFamily.Heisei_Kaku_Gothic_W_5, 8f);
//ブラシを作成する
PdfBrush brush = PdfBrushes.getBlack();
//初期座標を指定する
float x = 10;
float y = 20;
//タイトルを描画する
String title = "コンピュータ科学の科目";
page.getCanvas().drawString(title, titleFont, brush, x, y);
y = y + (float)titleFont.measureString(title).getHeight();
y = y + 5;
//マーカーのスタイルを指定する
PdfMarker marker = new PdfMarker(PdfUnorderedMarkerStyle.Asterisk);
marker.setFont(markerFont);
//順序なしリストを作成する
String listContent = "データ構造\n"
+ "アルゴリズム\n"
+ "コンピュータ科学\n"
+ "オペレーティングシステム\n"
+ "計算の理論\n"
+ "C言語プログラミング\n"
+"コンピュータの組織と構造";
PdfUnorderedList list = new PdfUnorderedList(listContent);
//リストのフォント、インデント、テキストインデント、ブラシ、マーカーを設定する
list.setFont(listFont);
list.setIndent(2);
list.setTextIndent(4);
list.setBrush(brush);
list.setMarker(marker);
//ページ上の指定された位置にリストを描画する
list.draw(page, x, y);
//ドキュメントを保存する
doc.saveToFile("順序なしリスト.pdf");
}
}
PDFで画像の箇条書きリストを作成する
順序なしリストの箇条書きは、記号の他に画像も使用できます。画像の箇条書きリストを作成する手順は次のとおりです。
- PdfDocument クラスのオブジェクトを作成します。
- PdfDocument.getPages().add() メソッドを用いてページを追加します。
- リスト用の PdfBrush と PdfFont クラスオブジェクトを作成します。
- PdfMarker クラスのオブジェクトを作成し、マーカーのスタイルをCustom_Imageに設定します。
- PdfMarker.setImage() メソッドを使用して、画像をマーカーとして設定します。
- リストの内容を文字列で指定し、その文字列を元に PdfUnorderedList クラスのオブジェクトを生成します。
- PdfUnorderedList オブジェクトの下にあるメソッドを使って、リストのフォント、インデント、ブラシ、マーカーを設定します。
- PdfUnorderedList.draw() メソッドを用いて、ページ上の指定された位置にリストを描画します。
- PdfDocument.saveToFile() メソッドを使用して、ドキュメントを保存します。
- Java
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.PdfPageSize;
import com.spire.pdf.graphics.*;
import com.spire.pdf.lists.PdfMarker;
import com.spire.pdf.lists.PdfUnorderedList;
import com.spire.pdf.lists.PdfUnorderedMarkerStyle;
import java.awt.*;
public class customizeBulletPointsWithImage {
public static void main(String[] args) {
//PdfDocumentクラスのオブジェクトを作成する
PdfDocument doc = new PdfDocument();
//余白を設定する
PdfMargins margin = new PdfMargins(30);
//ページを追加する
PdfPageBase page = doc.getPages().add(PdfPageSize.A4, margin);
//フォントを作成する
PdfCjkStandardFont titleFont = new PdfCjkStandardFont(PdfCjkFontFamily.Heisei_Kaku_Gothic_W_5, 14f);
PdfCjkStandardFont listFont = new PdfCjkStandardFont(PdfCjkFontFamily.Heisei_Kaku_Gothic_W_5, 12f);
//ブラシを作成する
PdfBrush brush = PdfBrushes.getBlack();
//初期座標を指定する
float x = 10;
float y = 20;
//タイトルを描画する
String title = "プロジェクトのToDoリスト";
page.getCanvas().drawString(title, titleFont, brush, x, y);
y = y + (float)titleFont.measureString(title).getHeight();
y = y + 5;
//マーカーのスタイルを画像に指定する
PdfMarker marker = new PdfMarker(PdfUnorderedMarkerStyle.Custom_Image);
//マーカーに画像を設定する
marker.setImage(PdfImage.fromFile("C:/Users/Sirion/Desktop/確認マーク.png"));
//順序なしリストを作成する
String listContent = "取り組んでいるプロジェクトやタスクを明確にする\n"
+ "タスクに人を割り当てる。\n"
+ "タスクの優先順位を決める。\n"
+ "タスクの進捗状況を把握することができます。\n"
+ "タスクが完了したら、完了マークを付ける。";
PdfUnorderedList list = new PdfUnorderedList(listContent);
//リストのフォント、インデント、テキストインデント、ブラシ、メーカーを設定する
list.setFont(listFont);
list.setIndent(2);
list.setTextIndent(4);
list.setBrush(brush);
list.setMarker(marker);
//ページ上の指定された位置にリストを描画する
list.draw(page, x, y);
//ドキュメントを保存する
doc.saveToFile("画像の箇条書き.pdf");
}
}
PDF でネストした番号付きリストを作成する
ネストされたリストとは、少なくとも1つのサブリストを含むリストのことです。 これは、階層構造でデータを表示するために使用されます。以下は、Spire.PDF for Java を使用して、PDF にネストした番号付きリストを作成する手順です。
- PdfDocument クラスのオブジェクトを作成します。
- PdfDocument.getPages().add() メソッドでページを追加する。
- PdfOrderedMarker クラスのオブジェクトを作成し、マーカのスタイルを Numeric に指定します。
- リストの内容を文字列で指定し、その文字列を元に親リストを作成します。次に、PdfSortedList オブジェクトの下のメソッドを使用して、リストのフォント、インデント、ブラシ、マーカーを設定します。
- 上記のステップを繰り返して、サブリストとサブサブリストを作成します。
- PdfSortedList.getItems().get() メソッドを使用して親リストの特定の項目を取得し、PdfListItem.setSublist() メソッドを使用してリストをそのサブリストとして追加します。
- PdfSortedList.draw() メソッドを使用して、ページ上の指定された位置にリストを描画します。
- PdfDocument.saveToFile() メソッドを使用して、ドキュメントを保存します。
- Java
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfNumberStyle;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.PdfPageSize;
import com.spire.pdf.graphics.*;
import com.spire.pdf.lists.PdfListItem;
import com.spire.pdf.lists.PdfOrderedMarker;
import com.spire.pdf.lists.PdfSortedList;
import java.awt.*;
public class createMultiLevelList {
public static void main(String[] args) {
//PdfDocumentクラスのオブジェクトを作成する
PdfDocument doc = new PdfDocument();
//余白を設定する
PdfMargins margin = new PdfMargins(30);
//ページを追加する
PdfPageBase page = doc.getPages().add(PdfPageSize.A4, margin);
//初期座標を指定する
float x = 10;
float y = 20;
//2つのブラシを作成する
PdfBrush blackBrush = PdfBrushes.getBlack();
PdfBrush purpleBrush = PdfBrushes.getPurple();
//2つのフォントを作成する
PdfCjkStandardFont titleFont = new PdfCjkStandardFont(PdfCjkFontFamily.Heisei_Kaku_Gothic_W_5, 14f);
PdfCjkStandardFont listFont = new PdfCjkStandardFont(PdfCjkFontFamily.Heisei_Kaku_Gothic_W_5, 12f);
//順序付きリストのメーカーを作成する
PdfOrderedMarker marker = new PdfOrderedMarker(PdfNumberStyle.Numeric, listFont);
//タイトルを描画する
String title = "以下は、ネストした番号付きリストです。";
page.getCanvas().drawString(title, titleFont, blackBrush, x, y);
y = y + (float)titleFont.measureString(title).getHeight();
y = y + 5;
//親リストを作成する
String parentListContent = "親項目1\n"
+ "親項目2";
PdfSortedList parentList = new PdfSortedList(parentListContent);
parentList.setFont(listFont);
parentList.setIndent(2);
parentList.setBrush(purpleBrush);
parentList.setMarker(marker);
//「subList_1」という子リストを作成する
String subListContent_1 = "子項目1\n"
+ "子項目2\n"
+ "子項目3\n"
+ "子項目4";
PdfSortedList subList_1 = new PdfSortedList(subListContent_1);
subList_1.setIndent(12);
subList_1.setFont(listFont);
subList_1.setBrush(blackBrush);
subList_1.setMarker(marker);
subList_1.setMarkerHierarchy(true);
//「subList_2」という子リストを作成する
String subListContent_2 = "子項目1\n"
+ "子項目2\n"
+ "子項目3";
PdfSortedList subList_2 = new PdfSortedList(subListContent_2);
subList_2.setIndent(12);
subList_2.setFont(listFont);
subList_2.setBrush(blackBrush);
subList_2.setMarker(marker);
subList_2.setMarkerHierarchy(true);
//「subList_2」という第二階層子リストを作成する
String subSubListContent_1 = "第二階層子項目1\n"
+ "第二階層子項目2";
PdfSortedList subSubList = new PdfSortedList(subSubListContent_1);
subSubList.setIndent(20);
subSubList.setFont(listFont);
subSubList.setBrush(blackBrush);
subSubList.setMarker(marker);
subSubList.setMarkerHierarchy(true);
//「subList_1」を親リストの1番目の項目のサブリストとして設定する
PdfListItem item_1 = parentList.getItems().get(0);
item_1.setSubList(subList_1);
//「subList_2」を親リストの2番目の項目のサブリストとして設定する
PdfListItem item_2 = parentList.getItems().get(1);
item_2.setSubList(subList_2);
//「subSubList」を「subList_1」の最初の項目の子リストとして設定する
PdfListItem item_1_1 = subList_1.getItems().get(0);
item_1_1.setSubList(subSubList);
//親リストを描画する
parentList.draw(page, x, y);
//ドキュメントを保存する
doc.saveToFile("多階層リスト.pdf");
}
}
一時ライセンスを申請する
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。