目次を追加する方法

Chaknith related to 目次を追加する方法
チャクニット・ビン
2023年9月28日
更新済み 2024年12月10日
共有:
This article was translated from English: Does it need improvement?
Translated
View the article in English

目次(TOC)は、読者がPDFドキュメントの内容をナビゲートするのを助けるロードマップのようなものです。 一般的には冒頭に表示され、PDFの主要なセクションや章、および各セクションが始まるページ番号がリストされています。 これにより、読者はドキュメントの特定の部分をすばやく見つけてジャンプでき、必要な情報に簡単にアクセスできるようになります。

IronPDFは、'h1'、'h2'、'h3'、'h4'、'h5'、および'h6'要素へのハイパーリンクを含む目次を作成する機能を提供します。 この目次のデフォルトのスタイリングは、HTMLコンテンツ内の他のスタイルと競合しません。

IronPDFを始める

今日から無料トライアルでIronPDFをあなたのプロジェクトで使い始めましょう。

最初のステップ:
green arrow pointer



目次を追加する例

TableOfContents プロパティを使用して、出力PDFドキュメント内に目次を作成できるようにします。 このプロパティは、次のように説明される3つのTableOfContentsTypesのいずれかに割り当てることができます。

  • 目次を作成しない
  • 基本: ページ番号なしで目次を作成
  • ページ番号を追加: ページ番号付きの目次を作成

    この機能をよりよく理解するために、以下のサンプルHTMLファイルをダウンロードしてください:

  • サンプルHTMLファイルをダウンロード

コード

:path=/static-assets/pdf/content-code-examples/how-to/table-of-contents.cs
using IronPdf;
using System.IO;

// Instantiate Renderer
ChromePdfRenderer renderer = new ChromePdfRenderer();

// Configure render options
renderer.RenderingOptions = new ChromePdfRenderOptions
{
    // Enable table of content feature
    TableOfContents = TableOfContentsTypes.WithPageNumbers,
};

PdfDocument pdf = renderer.RenderHtmlFileAsPdf("tableOfContent.html");

pdf.SaveAs("tableOfContents.pdf");

PDFを出力

目次は、それぞれの「h1」、「h2」、「h3」、「h4」、「h5」、および「h6」へのハイパーリンクで作成されます。

次の内容にご注意ください。
ドキュメントのMergeメソッドを使用すると、目次のハイパーリンクが壊れます。


PDFの目次の配置

  1. HTMLドキュメントに適切なヘッダータグ(h1からh6まで)が含まれていることを確認してください。

  2. 任意で、目次を表示したい場所に
    を挿入します。 以下のdivが提供されない場合、IronPDFは目次を最初に挿入します。
    <div id="ironpdf-toc"></div>
    <div id="ironpdf-toc"></div>
HTML
  1. レンダーオプションでは、目次をページ番号付きかページ番号なしでレンダリングすることを選択できます。

目次のスタイリング

目次は、目次のスタイルを定義するさまざまなCSSセレクターを対象にしてCSSを使用してスタイル設定することができます。

さらに、スタイルの変更はCustomCssUrlプロパティを使用して行います。 以下の目次の元のスタイリングが含まれているCSSファイルをダウンロードすることから始めましょう。

  • カスタムCSSファイルをダウンロード

    (現在、目次をスタイリングする際にページ間隔の前後のプロパティを書き換えることは推奨されていません。これはページ番号の計算を損なうためです。) 現在の実装では、目次を他のドキュメントの内容とは別のページに配置することを期待しています。

:path=/static-assets/pdf/content-code-examples/how-to/table-of-contents-overwrite-styling.cs
using IronPdf;
using System.IO;

// Instantiate Renderer
ChromePdfRenderer renderer = new ChromePdfRenderer();

// Configure render options
renderer.RenderingOptions = new ChromePdfRenderOptions
{
    // Enable table of content feature
    TableOfContents = TableOfContentsTypes.WithPageNumbers,
    CustomCssUrl = "./custom.css"
};

// Read HTML text from file
string html = File.ReadAllText("tableOfContent.html");
PdfDocument pdf = renderer.RenderHtmlAsPdf(html);

pdf.SaveAs("tableOfContents.pdf");

ヘッダーのスタイル

'table of contents'内のH1ヘッダーに異なるスタイルを適用するには、'ironpdf-toc ul li.h1'セレクターを使用します。 それぞれのヘッダーのスタイリングを変更するために、『h1』を『h2』から『h6』まで置き換えます。

#ironpdf-toc ul li.h1 {
    font-style: italic;
    font-weight: bold;
}
スタイルヘッダー

フォントファミリー

「#ironpdf-toc li .title」および「#ironpdf-toc li .page」セレクターを使用することで、目次のフォントファミリーを上書きすることが可能です。 タイトルには「cursive」フォントを使用し、Eduardo Tunni がデザインしたカスタム「Lemon」フォントを使用するために @font-face 属性を利用しましょう。

#ironpdf-toc li .title {
    order: 1;
    font-family: cursive;
}

@font-face {
    font-family: 'lemon';
    src: url('Lemon-Regular.ttf')
}

#ironpdf-toc li .page {
    order: 3;
    font-family: 'lemon', sans-serif;
}
カスタムフォントファミリーを設定

インデント

インデントは ':root' セレクターを使用して制御できます。 この値は、目次内の各ヘッダーレベル (h1, h2, ...) のインデント量を決定します。 必要に応じて増やすこともできますし、0の値でインデントをなくすこともできます。

:root {
    --indent-length: 25px;
}
カスタムインデントを設定

ドットライン

ヘッダータイトルとページ番号の間の点線を削除します。 元のスタイリングでは、2番目のパラメーターは「currentcolor 1px」です。 ドットを除去するために、「transparent 1px」に変更してください。 このセレクターでは、新しいスタイリングが単に追加されるのではなく、古いスタイリングを完全に上書きするため、他の属性も指定することが重要です。

#ironpdf-toc li::after {
    background-image: radial-gradient(circle, transparent 1px, transparent 1.5px);
    background-position: bottom;
    background-size: 1ex 4.5px;
    background-repeat: space no-repeat;
    content: "";
    flex-grow: 1;
    height: 1em;
    order: 2;
}
ドットを削除
Chaknith related to ドットライン
ソフトウェアエンジニア
チャクニットは開発者のシャーロック・ホームズです。彼がソフトウェアエンジニアリングの将来性に気付いたのは、楽しみでコーディングチャレンジをしていたときでした。彼のフォーカスはIronXLとIronBarcodeにありますが、すべての製品でお客様を助けることに誇りを持っています。チャクニットは顧客と直接話すことで得た知識を活用して、製品自体のさらなる改善に貢献しています。彼の逸話的なフィードバックは、単なるJiraチケットを超えて、製品開発、ドキュメントおよびマーケティングをサポートし、顧客の全体的な体験を向上させます。オフィスにいないときは、機械学習やコーディングについて学んだり、ハイキングを楽しんだりしています。