チュートリアル

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

チュートリアル».NET»Spire.PDF for .NET»テキスト»C#:PDF 文書内のフォント情報を取得する方法
2025-01-03

C#:PDF 文書内のフォント情報を取得する方法

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#で取得した指定テキストのフォント情報

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();
        }
    }
}

Spire.PDFで取得したPDFのフォント情報

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

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

Read 59 times