C#でPDFにテキストとビットマップを描く方法

C#を使用してPDFにテキストとビットマップを描画する方法

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronPDFはDrawTextDrawBitmapメソッドを使って既存のPDFにテキストや画像を描画することができます。

PDFにテキストや画像を描くには、既存の文書にコンテンツを追加する必要があります。 IronPDFはこの機能をシームレスに実現します。 テキストと画像を組み込むことで、透かし、ロゴ、注釈でPDFをカスタマイズし、文書の視覚的な外観とブランディングを向上させることができます。 また、テキストと画像により、情報の提示、データの視覚化、インタラクティブなフォームの作成が容易になります。

クイックスタート: IronPDFでPDFにテキストと画像を追加する

テキストと画像でPDF文書を迅速かつ効率的に強化しましょう。 DrawTextDrawBitmapメソッドを使用すると、透かしやロゴ、注釈を追加してPDFを簡単にカスタマイズできます。 この例では、特定の座標にテキストを描画し、画像をPDFにシームレスに挿入する方法を示します。

Nuget Icon今すぐ NuGet で PDF を作成してみましょう:

  1. NuGet パッケージ マネージャーを使用して IronPDF をインストールします

    PM > Install-Package IronPdf

  2. このコード スニペットをコピーして実行します。

    new ChromePdfRenderer()
        .RenderHtmlAsPdf("<h1>Doc</h1>")
        .DrawText("Hello World", FontTypes.TimesNewRoman.Name, 12, 0, 100, 100, Color.Black, 0)
        .DrawBitmap(AnyBitmap.FromFile("logo.png"), 0, 50, 250, 500, 300)
        .SaveAs("annotated.pdf");
  3. 実際の環境でテストするためにデプロイする

    今すぐ無料トライアルでプロジェクトに IronPDF を使い始めましょう
    arrow pointer


PDFにテキストを描くには?

PdfDocumentオブジェクトで利用可能なDrawTextメソッドは、元の内容を変更することなく、既存のPDFにテキストを追加することができます。 この方法は、より複雑なオーバーレイのためのスタンプテキストと画像機能と同様に、PDFに動的なコンテンツを追加する場合に特に便利です。

座標系の理解

テキストを描く前に、PDF座標系を理解してください。 原点(0,0)はページの左下に位置し、X値は右へ、Y値は上へ増加します。 これは、原点が左上にある多くのグラフィックシステムとは異なります。

:path=/static-assets/pdf/content-code-examples/how-to/draw-text-and-bitmap-draw-text.cs
using IronPdf;
using IronSoftware.Drawing;

ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>testing</h1>");

// Draw text on PDF
pdf.DrawText("Some text", FontTypes.TimesNewRoman.Name, FontSize: 12, PageIndex: 0, X: 100, Y: 100, Color.Black, Rotation: 0);

pdf.SaveAs("drawText.pdf");
$vbLabelText   $csharpLabel

どのようなフォントを使用できますか?

DrawTextメソッドは現在、Courier, Arial(またはHelvetica), TimesNewRoman, Symbol, ZapfDingbatsを含むすべてのIronPDFの標準フォントに対応しています。 これらのフォントタイプのイタリック、太字、斜体のバリアントについては、フォント管理の記事の"IronPDFの標準フォント"セクションを参照してください。

ZapfDingbatsフォントは、▲などの記号を表示できます。 サポートされている記号の包括的なリストについては、Wikipedia on Zapf Dingbatsをご覧ください。

PDF上の出力フォントサンプル

Arial、Courier、Helvetica、Times New Romanの各ファミリーと太字、斜体、斜体のバリエーションを示すフォントサンプル

改行を使用してテキストを追加するにはどうすればよいですか?

描画テキストアクションは改行文字をサポートしており、より良いフォーマットと視覚的な明瞭さのために組み込みの改行でテキストをレンダリングできます。 これは、複数行の注釈を追加したり、構造化されたテキストレイアウトを作成したりする場合に役立ちます。

これを達成するには、テキスト文字列に改行文字(\n)を追加します。 上記の例で言うと

// Multi-line text example with proper spacing
string textWithNewlines = "Some text\nSecond line\nThird line with more content";
pdfDoc.DrawText(textWithNewlines, font, position);

// You can also use Environment.NewLine for platform-specific line breaks
string platformText = $"Line 1{Environment.NewLine}Line 2{Environment.NewLine}Line 3";
pdfDoc.DrawText(platformText, font, position);
// Multi-line text example with proper spacing
string textWithNewlines = "Some text\nSecond line\nThird line with more content";
pdfDoc.DrawText(textWithNewlines, font, position);

// You can also use Environment.NewLine for platform-specific line breaks
string platformText = $"Line 1{Environment.NewLine}Line 2{Environment.NewLine}Line 3";
pdfDoc.DrawText(platformText, font, position);
$vbLabelText   $csharpLabel

カスタムフォントを使用するにはどうすればよいですか?

カスタムフォントは、DrawTextメソッドでサポートされており、標準フォント以外にもタイポグラフィの選択肢を広げることができます。 この機能は、ブランドの一貫性を維持したり、特殊なフォントを使用したりする場合に不可欠です。 高度なフォント管理については、PDFのフォント管理に関するガイドを参照してください。

以下は、Pixelify Sans Font をテキストに追加した例です:

:path=/static-assets/pdf/content-code-examples/how-to/draw-text-and-bitmap-draw-custom-font.cs
using IronPdf;
using IronSoftware.Drawing;
using System.IO;

ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>testing</h1>");

// Add custom font to the PDF
byte[] fontByte = File.ReadAllBytes(@".\PixelifySans-VariableFont_wght.ttf");
var addedFont = pdf.Fonts.Add(fontByte);

