目次は Word ドキュメントのフィールドで、すべてのレベルのタイトルとそれに対応するページ番号を表示するために使用されます。ドキュメントの内容が変更された場合、目次フィールドを更新するだけで、新しいタイトルと対応するページ番号に従って新しい目次を生成することができます。 あなたがドキュメントを編集していても、ドキュメントを読んでいても、目次は大きな利便性を提供することができます。 同時に、目次はドキュメントをより専門的なものにすることもでき、これは科学、技術、学術、その他のドキュメントにとって重要な部分です。 今回は、Spire.Doc for Java を使って、Java プログラムを通して Word ドキュメントに目次を挿入する方法をご紹介します。
Spire.Doc for Java をインストールします
まず、Spire. Doc 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.doc</artifactId>
<version>11.7.0</version>
</dependency>
</dependencies>
Word ドキュメントでデフォルト書式の目次を作成する
目次を作成する前に、目次フィールドが見出し、見出しレベル、および対応するページ番号に基づいて目次を生成できるように、各見出しの見出しレベルを設定する必要があります。 見出しレベルは、Paragraph.getListFormat().setListLevelNumber(int) メソッドを使用して設定できます。
Spire.Doc for Java には、ドキュメントの段落に目次を挿入する Paragraph.appendTOC() メソッドが用意されています。 Word ドキュメントにデフォルト形式の目次を挿入する詳細な手順は次のとおりです。
- Document クラスのオブジェクトを作成します。
- Document.loadFromFile() メソッドを使用して Word ドキュメントを読み込みます。
- Document.addSection() メソッドを使用してセクションをドキュメントに追加し、Document.getSections().insert() メソッドを使用してそのセクションをドキュメントの表紙セクションの後に挿入します。
- Section.addParagraph() メソッドを使用して、セクションに段落を追加します。
- Paragraph.appendTOC() メソッドを使用して、段落内に目次を作成します。
- Document.updateTableOfContents() メソッドを使用して目次を更新し、ドキュメントの見出しとそのページ番号を表示します。
- Document.saveToFile() メソッドを使用してドキュメントを保存します。
- Java
import com.spire.doc.Document;
import com.spire.doc.Section;
import com.spire.doc.documents.Paragraph;
public class insertTableOfContents {
public static void main(String[] args) {
//Documentクラスのオブジェクトを作成する
Document doc = new Document();
//Wordドキュメントを読み込む
doc.loadFromFile("サンプル.docx");
//セクションを追加し、ドキュメントの表紙セクションの後に挿入する
Section section = doc.addSection();
doc.getSections().insert(1, section);
//セクションに段落を追加する
Paragraph paragraph = section.addParagraph();
paragraph.appendText("目次\r\n");
paragraph.getStyle().getCharacterFormat().setFontSize(14f);
paragraph.getStyle().getCharacterFormat().setFontName("HarmonyOS Sans SC");
//この段落に2〜3レベルの見出しを表示するデフォルト形式の目次を作成する
paragraph.appendTOC(2, 3);
//目次を更新する
doc.updateTableOfContents();
//ファイルを保存する
doc.saveToFile("デフォルト形式の目次.docx");
doc.dispose();
}
}
Word ドキュメントでカスタム書式の目次を作成する
Spire.Doc for Java では、Word ドキュメントの目次を表現するために TableOfContent クラスを使用しています。 TableOfContent クラスのオブジェクトを作成する際に、スイッチによって目次に表示する内容をカスタマイズすることができます。 例えば、スイッチ "{\o \"1-3\" \\1-2}" は、目次に第1レベルから第3レベルまでの見出しを表示し、第1レベルと第2レベルの見出しのページ番号は表示しない。
Word ドキュメントでカスタム書式の目次を作成する詳細な手順は次のとおりです。
- Document クラスのオブジェクトを作成します。
- Document.loadFromFile() メソッドを使用して Word ドキュメントを読み込みます。
- Document.getSections().insert() メソッドを使用して、表紙セクションの後にセクションを挿入し、Section.addParagraph() メソッドを使用して、セクションに段落を追加します。
- TableOfContent クラスのオブジェクトを作成して、第 1 レベルから第 3 レベルの見出しを表示し、第 1 レベルと第 2 レベルの見出しのページ番号を表示しない目次を作成します。
- Paragraph.getItems().add() メソッドを使用して、目次を追加された段落に挿入します。
- Paragraph.appendFieldMark() メソッドを使用して、フィールド区切り記号とフィールド終了記号を段落に挿入し、目次フィールドを終了します。
- Document.setTOC() メソッドを使用して、作成された目次をこのドキュメントの目次に設定します。
- Document.updateTableOfContents() メソッドを使用して目次を更新し、現在のドキュメントの目次を表示します。
- Document.saveToFile() メソッドを使用して、ドキュメントを保存します。
- Java
import com.spire.doc.Document;
import com.spire.doc.Section;
import com.spire.doc.documents.FieldMarkType;
import com.spire.doc.documents.Paragraph;
import com.spire.doc.fields.TableOfContent;
public class insertTableOfContentsWithCustomizedStyle {
public static void main(String[] args) {
//Documentクラスのオブジェクトを作成する
Document doc = new Document();
//Wordドキュメントを読み込む
doc.loadFromFile("サンプル.docx");
//表紙セクションの後にセクションを挿入し、そのセクションに段落を追加する
Section section = doc.addSection();
doc.getSections().insert(1, section);
Paragraph paragraph = section.addParagraph();
paragraph.getStyle().getCharacterFormat().setFontSize(14f);
//TableOfContentクラスのオブジェクトを作成する
TableOfContent toc = new TableOfContent(doc, "{\\o \"1-3\" \\n 1-2}");
//作成した目次をその段落に挿入する
paragraph.getItems().add(toc);
//フィールドの区切り記号と終了記号を挿入して、目次フィールドを終了させる
paragraph.appendFieldMark(FieldMarkType.Field_Separator);
paragraph.appendFieldMark(FieldMarkType.Field_End);
//作成した目次をこのドキュメントの目次に設定する
doc.setTOC(toc);
//目次を更新する
doc.updateTableOfContents();
//ファイルを保存する
doc.saveToFile("カスタム形式の目次.docx");
doc.dispose();
}
}
一時ライセンスを申請する
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。