チュートリアル

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

Koohji

Koohji

PDF ドキュメントのヘッダーとフッターは、タイトル、著者、日付、ページ番号などの貴重な情報を提供し、ドキュメントの使いやすさとブランドアイデンティティを向上させます。この記事では、C# で Spire.PDF for .NET を使用して既存の PDF ドキュメントにヘッダーとフッターを追加する方法を説明します。

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

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

PM> Install-Package Spire.PDF

基本知識

Spire.PDF for .NET を使用して既存の PDF を操作する場合、座標系の原点はページの左上にあり、X 軸は右に、Y 軸は下に伸びています。ヘッダーを追加するには、上部の空白領域にコンテンツを配置し、フッターを追加するには下部の空白領域にコンテンツを配置します。

C#:PDF 文書にヘッダーとフッターを追加する方法

空白領域がコンテンツを収容するのに十分でない場合は、PDF ページの余白を広げることを検討できます。

C# で既存の PDF ドキュメントにヘッダーを追加する

Spire.PDF for .NET では、PdfCanvas.DrawString()PdfCanvas.DrawImage()PdfCanvas.DrawLine() などのメソッドを使用して、PDF ページにテキスト、画像、図形を描画できます。ページ番号や日付などの動的情報をヘッダーに追加するには、PdfPageNumberFieldPdfSectionNumberFieldPdfCreationDateField などの自動フィールドを使用します。

以下は Spire.PDF for .NET を使用して、テキスト、画像、日付、線で構成されるヘッダーを PDF ドキュメントに追加する手順です。

  • PdfDocument オブジェクトを作成します。
  • PdfDocument.LoadFromFile() メソッドを使用して PDF ドキュメントを読み込みます。
  • テキストや図形を描画するために使用するフォント、ペン、ブラシオブジェクトを作成します。
  • PdfPageBase.Canvas.DrawString() メソッドを使用して、ページの上部空白領域にテキストを描画します。
  • PdfPageBase.Canvas.DrawLine() メソッドを使用して、ページの上部空白領域に線を描画します。
  • PdfImage.FromFile() メソッドを使用して画像を読み込みます。
  • PdfPageBase.Canvas.DrawImage() メソッドを使用して、ページの上部空白領域に画像を描画します。
  • ドキュメントの作成時間を反映する PdfCreationDateField オブジェクトを作成します。
  • PdfCreationDateField.Draw() メソッドを使用して、ページの上部空白領域に作成時間を描画します。
  • PdfDocument.SaveToFile() メソッドを使用してドキュメントを別の PDF ファイルに保存します。
  • C#
using Spire.Pdf;
using Spire.Pdf.AutomaticFields;
using Spire.Pdf.Graphics;
using System.Drawing;

namespace AddHeaderToExistingPdf
{
    class Program
    {
        static void Main(string[] args)
        {
            //PdfDocumentオブジェクトを作成
            PdfDocument doc = new PdfDocument();

            //PDFファイルを読み込む
            doc.LoadFromFile("Sample.pdf");

            //ヘッダー用の画像を読み込む
            PdfImage headerImage = PdfImage.FromFile("Logo.png");

            //画像の幅をピクセルで取得
            float width = headerImage.Width;

            //ピクセルをポイントに変換
            PdfUnitConvertor unitCvtr = new PdfUnitConvertor();
            float pointWidth = unitCvtr.ConvertUnits(width, PdfGraphicsUnit.Pixel, PdfGraphicsUnit.Point);

            //ヘッダー用のテキストを指定
            string headerText = "E-iceblue テック\nwww.e-iceblue.com";

            //TrueTypeフォントを作成
            PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Yu Gothic UI", 12f, FontStyle.Bold), true);

            //ブラシを作成
            PdfBrush brush = PdfBrushes.Purple;

            //ペンを作成
            PdfPen pen = new PdfPen(brush, 1.0f);

            //作成日時フィールドを作成
            PdfCreationDateField creationDateField = new PdfCreationDateField(font, brush);
            creationDateField.DateFormatString = "yyyy-MM-dd";

            //静的文字列と日付フィールドを組み合わせる複合フィールドを作成
            PdfCompositeField compositeField = new PdfCompositeField(font, brush, "作成時間:{0}", creationDateField);
            compositeField.Location = new Point(55, 48);

            //ドキュメント内のページをループ
            for (int i = 0; i < doc.Pages.Count; i++)
            {
                //特定のページを取得
                PdfPageBase page = doc.Pages[i];

                //画像を上部の空白領域に描画
                page.Canvas.DrawImage(headerImage, page.ActualSize.Width - pointWidth - 55, 20);

                //テキストを上部の空白領域に描画
                page.Canvas.DrawString(headerText, font, brush, 55, 20);

                //上部の空白領域に線を描画
                page.Canvas.DrawLine(pen, new PointF(55, 70), new PointF(page.ActualSize.Width - 55, 70));

                //複合フィールドを上部の空白領域に描画
                compositeField.Draw(page.Canvas);
            }

            //ファイルに保存
            doc.SaveToFile("output/PDFにヘッダーを挿入.pdf");
            doc.Dispose();
        }
    }
}

C#:PDF 文書にヘッダーとフッターを追加する方法

C# で既存の PDF ドキュメントにフッターを追加する

同様に、PdfCanvas.DrawString()PdfCanvas.DrawImage()PdfCanvas.DrawLine() を使用してフッターを追加できます。PdfPageNumberFieldPdfPageCountField などの自動フィールドは動的データの統合を助けます。

以下は Spire.PDF for .NET を使用して、画像とページ番号で構成されるフッターを PDF ドキュメントに追加する手順です。

  • PdfDocument オブジェクトを作成します。
  • PdfDocument.LoadFromFile() メソッドを使用して PDF ドキュメントを読み込みます。
  • PdfImage.FromFile() メソッドを使用して画像を読み込みます。
  • PdfPageBase.Canvas.DrawImage() メソッドを使用して、ページの下部空白領域に画像を描画します。
  • PdfPageNumberField オブジェクトと PdfPageCountField オブジェクトを作成し、それらを PdfCompositeField オブジェクトに組み合わせて "X/Y" という文字列を返します。
  • PdfCompositeField.Draw() メソッドを使用して、ページの下部空白領域にページ番号を描画します。
  • PdfDocument.SaveToFile() メソッドを使用してドキュメントを別の PDF ファイルに保存します。
  • C#
using Spire.Pdf;
using Spire.Pdf.AutomaticFields;
using Spire.Pdf.Graphics;
using System.Drawing;

