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