Adobe Reader アプリケーションを使用して PDF ドキュメントを開くと、大部分の長いドキュメントではリーダーの左ペインにアウトライン構造が表示されることがわかります。このアウトラインにより、ドキュメントの構造全体を見渡して容易に特定のトピックを検索できます。以下の図は、アウトラインを持つ PDF ドキュメントの例を示しています。
The outline entries are called Bookmarks, and you can add them to your PDF for .NET documents using the AddBookmark method. The AddBookmark(String,Int32,Double) method takes three parameters: the title of the outline entry, the outline level, and the 'y' position of the entry on the current page (measured in points from the top of the page).
For example, the routine below adds a paragraph to a document and optionally marks it as a level-zero outline entry:
Visual Basic コードの書き方
Visual Basic |
コードのコピー
|
---|---|
Private Function RenderParagraph(text As String, font As Font, rect As RectangleF, rectPage As RectangleF, outline As Boolean) As RectangleF ' このページに収まらない場合、ページを改行します。 rect.Height = C1PdfDocument1.MeasureString(text, font, rect.Width).Height If rect.Bottom > rectPage.Bottom Then C1PdfDocument1.NewPage() rect.Y = rectPage.Top End If ' テキストを描画します。 C1PdfDocument1.DrawString(text, font, Brushes.Black, rect) ' アウトラインに見出しを追加します。 If outline Then _c1pdf.DrawLine(Pens.Black, rect.X, rect.Y, rect.Right, rect.Y) |
C# コードの書き方
C# |
コードのコピー
|
---|---|
private RectangleF RenderParagraph(string text, Font font, RectangleF rect, RectangleF rectPage, bool outline) { // このページに収まらない場合、ページを改行します。 rect.Height = c1PdfDocument1.MeasureString(text, font, rect.Width).Height; if (rect.Bottom > rectPage.Bottom) { c1PdfDocument1.NewPage(); rect.Y = rectPage.Top; } // テキストを描画します。 c1PdfDocument1.DrawString(text, font, Brushes.Black, rect); // アウトラインに見出しを追加します。 if (outline) { c1PdfDocument1.DrawLine(Pens.Black, rect.X, rect.Y, rect.Right, rect.Y); c1PdfDocument1.AddBookmark(text, 0, rect.Y); } // 次回の四角形を更新します。 rect.Offset(0, rect.Height); |