// Draw text on PDF
pdf.DrawText("Iron Software", addedFont.Name, FontSize: 12, PageIndex: 0, X: 100, Y: 600, Color.Black, Rotation: 0);

pdf.SaveAs("drawCustomFont.pdf");
$vbLabelText   $csharpLabel

高度なテキスト ポジショニング

テキストを正確に配置する際には、以下のヒントを参考にしてください:

  • ページ寸法:ページの寸法を取得するには、pdf.Pages[pageIndex].Widthpdf.Pages[pageIndex].Heightを使用します。
  • 回転: 回転パラメータは、角度のあるテキストのために度数(0~360)を受け入れます。
  • カラーオプション: 基本的な色を超えて、RGB値を使用してください:Color.FromArgb(255,100,100)を使用してください。

PDFに画像を描くには?

IronPDFのDrawBitmapメソッドは既存のPDFドキュメントにビットマップを追加することができます。 この方法はImage Stamper機能と同様に機能し、既存のPDFに画像をスタンプすることができます。 複雑な画像操作が必要な場合は、PDFに画像を追加するガイドをご覧ください。

DrawBitmapメソッドは大きな画像で最もよく機能します。 解像度の低い画像を使用する場合、次のような例外が発生することがあります:IronPdf.Exceptions.IronPdfNativeException: 'Error while drawing image: data length (567000) is less than expected (756000)'. この問題を解決するには、すべてのサイズの画像を扱うImage Stamperを使用してください。

サンプル画像

ブランド背景のカラフルな3D連動幾何学デザインのIron Softwareロゴ

実装はどのようなものですか?

:path=/static-assets/pdf/content-code-examples/how-to/draw-text-and-bitmap-draw-bitmap.cs
using IronPdf;
using IronSoftware.Drawing;

ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>testing</h1>");

// Open the image from file
AnyBitmap bitmap = AnyBitmap.FromFile("ironSoftware.png");

// Draw the bitmp on PDF
pdf.DrawBitmap(bitmap, 0, 50, 250, 500, 300);

pdf.SaveAs("drawImage.pdf");
$vbLabelText   $csharpLabel

出力PDF

どのような追加パラメータがありますか?

  • PixelFormat: PixelFormat プロパティは、ビットマップの色データ形式を指定し、主に透明度のサポートを制御します。 デフォルト値は Format32bppArgb です。 オプションとしてパラメータを渡すことで、ピクセル列挙形式Format32bppRgbFormat32bppArgbのどちらかを選択します。 これは、PDFの背景と前景要素を扱うときに役立ちます。

  • IgnorePageRotation: この bool プロパティは、メソッドがビットマップを描画するときにページの回転を無視するかどうかを決定します。デフォルトでは、値は false です。 特に、回転に関係なく、すべてのページに一貫して透かしを適用する場合に役立ちます。

一般的な使用例とベストプラクティス

PDFにテキストや画像を描画する場合は、以下の実用的なアプリケーションを考慮してください:

1.動的透かし:機密文書に会社のロゴや"CONFIDENTIAL"のスタンプを追加します。 2.ページ番号:すべてのページで一貫した位置にページ番号を引く 3.署名の配置:フォームの指定位置に署名画像を追加する 4.ヘッダー/フッターの強化:既存のヘッダーを動的コンテンツで補完する

PDF操作のデバッグと監視のために、カスタムロギングを実装して、描画操作を追跡し、適切な実行を確実にします。

パフォーマンスの考慮事項

複数のページや大きな文書を扱う場合:

  • メモリ使用量を最小限に抑えるため、可能な限りバッチ処理を行うこと。
  • リソースを解放するために、使用後にビットマップオブジェクトを破棄する。
  • パフォーマンスを向上させるために、頻繁に使用する画像のプリロードを検討してください。

次に何ができるのかを見てみましょうか? こちらのチュートリアルページをご覧ください: PDFの編集

よくある質問

既存のPDFにテキストや画像を追加するには、どのような方法がありますか?

IronPDFは既存のPDFにコンテンツを追加するための2つの主要なメソッドを提供します: テキストを追加するためのDrawTextメソッドと画像を追加するためのDrawBitmapメソッドです。これらのメソッドにより、元のドキュメントの内容を変更することなく、透かし、ロゴ、注釈でPDFをカスタマイズすることができます。

テキストを描画するとき、PDF座標系はどのように機能しますか?

IronPdfでは、PDF座標系はページの左下隅に原点(0,0)を持ちます。Xの値は右に行くほど大きくなり、Yの値は上に行くほど大きくなります。これは原点が左上にある多くのグラフィックシステムとは異なります。

PDFにテキストを描画する際にサポートされているフォントは何ですか?

IronPDFのDrawTextメソッドはCourier、Arial (Helvetica)、Times New Roman、Symbol、ZapfDingbatsを含むすべての標準フォントに対応しています。これらのフォントはイタリック、ボールド、斜体のバリエーションもあります。ZapfDingbatsフォントは、特殊な記号を表示するために使用することができます。

1回の操作でPDFにテキストと画像の両方を追加できますか?

はい、IronPdfではメソッドを連結することができます。ChromePdfRendererを使ってPDFを作成し、DrawTextメソッドとDrawBitmapメソッドを1行のコードで連続して適用することができます。

PDFにテキストや画像を描画する一般的な使用例とは?

IronPDFの描画機能は一般的に、ドキュメントを保護するための透かしの追加、ブランディングのための企業ロゴの挿入、ドキュメントレビューのための注釈の作成、視覚的な外観の改善、データの視覚化の促進、インタラクティブなフォームの作成などに使用されます。

カーティス・チャウ
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。

準備はできましたか?
Nuget ダウンロード 17,012,929 | バージョン: 2025.12 リリース