PDF のフォント情報を取得するとは、PDF ドキュメント内で使用されているフォントの詳細を抽出するプロセスを指します。この情報には、通常、フォント名、サイズ、種類、色、その他の属性が含まれます。これらの詳細を把握することで、一貫性や著作権の遵守、美観を確保するのに役立ちます。本記事では、C# で Spire.PDF for .NET を使用して PDF のフォント情報を取得する方法を解説します。
Spire.PDF for .NET をインストールします
まず、Spire.PDF for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。
PM> Install-Package Spire.PDF
C# で指定したテキストのフォントを取得する
Spire.PDF for .NET を使用すると、指定したテキストを検索し、フォント名、サイズ、スタイル、色といったフォントフォーマット情報を PdfTextFragment クラスのプロパティから取得できます。以下に詳細な手順を示します。
- PdfDocument インスタンスを作成します。
- PdfDocument.LoadFromFile() メソッドで PDF ファイルを読み込みます。
- PdfDocument.Pages[] プロパティで特定のページを取得します。
- PdfTextFinder インスタンスを作成します。
- PdfTextFinder.Find() メソッドを使用して指定したテキストを検索し、PdfTextFragment オブジェクトを取得します。
- StringBuilder インスタンスを作成し、情報を格納します。
- 見つかったテキストを反復処理します。
- PdfTextFragment.Text プロパティでテキストを取得します。
- PdfTextFragment.TextStates[0].FontName プロパティでフォント名を取得します。
- PdfTextFragment.TextStates[0].FontSize プロパティでフォントサイズを取得します。
- PdfTextFragment.TextStates[0].FontFamily プロパティでフォントファミリを取得します。
- フォントがボールドまたは疑似ボールドかどうか(フォントスタイルが塗りとストロークに設定されている場合)を PdfTextFragment.TextStates[0].IsSimulateBold および PdfTextFragment.TextStates[0].IsItalic プロパティで確認します。
- PdfTextFragment.TextStates[0].ForegroundColor プロパティでフォント色を取得します。
- StringBuilder.AppendLine() メソッドでフォント情報を文字列に追加します。
- 情報をテキストファイルに書き込みます。
- C#
using Spire.Pdf;
using Spire.Pdf.Texts;
using System.Drawing;
using System.Text;
namespace GetTextFont
{
class Program
{
static void Main(string[] args)
{
// PdfDocumentインスタンスを作成
PdfDocument pdf = new PdfDocument();
// PDFファイルを読み込む
pdf.LoadFromFile("Sample.pdf");
// 最初のページを取得
PdfPageBase page = pdf.Pages[0];
// PdfTextFinderインスタンスを作成
PdfTextFinder finds = new PdfTextFinder(page);
// ページ内の指定テキストを検索
finds.Options.Parameter = TextFindParameter.None;
List result = finds.Find("珊瑚礁");
// StringBuilderインスタンスを作成
StringBuilder str = new StringBuilder();
// 検索結果を反復処理
foreach (PdfTextFragment find in result)
{
// 見つかったテキストを取得
string text = find.Text;
// フォント名を取得
string FontName = find.TextStates[0].FontName;
// フォントサイズを取得
float FontSize = find.TextStates[0].FontSize;
// フォントファミリを取得
string FontFamily = find.TextStates[0].FontFamily;
// ボールドまたはイタリックであるかを確認
bool IsBold = find.TextStates[0].IsBold;
bool IsSimulateBold = find.TextStates[0].IsSimulateBold;
bool IsItalic = find.TextStates[0].IsItalic;
// フォント色を取得
Color color = find.TextStates[0].ForegroundColor;
// フォント情報をStringBuilderに追加
str.AppendLine("テキスト: " + text);
str.AppendLine("フォント名: " + FontName);
str.AppendLine("フォントサイズ: " + FontSize);
str.AppendLine("フォントファミリ: " + FontFamily);
str.AppendLine("ボールド: " + IsBold);
str.AppendLine("疑似ボールド: " + IsSimulateBold);
str.AppendLine("イタリック: " + IsItalic);
str.AppendLine("フォント色: " + color);
str.AppendLine();
}
// 情報をテキストファイルに書き込む
File.WriteAllText("PDFフォント.txt", str.ToString());
pdf.Dispose();
}
}
}
C# で PDF に使用されているフォントを取得する
Spire.PDF for .NET は、PDF ドキュメント内で使用されているフォントを表す PdfUsedFont クラスを提供しています。すべての使用フォントのフォーマットを取得するには、各フォントを反復処理して、対応するプロパティからフォント名、サイズ、種類、スタイルを取得します。以下に詳細な手順を示します。
- PdfDocument インスタンスを作成します。
- PdfDocument.LoadFromFile() メソッドで PDF ファイルを読み込みます。
- PdfDocument.UsedFonts プロパティを使用して、PDF ファイルで使用されているすべてのフォントを取得します。
- StringBuilder インスタンスを作成し、情報を格納します。
- 使用フォントを反復処理します。
- PdfUsedFont.Name プロパティでフォント名を取得します。
- PdfUsedFont.Size プロパティでフォントサイズを取得します。
- PdfUsedFont.Type プロパティでフォント種類を取得します。
- PdfUsedFont.Style プロパティでフォントスタイルを取得します。
- StringBuilder.AppendLine() メソッドでフォント情報を文字列に追加します。
- 情報をテキストファイルに書き込みます。
- C#
using Spire.Pdf;
using Spire.Pdf.Graphics;
using Spire.Pdf.Graphics.Fonts;
using System.IO;
using System.Text;
namespace GetPdfFont
{
class Program
{
static void Main(string[] args)
{
// PdfDocumentインスタンスを作成
PdfDocument pdf = new PdfDocument();
// PDFファイルを読み込む
pdf.LoadFromFile("Sample.pdf");
// PDFファイルで使用されているフォントを取得
PdfUsedFont[] fonts = pdf.UsedFonts;
// StringBuilderインスタンスを作成
StringBuilder str = new StringBuilder();
// 使用フォントを反復処理
foreach (PdfUsedFont font in fonts)
{
// フォント名を取得
string name = font.Name;
// フォントサイズを取得
float size = font.Size;
// フォントタイプを取得
PdfFontType type = font.Type;
// フォントスタイルを取得
PdfFontStyle style = font.Style;
// フォント情報をStringBuilderに追加
str.AppendLine($"フォント名: {name}, フォントサイズ: {size}\nフォントタイプ: {type}, フォントスタイル: {style}\n\n");
}
// 情報をテキストファイルに書き込む
File.WriteAllText("PDFフォント情報.txt", str.ToString());
pdf.Close();
}
}
}
一時ライセンスを申請する
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。