C#でPDFにテキストを追加

PDF形式は、請求書、財務報告書、履歴書などのさまざまな種類のドキュメントを生成するために広く使用されています。自動化の世界では、PDFドキュメントはWebまたはデスクトップアプリケーション内から生成および操作されます。そのため、場合によっては、既存のPDFファイルにプログラムでテキストを追加する必要があります。これに従って、この記事では、C#を使用してPDFドキュメントにテキストを追加する方法を示します。

PDFにテキストを追加するC#API

PDFファイルに動的にテキストを追加するために、Aspose.PDF for .NETを使用します。これは、.NETアプリケーション内からPDFファイルを作成および操作できる機能豊富なAPIです。 APIをダウンロードするか、NuGetを使用してインストールできます。

PM> Install-Package Aspose.PDF

C#を使用してPDFにテキストを追加する

以下は、C#を使用してPDFファイルにテキストを追加する手順です。

  • Documentクラスを使用してPDFファイルをロードします。
  • PDFの目的のページをPageオブジェクトに取得します。
  • TextFragmentオブジェクトを作成し、そのテキスト、位置、フォント、背景色などを設定します。
  • TextBuilderオブジェクトを作成し、Pageオブジェクトで初期化します。
  • TextBuilder.AppendText(TextFragment)メソッドを使用して、PDFのページにテキストを追加します。
  • Document.Save(String)メソッドを使用して、更新されたPDFファイルを保存します。

次のコードサンプルは、PDFファイルにテキストを追加する方法を示しています。

// 完全な例とデータファイルについては、https://github.com/aspose-pdf/Aspose.PDF-for-.NETにアクセスしてください。
// ドキュメントを開く
Document pdfDocument = new Document("input.pdf");

// 特定のページを取得
Page pdfPage = (Page)pdfDocument.Pages[1];

// テキストフラグメントを作成する
TextFragment textFragment = new TextFragment("main text");
textFragment.Position = new Position(100, 600);

// テキストプロパティを設定する
textFragment.TextState.FontSize = 12;
textFragment.TextState.Font = FontRepository.FindFont("TimesNewRoman");
textFragment.TextState.BackgroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.LightGray);
textFragment.TextState.ForegroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Red);

// TextBuilderオブジェクトを作成します
TextBuilder textBuilder = new TextBuilder(pdfPage);

// テキストフラグメントをPDFページに追加します
textBuilder.AppendText(textFragment);

// 結果のPDFドキュメントを保存します。
pdfDocument.Save("output.pdf");

TextParagraphを使用してPDFにテキストを追加する

TextParagraphを使用してPDFファイルにテキストを追加する手順は次のとおりです。

  • Documentクラスを使用してPDFファイルをロードします。
  • PDFの目的のページをPageオブジェクトに取得するか、新しいページを追加します。
  • TextBuilderオブジェクトを作成し、Pageオブジェクトで初期化します。
  • TextParagraphクラスのオブジェクトを作成します。
  • TextParagraph.Rectangleプロパティを使用して、段落の場所を指定します。
  • TextParagraphのフォーマットオプションを設定します。
  • TextFragmentオブジェクトを作成し、そのテキスト、位置、フォント、背景色などを設定します。
  • TextParagraph.AppendLine(TextFragment)メソッドを使用して、段落にTextFragmentを追加します。
  • TextBuilder.AppendParagraph(TextParagraph)メソッドを使用してページに段落を追加します。
  • Document.Save(String)メソッドを使用して、更新されたPDFファイルを保存します。

次のコードサンプルは、TextParagraphクラスを使用してPDFにテキストを追加する方法を示しています。

// 完全な例とデータファイルについては、https://github.com/aspose-pdf/Aspose.PDF-for-.NETにアクセスしてください。
string fontFile = "font.ttf";

// 入力PDFファイルをロードします
Document doc = new Document("input.pdf");

// ドキュメントの最初のページのテキストビルダーオブジェクトを作成します
TextBuilder textBuilder = new TextBuilder(doc.Pages[1]);

// サンプル文字列を使用してテキストフラグメントを作成する
TextFragment textFragment = new TextFragment("Hello world");

if (fontFile != "")
{
    // TrueTypeフォントをストリームオブジェクトにロードします
    using (FileStream fontStream = File.OpenRead(fontFile))
    {
        // テキスト文字列のフォント名を設定します
        textFragment.TextState.Font = FontRepository.OpenFont(fontStream, FontTypes.TTF);
        
        // テキストフラグメントの位置を指定します
        textFragment.Position = new Position(10, 10);
        
        // テキストをTextBuilderに追加して、PDFファイルの上に配置できるようにします
        textBuilder.AppendText(textFragment);
    }

    // 結果のPDFドキュメントを保存します
    doc.Save("output.pdf");
}

C#でPDFに透明なテキストを追加する

Aspose.PDF for .NETでは、次の手順に示すように、PDFドキュメントに透明なテキストを追加することもできます。

次のコードサンプルは、PDFファイルに透明なテキストを追加する方法を示しています。

// 完全な例とデータファイルについては、https://github.com/aspose-pdf/Aspose.PDF-for-.NETにアクセスしてください。
// ドキュメントインスタンスを作成する
Document doc = new Document("input.pdf");

// PDFファイルのページ間コレクションを作成します
Aspose.Pdf.Page page = doc.Pages.Add();

// グラフオブジェクトを作成する
Aspose.Pdf.Drawing.Graph canvas = new Aspose.Pdf.Drawing.Graph(100, 400);

// 特定の寸法の長方形インスタンスを作成します
Aspose.Pdf.Drawing.Rectangle rect = new Aspose.Pdf.Drawing.Rectangle(100, 100, 400, 400);

// アルファカラーチャンネルからカラーオブジェクトを作成する
rect.GraphInfo.FillColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.FromArgb(128, System.Drawing.Color.FromArgb(12957183)));

// グラフオブジェクトの図形コレクションにrectanlgeを追加します
canvas.Shapes.Add(rect);

// ページオブジェクトの段落コレクションにグラフオブジェクトを追加します
page.Paragraphs.Add(canvas);

// グラフオブジェクトの位置を変更しないように値を設定します
canvas.IsChangePosition = false;

// サンプル値を使用してTextFragmentインスタンスを作成します
TextFragment text = new TextFragment("transparent text transparent text transparent text transparent text transparent text transparent text transparent text transparent text transparent text transparent text transparent text transparent text transparent text transparent text transparent text transparent text ");

// アルファチャンネルからカラーオブジェクトを作成する
Aspose.Pdf.Color color = Aspose.Pdf.Color.FromArgb(30, 0, 255, 0);

// テキストインスタンスの色情報を設定する
text.TextState.ForegroundColor = color;

// ページインスタンスの段落コレクションにテキストを追加する
page.Paragraphs.Add(text);

// 更新されたPDFファイルを保存します
doc.Save("output.pdf");

無料ライセンスを取得する

一時ライセンスを使用すると、評価の制限なしにAspose.PDF for .NETを使用できます。

結論

この記事では、C#を使用して既存のPDFファイルにテキストを追加する方法を学習しました。さらに、透明なテキストをPDFに動的に追加する方法を見てきました。 ドキュメントを使用して、C#PDFAPIの詳細を調べることができます。また、フォーラムに質問を投稿することもできます。

関連項目