namespace AddHeaderToExistingPdf
{
    class Program
    {
        static void Main(string[] args)
        {
            //PdfDocumentオブジェクトを作成
            PdfDocument doc = new PdfDocument();

            //PDFファイルを読み込む
            doc.LoadFromFile("Sample.pdf");

            //画像を読み込む
            PdfImage footerImage = PdfImage.FromFile("bg.png");

            //TrueTypeフォントを作成
            PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Yu Gothic UI", 12f, FontStyle.Bold), true);

            //ブラシを作成
            PdfBrush brush = PdfBrushes.White;

            //ページ番号フィールドを作成
            PdfPageNumberField pageNumberField = new PdfPageNumberField();

            //ページ数フィールドを作成
            PdfPageCountField pageCountField = new PdfPageCountField();

            //ページ数フィールドとページ番号フィールドを単一の文字列に結合する複合フィールドを作成
            PdfCompositeField compositeField = new PdfCompositeField(font, brush, "{0} / {1}", pageNumberField, pageCountField);

            //テキストサイズを取得
            SizeF fontSize = font.MeasureString(compositeField.Text);

            //ページサイズを取得
            SizeF pageSize = doc.Pages[0].Size;

            //複合フィールドの位置を設定
            compositeField.Location = new Point((int)(pageSize.Width - fontSize.Width) / 2, (int)pageSize.Height - 45);

            //ドキュメント内のページをループ
            for (int i = 0; i < doc.Pages.Count; i++)
            {
                //特定のページを取得
                PdfPageBase page = doc.Pages[i];

                //画像を下部の空白領域に描画
                page.Canvas.DrawImage(footerImage, 55, pageSize.Height - 65, pageSize.Width - 110, 50);

                //複合フィールドを下部の空白領域に描画
                compositeField.Draw(page.Canvas);
            }

            //ファイルに保存
            doc.SaveToFile("output/PDFにフッターを挿入.pdf");
            doc.Dispose();
        }
    }
}

C#:PDF 文書にヘッダーとフッターを追加する方法

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

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

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# で特定の PDF ブックマークを展開・折りたたむ

Spire.PDF for .NET は、PdfBookmark.ExpandBookmark プロパティを使用して、指定されたブックマークを展開または折りたたむことができます。以下は詳細な手順です。

  • PdfDocument オブジェクトを作成します。
  • PdfDocument.LoadFromFile() メソッドを使用して、PDF ファイルを読み込みます。
  • PdfDocument.Bookmarks[] プロパティを使って、PDF ファイル内の特定のブックマークを取得します。
  • PdfBookmark.ExpandBookmark プロパティを true に設定して、ブックマークを展開します。または、false に設定してブックマークを折りたたみます。
  • PdfDocument.SaveToFile() メソッドを使用して、結果の PDF ファイルを保存します。
  • C#
using Spire.Pdf;
using Spire.Pdf.Bookmarks;

namespace ExpandOrCollapseABookmark
{
    class Program
    {
        static void Main(string[] args)
        {
            // PdfDocumentオブジェクトを作成
            PdfDocument pdf = new PdfDocument();

            // PDFファイルをロード
            pdf.LoadFromFile("Sample.pdf");

            // 指定されたブックマークを取得
            PdfBookmark bookmarks = pdf.Bookmarks[0];

            // ブックマークを展開
            bookmarks.ExpandBookmark = true;
            // ブックマークを折りたたむ
            // bookmarks.ExpandBookmark = false;

            // 結果ファイルを保存
            pdf.SaveToFile("output/特定のPDFブックマークを展開.pdf");
            pdf.Close();
        }
    }
}

C#:PDF のブックマークを展開または折りたたむ

C# で PDF のすべてのブックマークを展開・折りたたむ

PDF ファイル内のすべてのブックマークを順次処理し、それぞれのブックマークを PdfBookmark.ExpandBookmark プロパティを使用して展開または折りたたむことも可能です。以下はその詳細な手順です。

  • PdfDocument オブジェクトを作成します。
  • PdfDocument.LoadFromFile() メソッドを使用して、PDF ファイルを読み込みます。
  • PDF ファイル内のすべてのブックマークを反復処理します。
  • PdfBookmark.ExpandBookmark プロパティを true に設定して、各ブックマークを展開します。または、false に設定して、各ブックマークを折りたたみます。
  • PdfDocument.SaveToFile() メソッドを使用して、結果の PDF ファイルを保存します。
  • C#
using Spire.Pdf;
using Spire.Pdf.Bookmarks;

namespace ExpandOrCollapsePDFBookmarks
{
    class Program
    {
        static void Main(string[] args)
        {
            // PdfDocumentオブジェクトを作成
            PdfDocument pdf = new PdfDocument();

            // PDFファイルをロード
            pdf.LoadFromFile("Sample.pdf");

            // すべてのブックマークをループして展開
            foreach (PdfBookmark bookmark in pdf.Bookmarks)
            {
                bookmark.ExpandBookmark = true;
            }

            // 結果ファイルを保存
            pdf.SaveToFile("output/すべてのPDFブックマークを展開.pdf");
            pdf.Close();
        }
    }
}

C#:PDF のブックマークを展開または折りたたむ

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

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

PDF は、データの共有や記録に広く使われる人気のあるドキュメント形式です。特に PDF に含まれる表のデータを抽出する必要がある場面に出くわすことがあります。例えば、請求書の PDF に保存された表の中に有用な情報があり、そのデータを分析や計算に利用したい場合です。本記事では、Spire.PDF for .NET を使用して、PDF の表からデータを抽出し、それをテキストファイルや Excel ワークシートに保存する方法を紹介します。

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

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

PM> Install-Package Spire.PDF

C# で PDF 表データをテキストファイルに抽出する

Spire.PDF for .NET には、PdfTableExtractor.ExtractTable() メソッドがあり、PDF ページ上のすべての表を抽出することができます。このメソッドを使用して PDF ドキュメントから表を抽出した後、PdfTable.GetText() メソッドを使用して表の値を取得し、それをテキストファイルに書き出すことができます。PDF表データをテキストファイルに抽出する手順は以下の通りです:

  • PdfDocument オブジェクトを作成し、PdfDocument.LoadFromFile() メソッドで PDF ドキュメントを読み込みます。
  • 読み込んだ PDF ドキュメントに対して PdfTableExtractor オブジェクトを作成します。
  • PdfTableExtractor.ExtractTable() メソッドを使ってドキュメントの各ページにある表を抽出します。
  • 各表を順に処理します:
    • StringBuilder オブジェクトを作成し、表データを格納します。
    • 行と列をループして、Table.GetText() メソッドを使ってセルの値を取得し、それを StringBuilder オブジェクトに追加します。
    • 最終的に StringBuilder オブジェクトをテキストファイルに書き出します。
  • C#
using Spire.Pdf;
using Spire.Pdf.Utilities;
using System.Text;

namespace PDFTableToText
{
    class Program
    {
        static void Main(string[] args)
        {
            // PdfDocumentオブジェクトを作成し、PDFドキュメントをロード
            PdfDocument pdf = new PdfDocument();
            pdf.LoadFromFile("Sample.pdf");

            // 読み込んだPDFのためのテーブルエクストラクターを初期化
            PdfTableExtractor tableExtractor = new PdfTableExtractor(pdf);

            // PDFの各ページを繰り返し処理
            for (int pageIndex = 0; pageIndex < pdf.Pages.Count; pageIndex++)
            {
                // 現在のページからテーブルを抽出
                PdfTable[] tables = tableExtractor.ExtractTable(pageIndex);
                if (tables != null)
                {
                    // 抽出された各テーブルを繰り返し処理
                    for (int tableIndex = 0; tableIndex < tables.Length; tableIndex++)
                    {
                        // StringBuilderオブジェクトを作成
                        StringBuilder stringBuilder = new StringBuilder();

                        // テーブルの各行と列を繰り返し処理
                        for (int rowIndex = 0; rowIndex < tables[tableIndex].GetRowCount(); rowIndex++)
                        {
                            for (int columnIndex = 0; columnIndex < tables[tableIndex].GetColumnCount(); columnIndex++)
                            {
                                // テーブルのセルテキストを取得し、改行を削除
                                string cellText = tables[tableIndex].GetText(rowIndex, columnIndex);
                                string text = cellText.Replace("\n", " ");
                                // StringBuilderオブジェクトにセルテキストを追加
                                if (columnIndex < tables[tableIndex].GetColumnCount() - 1)
                                {
                                    stringBuilder.Append(text + "");
                                }
                                else
                                {
                                    stringBuilder.Append(text);
                                }
                            }
                            // 各テーブル行のために行を切り替え
                            if (rowIndex < tables[tableIndex].GetRowCount() - 1)
                            {
                                stringBuilder.AppendLine();
                            }
                        }

                        // テーブル内容をテキストファイルに書き込み
                        string outputFilePath = $"output/Page{pageIndex + 1}_Table{tableIndex + 1}.txt";
                        File.WriteAllText(outputFilePath, stringBuilder.ToString());
                    }
                }
            }
        }
    }
}

