チュートリアル

簡単にライブラリーを使用するためのチュートリアルコレクション

チュートリアル».NET»Spire.PDF for .NET»ブックマーク»C#/VB.NET:PDF ドキュメントのブックマークを取得する方法
2022-09-14

C#/VB.NET:PDF ドキュメントのブックマークを取得する方法

ブックマークは、特にページ数の多い PDF ドキュメントに役立つ機能です。しおりをクリックすることで、読者はドキュメントの対応する場所にすばやくジャンプすることができます。整理された一連のしおりは、目次としても使用することができます。この記事では、Spire.PDF for .NET を使用して PDF ドキュメントからブックマークを取得する方法について説明します。

Spire.PDF for .NET をインストールします

まず、Spire.PDF for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。

PM> Install-Package Spire.PDF

PDF ドキュメントのブックマークを取得する

詳細な手順は以下の通りです。

  • PdfDocument クラスのインスタンスを作成します。
  • PdfDocument.LoadFromFile() メソッドを使用して PDF ドキュメントを読み込みます。
  • PdfDocument.Bookmarks プロパティを使用して、PDF ドキュメント内のブックマーク集を取得します。
  • カスタムメソッド GetBookmarks() を使用して、ブックマークのコンテンツを取得し、TXT ファイルに保存します。
  • C#
  • VB.NET
using System;
using System.IO;
using System.Text;
using Spire.Pdf;
using Spire.Pdf.Bookmarks;

namespace GetBookmark
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // PdfDocumentクラスのインスタンスを作成する
            PdfDocument pdf = new PdfDocument();

            // PDFドキュメントを読み込む
            pdf.LoadFromFile(@"C:\例.pdf");

            // PDF ドキュメント内のブックマーク集を取得する
            PdfBookmarkCollection bookmarks = pdf.Bookmarks;

            //ブックマークを取得し、TXTファイルに保存する
            String result = "ブックマークの取得.txt";
            GetBookmarks(bookmarks, result);

        }

        public static void GetBookmarks(PdfBookmarkCollection bookmarks, string result)
        {
            // StringBuilder クラスのオブジェクトを作成する
            StringBuilder content = new StringBuilder();

            // PDFブックマークの情報を取得する
            if (bookmarks.Count > 0)
            {
                content.AppendLine("PDFブックマーク:");
                foreach (PdfBookmark parentBookmark in bookmarks)
                {
                    //タイトルを取得する
                    content.AppendLine(parentBookmark.Title);

                    //テキストのスタイルを取得する
                    string textStyle = parentBookmark.DisplayStyle.ToString();
                    content.AppendLine(textStyle);
                    GetChildBookmark(parentBookmark, content);
                }
            }

            // TXTファイルに保存する
            File.WriteAllText(result, content.ToString());
        }
        public static void GetChildBookmark(PdfBookmark parentBookmark, StringBuilder content)
        {
            if (parentBookmark.Count > 0)
            {
                foreach (PdfBookmark childBookmark in parentBookmark)
                {
                    //タイトルを取得する
                    content.AppendLine(childBookmark.Title);

                    //テキストのスタイルを取得する
                    string textStyle = childBookmark.DisplayStyle.ToString();
                    content.AppendLine(textStyle);
                    GetChildBookmark(childBookmark, content);
                }
            }

        }
    }
}
Imports System
Imports System.IO
Imports System.Text
Imports Spire.Pdf
Imports Spire.Pdf.Bookmarks

Namespace GetBookmark
    Friend Class Program
        Shared Sub Main(ByVal args() As String)
            ' PdfDocumentクラスのインスタンスを作成する
            Dim pdf As PdfDocument = New PdfDocument()

            ' PDFドキュメントを読み込む
            pdf.LoadFromFile("C:\例.pdf")

            ' PDF ドキュメント内のブックマーク集を取得する
            Dim bookmarks As PdfBookmarkCollection = pdf.Bookmarks

            'ブックマークを取得し、TXTファイルに保存する
            Dim result As String = "ブックマークの取得.txt"
            GetBookmarks(bookmarks, result)

        End Sub

        Public Shared Sub GetBookmarks(ByVal bookmarks As PdfBookmarkCollection, ByVal result As String)
            ' StringBuilder クラスのオブジェクトを作成する
            Dim content As StringBuilder = New StringBuilder()

            ' PDFブックマークの情報を取得する
            If bookmarks.Count > 0 Then
                content.AppendLine("PDFブックマーク:")
                Dim parentBookmark As PdfBookmark
                For Each parentBookmark In bookmarks
                    'タイトルを取得する
                    content.AppendLine(parentBookmark.Title)

                    'テキストのスタイルを取得する
                    Dim textStyle As String = parentBookmark.DisplayStyle.ToString()
                    content.AppendLine(textStyle)
                    GetChildBookmark(parentBookmark, content)
                Next
            End If

            ' TXTファイルに保存する
            File.WriteAllText(result, content.ToString())
        End Sub
        Public Shared Sub GetChildBookmark(ByVal parentBookmark As PdfBookmark, ByVal content As StringBuilder)
            If parentBookmark.Count > 0 Then
                Dim childBookmark As PdfBookmark
                For Each childBookmark In parentBookmark
                    'タイトルを取得する
                    content.AppendLine(childBookmark.Title)

                    'テキストのスタイルを取得する
                    Dim textStyle As String = childBookmark.DisplayStyle.ToString()
                    content.AppendLine(textStyle)
                    GetChildBookmark(childBookmark, content)
                Next
            End If

        End Sub
    End Class
End Namespace

C#/VB.NET:PDF ドキュメントのブックマークを取得する方法

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。 にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Read 914 times