Pdf for UWP
PDF ドキュメントへのブックマークの追加
C1PDFの使い方 > PDF ドキュメントへのブックマークの追加

通常、長い 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;                       
}
メモ: AddBookmark() メソッドのオーバーロードメソッドをさらに使用して、初期状態でブックマークの子を表示するかどうかを指定するブール値を渡したり、ドキュメントのターゲット名を渡すこともできます。