C#:PDF ドキュメントから表を抽出する方法

C# で PDF 表データを Excel ファイルに抽出する

PDF 表のセルの値を上記と同様に取得し、Spire.XLS for .NET を使用して Excel ファイルに書き出すことができます。最初に Spire.XLS for .NET をインストールする必要があります:

PM> Install-Package Spire.XLS

PDF 表データを Excel ファイルに抽出する手順は以下の通りです:

  • PdfDocument オブジェクトを作成し、PdfDocument.LoadFromFile() メソッドで PDF ドキュメントを読み込みます。
  • Workbook オブジェクトを作成し、Workbook.Worksheets.Clear() メソッドでデフォルトのワークシートをクリアします。
  • 読み込んだ PDF ドキュメントに対して PdfTableExtractor オブジェクトを作成します。
  • PdfTableExtractor.ExtractTable() メソッドを使ってドキュメントの各ページにある表を抽出します。
  • 各表を順に処理します:
    • 表ごとに Workbook にワークシートを追加します。
    • 行と列をループして、Table.GetText() メソッドを使ってセルの値を取得し、Worksheet.Range[].Text プロパティを通じて対応する位置に挿入します。
    • セルの書式を設定します。
  • 最後に Workbook.SaveToFile() メソッドを使ってワークブックを保存します。
  • C#
using Spire.Pdf;
using Spire.Pdf.Utilities;
using Spire.Xls;
using System.Text;

namespace PDFTableToText
{
    class Program
    {
        static void Main(string[] args)
        {
            // PdfDocumentオブジェクトを作成し、PDFドキュメントをロード
            PdfDocument pdf = new PdfDocument();
            pdf.LoadFromFile("Sample.pdf");

            // Workbookオブジェクトを作成
            Workbook workbook = new Workbook();
            // デフォルトのワークシートをクリア
            workbook.Worksheets.Clear();

            // 読み込んだPDFのためのテーブルエクストラクターを初期化
            PdfTableExtractor tableExtractor = new PdfTableExtractor(pdf);

            // PDFの各ページを繰り返し処理
            for (int pageIndex = 0; pageIndex < pdf.Pages.Count; pageIndex++)
            {
                // 現在のページからテーブルを抽出
                PdfTable[] tables = tableExtractor.ExtractTable(pageIndex);
                if (tables != null)
                {
                    // ページ上の各抽出されたテーブルを繰り返し処理
                    for (int tableIndex = 0; tableIndex < tables.Length; tableIndex++)
                    {
                        // ワークブックにワークシートを追加
                        Worksheet sheet = workbook.Worksheets.Add($"Page{pageIndex + 1}-Table{tableIndex + 1}");

                        // テーブル内の各行と列を繰り返し処理
                        for (int rowIndex = 0; rowIndex < tables[tableIndex].GetRowCount(); rowIndex++)
                        {
                            for (int columnIndex = 0; columnIndex < tables[tableIndex].GetColumnCount(); columnIndex++)
                            {
                                // テーブルからセルテキストを取得し、改行を削除
                                string cellText = tables[tableIndex].GetText(rowIndex, columnIndex);
                                string text = cellText.Replace("\n", "");
                                // ワークシートの対応する位置にセルテキストを挿入
                                sheet.Range[rowIndex + 1, columnIndex + 1].Text = text;
                            }
                        }

                        // テーブルヘッダのフォーマットを設定
                        sheet.Rows[0].Style.Font.FontName = "Yu Gothic UI";
                        sheet.Rows[0].Style.Font.Size = 12;
                        sheet.Rows[0].Style.Font.IsBold = true;
                        sheet.Rows[0].Style.HorizontalAlignment = HorizontalAlignType.Center;
                        // データ行のフォーマットを設定
                        for (int rowIndex = 1; rowIndex < sheet.Rows.Length; rowIndex++)
                        {
                            sheet.Rows[rowIndex].Style.Font.FontName = "Yu Gothic UI";
                            sheet.Rows[0].Style.Font.Size = 12;
                            sheet.Rows[0].Style.HorizontalAlignment = HorizontalAlignType.Left;
                        }
                        // 各列を自動調整
                        for (int columnIndex = 1; columnIndex <= sheet.Columns.Length; columnIndex++)
                        {
                            sheet.AutoFitColumn(columnIndex);
                        }
                    }
                }
            }

            // ワークブックを保存
            workbook.SaveToFile("PDFTableToExcel.xlsx", Spire.Xls.FileFormat.Version2016);
            pdf.Close();
            workbook.Dispose();
        }
    }
}

C#:PDF ドキュメントから表を抽出する方法

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

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

PDF のブックマークは、ユーザーが特定のセクションやページに素早く移動できるナビゲーション機能です。ワンクリックで目的の場所にジャンプでき、長い文書を手動でスクロールしたり、特定の内容を探す手間を省くことができます。この記事では、Spire.PDF for .NET を使用して、プログラムで PDF 文書にブックマークを追加、編集、削除する方法を紹介します。

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

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

PM> Install-Package Spire.PDF

C# で PDF 文書にブックマークを追加する

Spire.PDF for .NET は、PdfDocument.Bookmarks.Add() メソッドを提供しており、これを使って PDF 文書にブックマークを追加できます。ブックマークを作成した後、PdfBookmark.Add() メソッドを使用して、サブブックマークも追加できます。以下に、詳細な手順を示します。

  • PdfDocument オブジェクトを作成する。
  • PdfDocument.LoadFromFile() メソッドを使って PDF ファイルを読み込む。
  • PDF ファイル内の全ページをループして、ブックマークを追加し、スタイルを設定する。
  • PdfDocument.Bookmarks.Add() メソッドを使用して、親ブックマークを文書に追加する。
  • PdfDestination オブジェクトを作成し、PdfBookmark.Action プロパティを使って親ブックマークの移動先を設定する。
  • 親ブックマークのテキスト色とスタイルを設定する。
  • PdfBookmark.Add() メソッドを使って、親ブックマークにサブブックマークを追加する。
  • サブブックマークの移動先、テキスト色、テキストスタイルを設定する。
  • PdfDocument.SaveToFile() メソッドを使用して、文書を保存する。
  • C#
using System.Drawing;
using Spire.Pdf;
using Spire.Pdf.Graphics;
using Spire.Pdf.Actions;
using Spire.Pdf.Bookmarks;
using Spire.Pdf.General;

