PDF for WPF and Silverlight
PDF ドキュメントへのブックマークの追加
PDF for WPF/Silverlight の概要 > 機能:PDF for WPF/Silverlight > PDF ドキュメントへのブックマークの追加

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

 

 

アウトラインエントリはブックマークと呼ばれ、C1PdfDocument.AddBookmark メソッドを使用することによって PDF for WPF ドキュメントに追加できます。C1PdfDocument.AddBookmark メソッドは3つのパラメータ(アウトラインエントリのタイトル、アウトラインレベル、およびページの先頭からのポイントで計測した現在のページ上のエントリの 'y' 位置)を受け取ります。

たとえば、次のルーチンは、段落をドキュメントに追加し、オプションでその段落にレベル0のアウトラインエントリのマークを付けます。

VB
コードのコピー
 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(Pens.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, Colors.Black, rect);

    // ヘッダーをアウトラインに追加します。
    if (outline)
    {
        pdf.DrawLine(System.Windows.Media.Colors.Black, rect.X, rect.Y, rect.Right, rect.Y);
        pdf.AddBookmark(text, 0, rect.Y);
    }

    // 次回の処理のために四角形を更新します
    rect.Offset(0, rect.Height);
    return rect;
}   
AddBookmark() メソッドのオーバーロードメソッドをさらに使用して、初期状態でブックマークの子を表示するかどうかを指定するブール値引数を渡したり、ドキュメントのターゲット名を渡すこともできます。