通常、長い PDF ドキュメントにはアウトライン構造が含まれており、Adobe の Acrobat Reader アプリケーションを使用して開くと、リーダーの左ペインに表示されます。アウトラインがあると、ドキュメントの構造の参照や特定のトピックの検索が簡単になります。次の図に、アウトラインを持つ PDF ドキュメントを示します。

アウトラインエントリはブックマークと呼ばれ、C1PdfDocument.AddBookmark メソッドを使用することによって PDF for UWP ドキュメントに追加できます。C1PdfDocument.AddBookmark(String,Int32,Double) メソッドは3つのパラメータ(アウトラインエントリのタイトル、アウトラインレベル、およびページの先頭からのポイントで計測した現在のページ上のエントリの 'y' 位置)を受け取ります。
たとえば、次のルーチンは、段落をドキュメントに追加し、オプションでその段落にレベル0のアウトラインエントリのマークを付けます。
| Visual Basic |
コードのコピー
|
|---|---|
Private Function RenderParagraph(text As String, font As Font, rect As Rect, rectPage As Rect, outline As Boolean) As Rect ' このページに収まらない場合は、ページ区切りを追加します。 rect.Height = pdf.MeasureString(text, font, rect.Width).Height If rect.Bottom > rectPage.Bottom Then pdf.NewPage() rect.Y = rectPage.Top End If ' 文字列を描画します。 pdf.DrawString(text, font, Colors.Black, rect) ' ヘッダーをアウトラインに追加します。 If outline Then DrawLine(Windows.UI.Colors.Black, rect.X, rect.Y, rect.Right, rect.Y) AddBookmark(text, 0, rect.Y) End If ' 次回の処理のために四角形を更新します。 rect.Offset(0, rect.Height) Return rect End Function |
|
| C# |
コードのコピー
|
|---|---|
private Rect RenderParagraph(string text, Font font, Rect rect, Rect rectPage, bool outline) { // このページに収まらない場合は、ページ区切りを追加します。 rect = new Rect(72, 72, 100, 50); rect.Height = pdf.MeasureString(text, font, rect.Width).Height; if (rect.Bottom > rectPage.Bottom) { pdf.NewPage(); rect.Y = rectPage.Top; } // 文字列を描画します。 pdf.DrawString(text, font, Windows.UI.Colors.Black, rect); // ヘッダーをアウトラインに追加します。 if (outline) { pdf.DrawLine(Windows.UI.Colors.Black, rect.X, rect.Y, rect.Right, rect.Y); pdf.AddBookmark(text, 0, rect.Y); } // 次回の処理のために四角形を更新します。 rect.Offset(0, rect.Height); return rect; } |
|