namespace AddBookmark
{
    class Program
    {
        static void Main(string[] args)
        {
            //PdfDocumentオブジェクトを作成
            PdfDocument pdf = new PdfDocument();

            //サンプルPDFファイルを読み込む
            pdf.LoadFromFile("Sample.pdf");

            //PDFファイルのページをループする
            for (int i = 0; i < pdf.Pages.Count; i++)
            {
                PdfPageBase page = pdf.Pages[i];

                //ブックマークを追加
                PdfBookmark bookmark = pdf.Bookmarks.Add(string.Format("ブックマーク-{0}", i + 1));

                //ブックマークの目的のページと位置を設定
                PdfDestination destination = new PdfDestination(page, new PointF(0, 0));
                bookmark.Action = new PdfGoToAction(destination);

                //ブックマークのテキストの色とスタイルを設定
                bookmark.Color = new PdfRGBColor(Color.Black);
                bookmark.DisplayStyle = PdfTextStyle.Bold;

                //子ブックマークを追加
                PdfBookmark childBookmark = bookmark.Add(string.Format("サブブックマーク-{0}", i + 1));

                //子ブックマークの目的のページと位置を設定
                PdfDestination childDestination = new PdfDestination(page, new PointF(0, 100));
                childBookmark.Action = new PdfGoToAction(childDestination);

                //子ブックマークのテキストの色とスタイルを設定
                childBookmark.Color = new PdfRGBColor(Color.Brown);
                childBookmark.DisplayStyle = PdfTextStyle.Italic;
            }

            //結果ファイルを保存
            pdf.SaveToFile("output/ブックマークを追加.pdf");
            pdf.Close();
        }
    }
}

C#:PDF 文書におけるブックマークの追加、編集、削除

C# で PDF 文書内のブックマークを編集する

既存のブックマークを更新する場合、PdfBookmark クラスのメソッドを使用して、ブックマークの名前を変更したり、テキストの色やスタイルを変更できます。以下に、詳細な手順を示します。
  • PdfDocument オブジェクトを作成する。
  • PdfDocument.LoadFromFile() メソッドを使って PDF ファイルを読み込む。
  • PdfDocument.Bookmarks[] プロパティを使って、指定したブックマークを取得する。
  • PdfBookmark.Title プロパティを使って、ブックマークのタイトルを変更する。
  • PdfBookmark.Color プロパティを使って、ブックマークのフォントの色を変更する。
  • PdfBookmark.DisplayStyle プロパティを使って、ブックマークのテキストスタイルを変更する。
  • 上記のメソッドを使用して、サブブックマークのテキスト色やスタイルを変更する。
  • PdfDocument.SaveToFile() メソッドを使用して、文書を保存する。
  • C#
using Spire.Pdf;
using Spire.Pdf.Bookmarks;
using System.Drawing;

namespace ModifyBookmarks
{
    class Program
    {
        static void Main(string[] args)
        {
            //PdfDocumentオブジェクトを作成
            PdfDocument pdf = new PdfDocument();

            //サンプルPDFファイルを読み込む
            pdf.LoadFromFile("output/ブックマークを追加.Pdf");

            //最初のブックマークを取得
            PdfBookmark bookmark = pdf.Bookmarks[0];

            //ブックマークのタイトルを変更
            bookmark.Title = "変更されたブックマーク";

            //ブックマークのテキストの色とスタイルを変更
            bookmark.Color = Color.Red;
            bookmark.DisplayStyle = PdfTextStyle.Italic;

            //最初のブックマークのサブブックマークを編集
            foreach (PdfBookmark childBookmark in bookmark)
            {
                childBookmark.Color = Color.Blue;
                childBookmark.DisplayStyle = PdfTextStyle.Bold;
            }

            //結果ファイルを保存
            pdf.SaveToFile("output/ブックマークを編集.Pdf");
            pdf.Close();
        }
    }
}

C#:PDF 文書におけるブックマークの追加、編集、削除

C# で PDF 文書からブックマークを削除する

Spire.PDF for .NET では、特定のブックマークだけでなく、PDF ファイル内のすべてのブックマークを削除することが可能です。また、特定のサブブックマークだけを削除することもできます。以下に、詳細な手順を示します。

  • PdfDocument オブジェクトを作成する。
  • PdfDocument.LoadFromFile() メソッドを使って PDF ファイルを読み込む。
  • PdfDocument.Bookmarks[] プロパティを使って、最初のブックマークを取得する。
  • PdfBookmark.RemoveAt() メソッドを使って、最初のブックマークの指定したサブブックマークを削除する。
  • PdfDocument.Bookmarks.RemoveAt() メソッドを使って、指定したブックマークとそのサブブックマークを削除する。または、PdfDocument.Bookmarks.Clear() メソッドを使って、PDF ファイル内のすべてのブックマークを削除することも可能です。
  • PdfDocument.SaveToFile() メソッドを使用して、文書を保存する。
  • C#
using Spire.Pdf;
using Spire.Pdf.Bookmarks;

namespace DeleteBookmarks
{
    class Program
    {
        static void Main(string[] args)
        {
            //PdfDocumentオブジェクトを作成
            PdfDocument pdf = new PdfDocument();

            //サンプルPDFファイルを読み込む
            pdf.LoadFromFile("output/ブックマークを追加.Pdf");

            //最初のブックマークを取得
            PdfBookmark bookmark = pdf.Bookmarks[0];

            //最初のブックマークの最初のサブブックマークを削除
            bookmark.RemoveAt(0);

            //2番目のブックマークとそのサブブックマークを削除
            pdf.Bookmarks.RemoveAt(1);

            //すべてのブックマークを削除
            //pdf.Bookmarks.Clear();

            //結果ファイルを保存
            pdf.SaveToFile("output/ブックマークを削除.pdf");
            pdf.Close();
        }
    }
}

C#:PDF 文書におけるブックマークの追加、編集、削除

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

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

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# で特定の PDF ページ内の一致するテキストを置換

Spire.PDF for .NET は、PdfTextReplacer.ReplaceAllText() メソッドを提供しており、ページ内のターゲットテキストのすべての一致箇所を新しいテキストに置換することが可能です。以下は、C# で特定のページ内の一致するテキストを置換する手順です。

  • PdfDocument オブジェクトを作成する。
  • PDF ファイルを読み込む。
  • 文書から特定のページを取得する。
  • PdfTextReplaceOptions オブジェクトを作成し、ReplaceType プロパティを使って置換オプションを指定する。
  • PdfTextReplacer オブジェクトを作成し、Options プロパティを使用して置換オプションを適用する。
  • PdfTextReplacer.ReplaceAllText() メソッドを使って、ページ内のすべての一致するテキストを新しいテキストに置換する。
  • 文書を保存する。
  • C#
using Spire.Pdf;
using Spire.Pdf.Texts;

namespace ReplaceTextInPage
{
    class Program
    {
        static void Main(string[] args)
        {
            // PdfDocumentオブジェクトを作成
            PdfDocument doc = new PdfDocument();

            // PDFファイルを読み込む
            doc.LoadFromFile("Sample.pdf");

            // PdfTextReplaceOptionsオブジェクトを作成
            PdfTextReplaceOptions textReplaceOptions = new PdfTextReplaceOptions();

            // テキスト置換のオプションを指定
            textReplaceOptions.ReplaceType = PdfTextReplaceOptions.ReplaceActionType.IgnoreCase;
            textReplaceOptions.ReplaceType = PdfTextReplaceOptions.ReplaceActionType.WholeWord;
            textReplaceOptions.ReplaceType = PdfTextReplaceOptions.ReplaceActionType.AutofitWidth;

            // 特定のページを取得
            PdfPageBase page = doc.Pages[0];

            // ページに基づいてPdfTextReplacerオブジェクトを作成
            PdfTextReplacer textReplacer = new PdfTextReplacer(page);

            // 置換オプションを設定
            textReplacer.Options = textReplaceOptions;

            // ターゲットテキストを新しいテキストに全て置換
            textReplacer.ReplaceAllText("Spire.PDF for .NET", "Spire.Pdf for .Net");

            // ドキュメントを別のPDFファイルに保存
            doc.SaveToFile("PDFページのテキストを置換.pdf");

            // リソースを解放
            doc.Dispose();
        }
    }
}

C#:PDF 文書のテキストを置換する方法

C# で PDF 文書全体の一致するテキストを置換

文書全体のすべての一致するテキストを新しいテキストに置換するには、文書内のページを繰り返し処理し、それぞれのページで PdfTextReplacer.ReplaceAllText() メソッドを使用してテキストを置換する必要があります。

以下は、C# で PDF 文書全体の一致するテキストを置換する手順です。

  • PdfDocument オブジェクトを作成する。
  • PDF ファイルを読み込む。
  • PdfTextReplaceOptions オブジェクトを作成し、ReplaceType プロパティを使って置換オプションを指定する。
  • 文書内の各ページを繰り返し処理する。
    • 指定されたページに基づいて PdfTextReplacer オブジェクトを作成し、Options プロパティを使って置換オプションを適用する。
    • PdfTextReplacer.ReplaceAllText() メソッドを使ってページ内のすべての一致するテキストを新しいテキストに置換する。
  • 文書を保存する。
  • C#
using Spire.Pdf;
using Spire.Pdf.Texts;

namespace ReplaceInEntireDocument
{
    class Program
    {
        static void Main(string[] args)
        {
            // PdfDocumentオブジェクトを作成
            PdfDocument doc = new PdfDocument();

            // PDFファイルを読み込む
            doc.LoadFromFile("Sample.pdf");

            // PdfTextReplaceOptionsオブジェクトを作成
            PdfTextReplaceOptions textReplaceOptions = new PdfTextReplaceOptions();

            // テキスト置換のオプションを指定
            textReplaceOptions.ReplaceType = PdfTextReplaceOptions.ReplaceActionType.IgnoreCase;
            textReplaceOptions.ReplaceType = PdfTextReplaceOptions.ReplaceActionType.WholeWord;
            textReplaceOptions.ReplaceType = PdfTextReplaceOptions.ReplaceActionType.AutofitWidth;

            for (int i = 0; i < doc.Pages.Count; i++)
            {

                // 特定のページを取得
                PdfPageBase page = doc.Pages[i];

                // ページに基づいてPdfTextReplacerオブジェクトを作成
                PdfTextReplacer textReplacer = new PdfTextReplacer(page);

                // 置換オプションを設定
                textReplacer.Options = textReplaceOptions;

                // ターゲットテキストを新しいテキストに全て置換
                textReplacer.ReplaceAllText("Spire.PDF for .NET", "Spire.Pdf for .Net");
            }

            // ドキュメントを別のPDFファイルに保存
            doc.SaveToFile("PDF文書のテキストを置換.pdf");

            // リソースを解放
            doc.Dispose();
        }
    }
}

C# で最初の一致するテキストのみを置換

ページ内のすべての一致するテキストを置換する代わりに、PdfTextReplacer クラスの ReplaceText() メソッドを使用して、ターゲットテキストの最初の一致箇所のみを置換することができます。

以下は、C# でターゲットテキストの最初の一致箇所を置換する手順です。

  • PdfDocument オブジェクトを作成する。
  • PDF ファイルを読み込む。
  • 文書から特定のページを取得する。
  • PdfTextReplaceOptions オブジェクトを作成し、ReplaceType プロパティを使って置換オプションを指定する。
  • PdfTextReplacer オブジェクトを作成し、Options プロパティを使用して置換オプションを適用する。
  • PdfTextReplacer.ReplaceText() メソッドを使ってページ内の最初のターゲットテキストを新しいテキストに置換する。
  • 文書を保存する。
  • C#
using Spire.Pdf;
using Spire.Pdf.Texts;

namespace ReplaceFirstOccurance
{
    class Program
    {
        static void Main(string[] args)
        {
            // PdfDocumentオブジェクトを作成
            PdfDocument doc = new PdfDocument();

            // PDFファイルを読み込む
            doc.LoadFromFile("Sample.pdf");

            // PdfTextReplaceOptionsオブジェクトを作成
            PdfTextReplaceOptions textReplaceOptions = new PdfTextReplaceOptions();

            // テキスト置換のオプションを指定
            textReplaceOptions.ReplaceType = PdfTextReplaceOptions.ReplaceActionType.IgnoreCase;
            textReplaceOptions.ReplaceType = PdfTextReplaceOptions.ReplaceActionType.WholeWord;
            textReplaceOptions.ReplaceType = PdfTextReplaceOptions.ReplaceActionType.AutofitWidth;

            // 特定のページを取得
            PdfPageBase page = doc.Pages[0];

            // ページに基づいてPdfTextReplacerオブジェクトを作成
            PdfTextReplacer textReplacer = new PdfTextReplacer(page);

            // 置換オプションを設定
            textReplacer.Options = textReplaceOptions;

            // ターゲットテキストの最初の出現を新しいテキストに置換
            textReplacer.ReplaceText("Spire.PDF for .NET", "Spire.Pdf for .Net");

            // ドキュメントを別のPDFファイルに保存
            doc.SaveToFile("PDF内の最初の一致するテキストを置換.pdf");

            // リソースを解放
            doc.Dispose();
        }
    }
}

C#:PDF 文書のテキストを置換する方法

C# で正規表現を使用してテキストを置換

正規表現は、テキストのパターンをマッチングし操作するための強力で柔軟な手段です。Spire.PDF では、正規表現を使用して PDF 内の特定のテキストパターンを検索し、新しい文字列に置換することが可能です。

以下は、正規表現を使用して PDF 内のテキストを置換する手順です。

  • PdfDocument オブジェクトを作成する。
  • PDF ファイルを読み込む。
  • 文書から特定のページを取得する。
  • PdfTextReplaceOptions オブジェクトを作成する。
  • PdfTextReplaceOptions.ReplaceType プロパティを使用して置換タイプを Regex に設定する。
  • PdfTextReplacer オブジェクトを作成し、Options プロパティを使って置換オプションを適用する。
  • PdfTextReplacer.ReplaceAllText() メソッドを使用して、指定した正規表現に一致するテキストを検索し、置換する。
  • 文書を保存する。
  • C#
using Spire.Pdf;
using Spire.Pdf.Texts;

namespace ReplaceUsingRegularExpression
{
    class Program
    {
        static void Main(string[] args)
        {
            // PdfDocumentオブジェクトを作成
            PdfDocument doc = new PdfDocument();

            // PDFファイルを読み込む
            doc.LoadFromFile("Sample1.pdf");

            // PdfTextReplaceOptionsオブジェクトを作成
            PdfTextReplaceOptions textReplaceOptions = new PdfTextReplaceOptions();

            // 置換タイプを正規表現に設定
            textReplaceOptions.ReplaceType = PdfTextReplaceOptions.ReplaceActionType.Regex;

            // 特定のページを取得
            PdfPageBase page = doc.Pages[0];

            // ページに基づいてPdfTextReplacerオブジェクトを作成
            PdfTextReplacer textReplacer = new PdfTextReplacer(page);

            // 置換オプションを設定
            textReplacer.Options = textReplaceOptions;

            // 正規表現を指定
            string regularExpression = @"\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b";

            // 正規表現に一致するすべての出現を新しいテキストに置換
            textReplacer.ReplaceAllText(regularExpression, "manager @system.com");

            // ドキュメントを別のPDFファイルに保存
            doc.SaveToFile("正規表現を使ってテキストを置換.pdf");

            // リソースを解放
            doc.Dispose();
        }
    }
}

C#:PDF 文書のテキストを置換する方法

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

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

バーコードと QR コードは、アイテムを迅速かつ効率的に識別・追跡するための重要な手段であり、多くの業界で不可欠なものとなっています。PDF にバーコードを追加することで、企業は文書管理プロセスを強化し、PDF ファイルの処理や追跡をより効率的に行えるようになります。さらに、この操作により、従来のテキストや画像に加えて、バーコードの機能を統合した動的でインタラクティブな PDF 文書を作成することも可能です。本記事では、C# を使用して Spire.PDF for .NETSpire.Barcode for .NET を利用し、PDF にバーコードと QR コードを追加する方法をご紹介します。

Spire.PDF for .NET と Spire.Barcode for .NET のインストール

まず、Spire.PDF for .NET および Spire.Barcode for .NET ライブラリをダウンロードし、両方の製品パッケージに含まれる DLL ファイルを .NET プロジェクトの参照として追加する必要があります。または、NuGet 経由でインストールすることも可能です。

PM> Install-Package Spire.PDF
PM> Install-Package Spire.Barcode

C# で PDF にバーコードを挿入する

Spire.PDF for .NET は、PdfCodabarBarcodePdfCode128ABarcodePdfCode32BarcodePdfCode39BarcodePdfCode93Barcode など、さまざまなクラスによって表される複数の 1D バーコードタイプをサポートしています。

各クラスは、バーコードのテキスト、サイズ、色などを設定するための対応するプロパティを提供しています。以下は、一般的な Codabar、Code128、Code39、Code93 バーコードを PDF ページの指定された位置に描画するための手順です。

  • PdfDocument オブジェクトを作成する。
  • PdfDocument.Pages.Add() メソッドを使用して PDF ページを追加する。
  • PdfTextWidget オブジェクトを作成し、PdfTextWidget.Draw(PdfPageBase page, float x, float y) メソッドを使ってページ上にテキストを描画する。
  • PdfCodabarBarcodePdfCode128ABarcodePdfCode39BarcodePdfCode93Barcode オブジェクトを作成する。
  • 対応するクラスの BarcodeToTextGapHeight プロパティを使用して、バーコードと表示されるテキストの間の間隔を設定する。
  • 対応するクラスの TextDisplayLocation プロパティでバーコードテキストの表示位置を設定する。
  • 対応するクラスの TextColor プロパティでバーコードテキストの色を設定する。
  • 対応するクラスの Draw(PdfPageBase page, PointF location) メソッドを使用して、指定された位置にバーコードを描画する。
  • PdfDocument.SaveToFile() メソッドで結果の PDF ファイルを保存する。
  • C#
using Spire.Pdf;
using Spire.Pdf.Barcode;
using Spire.Pdf.Graphics;
using System.Drawing;

namespace PDFBarcode
{
    class Program
    {
        static void Main(string[] args)
        {
            // PDFドキュメントを作成
            PdfDocument pdf = new PdfDocument();

            // ページを追加
            PdfPageBase page = pdf.Pages.Add(PdfPageSize.A4);

            // y座標を初期化
            float y = 20;

            // TrueTypeフォントを作成
            PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Yu Gothic UI", 14f, FontStyle.Bold), true);

            // ページにテキストを描画
            PdfTextWidget text = new PdfTextWidget();
            text.Font = font;
            text.Text = "コーダバー";
            PdfLayoutResult result = text.Draw(page, 0, y);
            page = result.Page;
            y = result.Bounds.Bottom + 2;

            // ページにCodabarバーコードを描画
            PdfCodabarBarcode Codabar = new PdfCodabarBarcode("00:12-3456/7890");
            Codabar.BarcodeToTextGapHeight = 1f;
            Codabar.TextDisplayLocation = TextLocation.Bottom;
            Codabar.TextColor = Color.Blue;
            Codabar.Draw(page, new PointF(0, y));

            // ページにテキストを描画
            text.Text = "Code128-A:";
            result = text.Draw(page, 240, 20);
            page = result.Page;
            y = result.Bounds.Bottom + 2;

            // ページにCode128-Aバーコードを描画
            PdfCode128ABarcode Code128 = new PdfCode128ABarcode("HELLO 00-123");
            Code128.BarcodeToTextGapHeight = 1f;
            Code128.TextDisplayLocation = TextLocation.Bottom;
            Code128.TextColor = Color.Blue;
            Code128.Draw(page, new PointF(240, y));

            // ページにテキストを描画
            text.Text = "Code39:";
            result = text.Draw(page, 0, Codabar.Bounds.Bottom + 8);
            page = result.Page;
            y = result.Bounds.Bottom + 2;

            // ページにCode39バーコードを描画
            PdfCode39Barcode Code39 = new PdfCode39Barcode("16-273849");
            Code39.BarcodeToTextGapHeight = 1f;
            Code39.TextDisplayLocation = TextLocation.Bottom;
            Code39.TextColor = Color.Blue;
            Code39.Draw(page, new PointF(0, y));

            // ページにテキストを描画
            text.Text = "Code93:";
            result = text.Draw(page, 240, Code128.Bounds.Bottom + 8);
            page = result.Page;
            y = result.Bounds.Bottom + 2;

            // ページにCode93バーコードを描画
            PdfCode93Barcode Code93 = new PdfCode93Barcode("16-273849");
            Code93.BarcodeToTextGapHeight = 1f;
            Code93.TextDisplayLocation = TextLocation.Bottom;
            Code93.TextColor = Color.Blue;
            Code93.QuietZone.Bottom = 5;
            Code93.Draw(page, new PointF(240, y));

            // ドキュメントを保存
            pdf.SaveToFile("PDFでバーコードを作成.pdf");
            pdf.Close();
        }
    }
}

C#:PDF でバーコードと QR コードを作成する方法

C# で PDF に QR コードを挿入する

PDF ファイルに 2D バーコードを追加するには、まず Spire.Barcode for .NET ライブラリを使用して QR コードを生成し、その後、Spire.PDF for .NET ライブラリを使用して PDF ファイルに QR コード画像を追加する必要があります。

以下は、PDF 文書に QR コードを追加するための詳細な手順です。

  • PdfDocument オブジェクトを作成する。
  • PdfDocument.Pages.Add() メソッドを使用して PDF ページを追加する。
  • BarcodeSettings オブジェクトを作成する。
  • BarcodeSettings クラスの対応するプロパティを呼び出し、バーコードの種類、データ、誤り訂正レベル、幅などを設定する。
  • 設定に基づいて BarCodeGenerator オブジェクトを作成する。
  • BarCodeGenerator.GenerateImage() メソッドを使用して QR コード画像を生成する。
  • PdfPageBase.Canvas.DrawImage(PdfImage image, float x, float y) メソッドを使用して、指定された位置に QR コード画像を描画する。
  • PdfDocument.SaveToFile() メソッドで結果の PDF ファイルを保存する。
  • C#
using System.Drawing;
using Spire.Barcode;
using Spire.Pdf;
using Spire.Pdf.Graphics;

namespace PDFQRcode
{
    class Program
    {
        static void Main(string[] args)
        {
            // PDFドキュメントを作成
            PdfDocument pdf = new PdfDocument();
            // ページを追加
            PdfPageBase page = pdf.Pages.Add();

            // BarcodeSettingsオブジェクトを作成
            BarcodeSettings settings = new BarcodeSettings();

            // バーコードタイプをQRコードに設定
            settings.Type = BarCodeType.QRCode;
            // QRコードのデータを設定
            settings.Data = "E-iceblue";
            settings.Data2D = "E-iceblue";
            // QRコードの幅を設定
            settings.X = 2.5f;
            // QRコードのエラー訂正レベルを設定
            settings.QRCodeECL = QRCodeECL.Q;
            // QRコードのテキストを下部に表示
            settings.ShowTextOnBottom = true;

            // 設定に基づいてQRコード画像を生成
            BarCodeGenerator generator = new BarCodeGenerator(settings);
            Image QRimage = generator.GenerateImage();

            // y座標を初期化
            float y = 20;

            // TrueTypeフォントを作成
            PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Yu Gothic UI", 14f, FontStyle.Bold), true);

            // PDFページにテキストを描画
            PdfTextWidget text = new PdfTextWidget();
            text.Font = font;
            text.Text = "QRコード";
            PdfLayoutResult result = text.Draw(page, 0, y);
            y = result.Bounds.Bottom + 2;

            // PDFページにQRコード画像を描画
            PdfImage pdfImage = PdfImage.FromImage(QRimage);
            page.Canvas.DrawImage(pdfImage, 0, y);

            // ドキュメントを保存
            pdf.SaveToFile("PDFでQRコードを作成.pdf");
        }
    }
}

C#:PDF でバーコードと QR コードを作成する方法

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

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

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# で PDF ページ内のテキストの座標を取得する

Spire.PDF が提供する PdfTextFinder.Find() メソッドを使用すると、検索可能な PDF ドキュメント内で指定した文字列のすべてのインスタンスを検索できます。特定のインスタンスの座標情報は、PdfTextFragment.Positions プロパティから取得可能です。Spire.PDF for .NET を使って PDF 内の指定されたテキストの (X, Y) 座標を取得する手順は次の通りです:

  • PdfDocument オブジェクトを作成します。
  • PdfDocument.LoadFromFile() メソッドを使用して PDF ファイルを読み込みます。
  • ドキュメント内のページを繰り返し処理します。
  • PdfTextFinder オブジェクトを作成し、PdfTextFinder.Find() メソッドでページ内の指定されたテキストのすべてのインスタンスを取得します。
  • 検索結果を繰り返し処理し、PdfTextFragment.Positions プロパティを通じて特定の結果の座標情報を取得します。
  • C#
using Spire.Pdf;
using Spire.Pdf.Texts;
using System.Drawing;

namespace GetCoordinatesOfText
{
    class Program
    {
        static void Main(string[] args)
        {
            // PdfDocumentオブジェクトを作成
            PdfDocument doc = new PdfDocument();

            // PDFファイルを読み込む
            doc.LoadFromFile("Sample.pdf");

            // すべてのページをループ
            foreach (PdfPageBase page in doc.Pages)
            {
                // PdfTextFinderオブジェクトを作成
                PdfTextFinder finder = new PdfTextFinder(page);

                // 検索オプションを設定
                PdfTextFindOptions options = new PdfTextFindOptions();
                options.Parameter = TextFindParameter.IgnoreCase;
                finder.Options = options;

                // 特定のテキストのすべてのインスタンスを検索
                var fragments = finder.Find("オーストラリアのグレートバリアリーフ");

                // インスタンスをループ
                foreach (PdfTextFragment fragment in fragments)
                {
                    // 特定のインスタンスの位置を取得
                    PointF found = fragment.Positions[0];
                    Console.WriteLine(found);
                }
            }
        }
    }
}

C#:PDF ページ内のテキストや画像の座標を取得する方法

C# で PDF ページ内の画像の座標を取得する

Spire.PDF は、PdfImageHelper.GetImagesInfo() メソッドを提供しており、指定されたページ内のすべての画像情報を取得できます。特定の画像の座標情報は、PdfImageInfo.Bounds プロパティを通じて取得可能です。Spire.PDF for .NET を使って PDF ドキュメント内の画像の座標を取得する手順は次の通りです:

  • PdfDocument オブジェクトを作成します。
  • PdfDocument.LoadFromFile() メソッドを使用して PDF ファイルを読み込みます。
  • PdfDocument.Pages[index] プロパティを使用して特定のページを取得します。
  • PdfImageHelper オブジェクトを作成し、PdfImageHelper.GetImageInfo() メソッドを使ってページ内のすべての画像情報を取得します。
  • PdfImageInfo.Bounds プロパティを通じて特定の画像の座標情報を取得します。
  • C#
using Spire.Pdf;
using Spire.Pdf.Utilities;
using System;

namespace GetCoordinatesOfImage
{
    class Program
    {
        static void Main(string[] args)
        {
            // PdfDocumentオブジェクトを作成
            PdfDocument doc = new PdfDocument();

            // PDFファイルを読み込む
            doc.LoadFromFile("Sample.pdf");

            // 特定のページを取得
            PdfPageBase page = doc.Pages[0];

            // PdfImageHelperオブジェクトを作成
            PdfImageHelper helper = new PdfImageHelper();

            // ページから画像情報を取得
            PdfImageInfo[] images = helper.GetImagesInfo(page);

            // 特定の画像のX,Y座標を取得
            float xPos = images[0].Bounds.X;
            float yPos = images[0].Bounds.Y;
            Console.WriteLine("画像の位置は({0},{1})です", xPos, yPos);
        }
    }
}

C#:PDF ページ内のテキストや画像の座標を取得する方法

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

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

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# で PDF ドキュメントから画像を抽出する

PdfPageBase.ExtractImages() メソッドを使用すると、1ページ内のすべての画像を抽出できます。開発者は、PDF ドキュメント内のすべてのページを繰り返し処理し、このメソッドを使用して画像を抽出することができます。詳細な手順は以下の通りです:

  • PdfDocument オブジェクトを作成します。
  • PdfDocument.LoadFromFile() メソッドを使用して PDF ドキュメントを読み込みます。
  • ドキュメント内のすべてのページを繰り返し処理します。
  • 各ページから PdfPageBase.ExtractImages() メソッドを使って画像を抽出し、保存します。
  • C#
using Spire.Pdf;
using System.Drawing;

namespace ExtractImages
{
    class Program
    {
        static void Main(string[] args)
        {
            // Create a PdfDocument object
            PdfDocument pdf = new PdfDocument();
            // Load a PDF document
            pdf.LoadFromFile("Sample.pdf");

            int i = 0;
            // Iterate through the pages in the document
            foreach (PdfPageBase page in pdf.Pages)
            {
                // Extract the images from the page and save them to file
                int j = 0;
                foreach (Image image in page.ExtractImages())
                {
                    image.Save("Images/Image" + i + "_" + j + ".png");
                    j++;
                }
                i++;
            }
        }
    }
}

C#:PDF ドキュメントから画像を抽出する方法

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

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

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# で PDF ページサイズを取得する

Spire.PDF for .NET は、PDF ページの幅と高さをポイント単位で取得するために、PdfPageBase.Size.Width および PdfPageBase.Size.Height プロパティを提供しています。デフォルトの単位を他の単位に変換したい場合は、PdfUnitConvertor クラスを使用できます。以下に詳細な手順を示します。

  • PdfDocument インスタンスを作成します。
  • PdfDocument.LoadFromFile() メソッドを使って PDF ファイルを読み込みます。
  • PdfDocument.Pages[] プロパティを使って指定したページを取得します。
  • PdfPageBase.Size.Width および PdfPageBase.Size.Height プロパティを使用して、PDF ページの幅と高さを取得します。
  • PdfUnitConvertor インスタンスを作成し、PdfUnitConvertor.ConvertUnits() メソッドを使ってポイント単位を他の測定単位に変換します。
  • ページサイズの情報を StringBuilder インスタンスに追加し、結果を TXT ファイルに保存します。
  • C#
using System.Text;
using Spire.Pdf;
using Spire.Pdf.Graphics;

namespace GetPDFPageSize
{
    class Program
    {
        static void Main(string[] args)
        {
            // PdfDocumentオブジェクトを作成
            PdfDocument pdf = new PdfDocument();

            // ディスクからPDFファイルを読み込む
            pdf.LoadFromFile("Sample.pdf");

            // 最初のページを取得
            PdfPageBase page = pdf.Pages[0];

            // ページの幅と高さをポイントで取得
            float pointWidth = page.Size.Width;
            float pointHeight = page.Size.Height;

            // PdfUnitConvertorを作成して単位を変換
            PdfUnitConvertor unitCvtr = new PdfUnitConvertor();

            // ポイントをピクセルに変換
            float pixelWidth = unitCvtr.ConvertUnits(pointWidth, PdfGraphicsUnit.Point, PdfGraphicsUnit.Pixel);
            float pixelHeight = unitCvtr.ConvertUnits(pointHeight, PdfGraphicsUnit.Point, PdfGraphicsUnit.Pixel);

            // ポイントをインチに変換
            float inchWidth = unitCvtr.ConvertUnits(pointWidth, PdfGraphicsUnit.Point, PdfGraphicsUnit.Inch);
            float inchHeight = unitCvtr.ConvertUnits(pointHeight, PdfGraphicsUnit.Point, PdfGraphicsUnit.Inch);

            // ポイントをセンチメートルに変換
            float centimeterWidth = unitCvtr.ConvertUnits(pointWidth, PdfGraphicsUnit.Point, PdfGraphicsUnit.Centimeter);
            float centimeterHeight = unitCvtr.ConvertUnits(pointHeight, PdfGraphicsUnit.Point, PdfGraphicsUnit.Centimeter);

            // StringBuilderインスタンスを作成
            StringBuilder content = new StringBuilder();

            // ページサイズ情報をStringBuilderインスタンスに追加
            content.AppendLine("このページのサイズ(ポイント)は (幅: " + pointWidth + "pt, 高さ: " + pointHeight + "pt) です。");
            content.AppendLine("このページのサイズ(ピクセル)は (幅: " + pixelWidth + "pixel, 高さ: " + pixelHeight + "pixel) です。");
            content.AppendLine("このページのサイズ(インチ)は (幅: " + inchWidth + "inch, 高さ: " + inchHeight + "inch) です。");
            content.AppendLine("このページのサイズ(センチメートル)は (幅: " + centimeterWidth + "cm, 高さ: " + centimeterHeight + "cm) です。");

            // テキストファイルに保存
            File.WriteAllText("GetPageSize.txt", content.ToString());
        }
    }
}

C#:PDF ページのサイズ、向き、回転を取得する方法

C# で PDF ページの向きを取得する

PDF ページの向きを検出するには、ページの幅と高さを比較します。ページの幅が高さより大きい場合、そのページは横向き(ランドスケープ)であり、それ以外の場合は縦向き(ポートレート)です。以下に詳細な手順を示します。

  • PdfDocument インスタンスを作成します。
  • PdfDocument.LoadFromFile() メソッドを使って PDF ファイルを読み込みます。
  • PdfDocument.Pages[] プロパティを使って指定したページを取得します。
  • PdfPageBase.Size.Width および PdfPageBase.Size.Height プロパティを使用して、PDF ページの幅と高さを取得します。
  • ページの幅と高さの値を比較して、ページの向きを検出します。
  • Console.WriteLine() メソッドを使って結果を出力します。
  • C#
using Spire.Pdf;

namespace GetPDFPageOrientation
{
    class Program
    {
        static void Main(string[] args)
        {
            // PdfDocumentオブジェクトを作成
            PdfDocument pdf = new PdfDocument();

            // ディスクからPDFファイルを読み込む
            pdf.LoadFromFile("Sample.pdf");

            // 最初のページを取得
            PdfPageBase page = pdf.Pages[0];

            // ページの幅と高さを取得
            float width = page.Size.Width;
            float height = page.Size.Height;

            // ページの幅と高さを比較
            if (width > height)
            {
                Console.WriteLine("\r\n\r\nページの向きは横向きです。");
            }
            else
            {
                Console.WriteLine("\r\n\r\nページの向きは縦向きです。");
            }
        }
    }
}

C#:PDF ページのサイズ、向き、回転を取得する方法

C# で PDF ページの回転角度を取得する

PDF ページの回転角度は、PdfPageBase.Rotation プロパティを通じて取得できます。以下に詳細な手順を示します。

  • PdfDocument インスタンスを作成します。
  • PdfDocument.LoadFromFile() メソッドを使って PDF ファイルを読み込みます。
  • PdfDocument.Pages[] プロパティを使って指定したページを取得します。
  • PdfPageBase.Rotation プロパティを使用してページの回転角度を取得し、それを文字列に変換します。
  • Console.WriteLine() メソッドを使って結果を出力します。
  • C#
using Spire.Pdf;

namespace GetPDFPageRotationAngle
{
    class Program
    {
        static void Main(string[] args)
        {
            // PdfDocumentオブジェクトを作成
            PdfDocument pdf = new PdfDocument();

            // ディスクからPDFファイルを読み込む
            pdf.LoadFromFile("Sample.pdf");

            // 最初のページを取得
            PdfPageBase page = pdf.Pages[1];

            // 現在のページの回転角度を取得
            PdfPageRotateAngle rotationAngle = page.Rotation;
            string rotation = rotationAngle.ToString();

            // ページの回転角度情報を出力
            Console.WriteLine("\r\n\r\n現在のページの回転角度は: " + rotation);
        }
    }
}

C#:PDF ページのサイズ、向き、回転を取得する方法

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

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

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# で PDF ファイルのページ数を取得する

Spire.PDF for .NET は、PDF ファイルを開かずに素早くページ数を数えるために、PdfDocument.Pages.Count プロパティを提供しています。以下に詳細な手順を示します。

  • PdfDocument オブジェクトを作成します。
  • PdfDocument.LoadFromFile() メソッドを使って PDF ファイルを読み込みます。
  • PdfDocument.Pages.Count プロパティを使って、PDF ファイルのページ数を取得します。
  • 結果を出力し、PDF ファイルを閉じます。
  • C#
using Spire.Pdf;

namespace GetNumberOfPages
{
    class Program
    {
        static void Main(string[] args)
        {
            // PdfDocumentオブジェクトを作成
            PdfDocument pdf = new PdfDocument();

            // サンプルPDFファイルを読み込む
            pdf.LoadFromFile("Sample.pdf");

            // PDFのページ数を数える
            int PageNumber = pdf.Pages.Count;
            Console.WriteLine("\r\n\r\nこのPDFファイルには{0}ページあります。", PageNumber);

            // PDFを閉じる
            pdf.Close();
        }
    }
}

C#:PDF ドキュメントのページ数を取得する方法

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

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