フッターコンテンツにスキップ
製品比較

iTextSharp: PDFに画像を追加する

IronPDF は、より少ないコード行数と永続ライセンスでよりシンプルな画像追加を提供しますが、iTextSharp はよりきめ細かな制御を提供しますが、より多くのコードが必要であり、商用利用には AGPL に基づく複雑なライセンスが適用されます。

.NET環境でPDFファイルを扱う場合、ドキュメントに画像を追加することは多くのアプリケーションで一般的な要件です。 会社のロゴが入った請求書を生成したり、グラフが埋め込まれたレポートを作成したり、透かしが入ったカスタム ドキュメントを作成したりする場合でも、PDF に画像を埋め込む機能は不可欠です。 C# で人気のある 2 つの PDF ライブラリはIronPDFiTextSharpです。 この記事では、使いやすさ、パフォーマンス、ライセンス モデル画像圧縮や形式のサポートなどの高度な機能を考慮して、PDF に画像を追加する機能について両方のライブラリを比較します。

IronPDF と iTextSharp の主な違いは何ですか?

各ライブラリはどのような画像機能を提供していますか?

大きなファイルや複雑な操作をどのように処理するのでしょうか?

商用利用の場合のコストへの影響はどのようなものですか?

IronPDF を使用して PDF に画像を追加するにはどうすればよいですか?

IronPDF をインストールして設定するにはどうすればよいですか?

NuGet経由で C# または Visual Basic プロジェクトに IronPDF をインストールします。 ライブラリは、Windows インストーラーDocker デプロイメントを含む複数のインストール方法をサポートしています。

Install-Package IronPdf

インストールが完了したら、IronPDF のAPI リファレンスを使用して画像の追加を開始できます。 このライブラリは、 WindowsLinuxmacOSプラットフォーム間でシームレスに動作します。

IronPDF での基本的な画像追加はどのようになりますか?

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

IronPDF を使用して PDF に画像を追加するには、スタンプ API を使用する最小限のコードが必要です。

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

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

    PM > Install-Package IronPdf

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

    using IronPdf;
    using IronPdf.Editing;
    
    class Program
    {
        public static void Main(string[] args)
        {
            // Create a renderer to convert HTML to PDF
            ChromePdfRenderer renderer = new ChromePdfRenderer();
    
            // Render a basic PDF with some HTML content
            PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
    
            // Create an ImageStamper with the image URL
            ImageStamper stamper = new ImageStamper(new Uri("___PROTECTED_URL_61___"));
    
            // Configure image position and size
            stamper.HorizontalAlignment = HorizontalAlignment.Center;
            stamper.VerticalAlignment = VerticalAlignment.Middle;
            stamper.Width = 200;  // Width in pixels
            stamper.Height = 100; // Height in pixels
    
            // Apply the stamp (image) to the PDF document
            pdf.ApplyStamp(stamper);
    
            // Save the modified PDF to a file
            pdf.SaveAs("output.pdf");
        }
    }
  3. 実際の環境でテストするためにデプロイする

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

透かしや背景画像を追加するにはどうすればいいですか?

IronPDF は、既存の PDF に透かし背景画像を追加するのに優れています。 ライブラリは複数のスタンプ操作カスタム配置をサポートしています。

using IronPdf;
using IronPdf.Editing;

// Load an existing PDF
PdfDocument pdf = PdfDocument.FromFile("invoice.pdf");

// Create a watermark with transparency
ImageStamper watermark = new ImageStamper("watermark.png")
{
    Opacity = 30,  // 30% opacity for subtle watermarking
    Rotation = -45, // Diagonal watermark
    HorizontalAlignment = HorizontalAlignment.Center,
    VerticalAlignment = VerticalAlignment.Middle
};

// Apply watermark to all pages
pdf.ApplyStamp(watermark);

// Add a header logo
ImageStamper logo = new ImageStamper("company-logo.png")
{
    HorizontalOffset = Length.Millimeters(10),
    VerticalOffset = Length.Millimeters(10),
    Width = 150,
    Height = 50
};

pdf.ApplyStamp(logo, PageSelection.FirstPage);
pdf.SaveAs("watermarked-invoice.pdf");
using IronPdf;
using IronPdf.Editing;

// Load an existing PDF
PdfDocument pdf = PdfDocument.FromFile("invoice.pdf");

// Create a watermark with transparency
ImageStamper watermark = new ImageStamper("watermark.png")
{
    Opacity = 30,  // 30% opacity for subtle watermarking
    Rotation = -45, // Diagonal watermark
    HorizontalAlignment = HorizontalAlignment.Center,
    VerticalAlignment = VerticalAlignment.Middle
};

// Apply watermark to all pages
pdf.ApplyStamp(watermark);

// Add a header logo
ImageStamper logo = new ImageStamper("company-logo.png")
{
    HorizontalOffset = Length.Millimeters(10),
    VerticalOffset = Length.Millimeters(10),
    Width = 150,
    Height = 50
};

pdf.ApplyStamp(logo, PageSelection.FirstPage);
pdf.SaveAs("watermarked-invoice.pdf");
$vbLabelText   $csharpLabel

複数の画像を使った複雑なレイアウトを作成することもできます。

// Add images from Base64 strings
string base64Image = Convert.ToBase64String(File.ReadAllBytes("signature.png"));
HtmlStamper signatureStamp = new HtmlStamper($"<img src='data:image/png;base64,{base64Image}'/>");
signatureStamp.HorizontalAlignment = HorizontalAlignment.Right;
signatureStamp.VerticalAlignment = VerticalAlignment.Bottom;
pdf.ApplyStamp(signatureStamp);
// Add images from Base64 strings
string base64Image = Convert.ToBase64String(File.ReadAllBytes("signature.png"));
HtmlStamper signatureStamp = new HtmlStamper($"<img src='data:image/png;base64,{base64Image}'/>");
signatureStamp.HorizontalAlignment = HorizontalAlignment.Right;
signatureStamp.VerticalAlignment = VerticalAlignment.Bottom;
pdf.ApplyStamp(signatureStamp);
$vbLabelText   $csharpLabel

! PDF ビューアで"Hello World"というテキストと IronPDF ロゴの透かしがページの中央に表示されたシンプルな文書を表示 - 正確な位置と不透明度の制御を備えた IronPDF の画像スタンプ機能のデモンストレーション

この例では、 ChromePdfRendererクラスを使用して、 HTML 文字列から新しい PDF をレンダリングします。 IronPDF の画像スタンプ ツールを使用して、指定された URL から画像を作成し、それを PDF に適用します。 これは、最小限のコードを使用してPDF ページに画像を追加する方法を示しています。 レンダリング オプションを使用すると、出力品質を完全に制御できます。

IronPDF で画像の位置と寸法を制御するにはどうすればよいでしょうか?

IronPDF は、画像配置の広範なカスタマイズを提供します。 スタンプ ツールの位置決め機能を使用して位置合わせとオフセットを設定することで、ページの位置を指定します。 ライブラリは、座標を使用した絶対的な位置決めと、配置オプションを使用した相対的な位置決めの両方をサポートします。 高度な機能には、正確なレイアウトのためのカスタム用紙サイズ余白制御が含まれます。

iTextSharp を使用して PDF に画像を追加するにはどうすればよいですか?

iTextSharp をインストールして構成するにはどうすればよいですか?

NuGet 経由で iTextSharp をインストールします。 IronPDF の完全なプラットフォーム サポートとは異なり、iTextSharp の展開オプションは限られています。

Install-Package itext7

設定が完了したら、iTextSharp のドキュメント操作機能を使用して画像を追加します。 ライブラリでは、フォント管理UTF-8 サポートのために追加の構成が必要です。

iTextSharp での基本的な画像追加はどのようになりますか?

iTextSharp を使用して画像を挿入する方法は次のとおりです。

using iText.Kernel.Pdf;
using iText.Layout;
using iText.Layout.Element;
using iText.IO.Image;

class Program
{
    public static void Main(string[] args)
    {
        // Initialize PDF writer
        var pdfWriter = new PdfWriter("output.pdf");

        // Initialize PDF document
        var pdfDocument = new iText.Kernel.Pdf.PdfDocument(pdfWriter);

        // Initialize document
        var document = new Document(pdfDocument);

        // Create ImageData from image file
        ImageData imageData = ImageDataFactory.Create("iText.png");

        // Create an Image instance
        Image image = new Image(imageData);

        // Set fixed position for the image in the PDF
        image.SetFixedPosition(50, 100);  // x, y coordinates

        // Scale image to fit within specified dimensions
        image.ScaleToFit(200, 200);  // Width, Height

        // Add image to document
        document.Add(image);

        // Close the document
        document.Close();
    }
}
using iText.Kernel.Pdf;
using iText.Layout;
using iText.Layout.Element;
using iText.IO.Image;

class Program
{
    public static void Main(string[] args)
    {
        // Initialize PDF writer
        var pdfWriter = new PdfWriter("output.pdf");

        // Initialize PDF document
        var pdfDocument = new iText.Kernel.Pdf.PdfDocument(pdfWriter);

        // Initialize document
        var document = new Document(pdfDocument);

        // Create ImageData from image file
        ImageData imageData = ImageDataFactory.Create("iText.png");

        // Create an Image instance
        Image image = new Image(imageData);

        // Set fixed position for the image in the PDF
        image.SetFixedPosition(50, 100);  // x, y coordinates

        // Scale image to fit within specified dimensions
        image.ScaleToFit(200, 200);  // Width, Height

        // Add image to document
        document.Add(image);

        // Close the document
        document.Close();
    }
}
$vbLabelText   $csharpLabel

複数の画像を追加して複雑なレイアウトを処理するにはどうすればよいでしょうか?

製品カタログフォトアルバムの作成などの複雑なシナリオでは、レイアウトを手動で管理します。 IronPDF の目次機能ブックマーク サポートにより、複数ページのドキュメントを整理できます。

using iText.Kernel.Pdf;
using iText.Layout;
using iText.Layout.Element;
using iText.IO.Image;
using iText.Layout.Properties;

// Create a grid of images
var pdfWriter = new PdfWriter("catalog.pdf");
var pdfDocument = new PdfDocument(pdfWriter);
var document = new Document(pdfDocument);

// Add images in a grid layout
float xPosition = 50;
float yPosition = 750;
int imagesPerRow = 3;
int currentImage = 0;

string[] imageFiles = { "product1.jpg", "product2.jpg", "product3.jpg", 
                       "product4.jpg", "product5.jpg", "product6.jpg" };

foreach (string imagePath in imageFiles)
{
    ImageData imageData = ImageDataFactory.Create(imagePath);
    Image image = new Image(imageData);

    // Calculate position
    int column = currentImage % imagesPerRow;
    int row = currentImage / imagesPerRow;

    float x = xPosition + (column * 180);
    float y = yPosition - (row * 250);

    image.SetFixedPosition(x, y);
    image.ScaleToFit(150, 200);

    document.Add(image);
    currentImage++;
}

document.Close();
using iText.Kernel.Pdf;
using iText.Layout;
using iText.Layout.Element;
using iText.IO.Image;
using iText.Layout.Properties;

// Create a grid of images
var pdfWriter = new PdfWriter("catalog.pdf");
var pdfDocument = new PdfDocument(pdfWriter);
var document = new Document(pdfDocument);

// Add images in a grid layout
float xPosition = 50;
float yPosition = 750;
int imagesPerRow = 3;
int currentImage = 0;

string[] imageFiles = { "product1.jpg", "product2.jpg", "product3.jpg", 
                       "product4.jpg", "product5.jpg", "product6.jpg" };

foreach (string imagePath in imageFiles)
{
    ImageData imageData = ImageDataFactory.Create(imagePath);
    Image image = new Image(imageData);

    // Calculate position
    int column = currentImage % imagesPerRow;
    int row = currentImage / imagesPerRow;

    float x = xPosition + (column * 180);
    float y = yPosition - (row * 250);

    image.SetFixedPosition(x, y);
    image.ScaleToFit(150, 200);

    document.Add(image);
    currentImage++;
}

document.Close();
$vbLabelText   $csharpLabel

! PDF ビューアで、空白のページに ITEXT ロゴと"CORE"テキストが中央に表示されている - iTextSharp の画像挿入の出力例で、基本的な配置と拡大縮小機能を示しています

画像は座標 (50, 100) に追加され、200x200 ピクセル内に収まるように拡大縮小されます。 PdfWriter出力ファイルを作成し、画像を処理するためのPDF ライター機能を有効にします。 整理しやすくするために、ページ番号ヘッダー/フッターの使用を検討してください。

iTextSharp で画像の位置と寸法を制御するにはどうすればよいでしょうか?

iTextSharp は、手動の座標計算を通じて位置とサイズを制御できます。 アスペクト比を維持しながら画像を拡大縮小したり、特定の寸法に拡大縮小したりできます。 SetFixedPositionメソッドは正確な配置制御を提供し、配置と回転を操作できます。 ただし、IronPDF のビューポート コントロールレスポンシブ サイズ調整オプションがありません。

IronPDF と iTextSharp のパフォーマンスを比較するとどうなりますか?

どちらのライブラリも PDF への画像の追加を処理しますが、次のような顕著な違いがあります。

  • IronPDF のパフォーマンスが向上し、複数の画像を含む大きなドキュメントを効率的に処理できるようになりました。 特にグラフィックを多用するドキュメントの場合、PDF のレンダリングが高速化されます。 このライブラリは、スループットを向上させるために非同期操作並列処理をサポートしています。 メモリ ストリーム操作によりディスク I/O が削減され、パフォーマンスが向上します。

  • iTextSharp は優れたパフォーマンスを提供しますが、非常に大きな PDF や多数の高解像度画像では動作が遅くなる可能性があります。 効率的ではありますが、複数のページ操作を伴う複雑なユースケースでは、IronPDF に比べてレンダリング時間が遅くなると報告する開発者もいます。 このライブラリには、Web 最適化のための組み込み線形化サポートがありません。

利用できる高度な画像機能は何ですか?

さまざまな画像形式をどのように処理するのでしょうか?

IronPDF は完全な画像形式をサポートしています: -品質最適化されたJPEG/JPG -透明度をサポートするPNG

iTextSharp は標準形式をサポートしています:

  • JPEG/JPG
  • アルファチャンネル付きPNG
  • GIF(最初のフレームのみ)
  • TIFF(1ページ)
  • BMPおよびその他のビットマップ形式

画像の品質と圧縮はどうですか?

IronPDF には、ファイル サイズと品質のバランスをとる組み込みの圧縮オプションが用意されています。 このライブラリは、サニタイズ機能フラット化機能を提供します。

// Configure compression when rendering
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.JpegQuality = 85; // 0-100 quality scale

// Compress existing PDFs with images
PdfDocument pdf = PdfDocument.FromFile("large-images.pdf");
pdf.CompressImages(60); // Compress to 60% quality
pdf.SaveAs("compressed.pdf");

// Additional optimization options
renderer.RenderingOptions.GrayScale = true; // Convert to grayscale
renderer.RenderingOptions.DPI = 150; // Reduce DPI for web viewing
// Configure compression when rendering
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.JpegQuality = 85; // 0-100 quality scale

// Compress existing PDFs with images
PdfDocument pdf = PdfDocument.FromFile("large-images.pdf");
pdf.CompressImages(60); // Compress to 60% quality
pdf.SaveAs("compressed.pdf");

// Additional optimization options
renderer.RenderingOptions.GrayScale = true; // Convert to grayscale
renderer.RenderingOptions.DPI = 150; // Reduce DPI for web viewing
$vbLabelText   $csharpLabel

iTextSharp では、画像データの操作による手動の圧縮処理が必要なため、品質管理の実装の複雑さが増します。 独自のグレースケール変換DPI 調整を実装する必要があります。

既存の PDF から画像を抽出するにはどうすればよいでしょうか?

IronPDF は信頼性の高い画像抽出機能を提供します。

// Extract all images from a PDF
PdfDocument pdf = PdfDocument.FromFile("document.pdf");
var images = pdf.ExtractAllImages();

foreach (var image in images)
{
    // Save extracted images
    image.SaveAs($"extracted_image_{images.IndexOf(image)}.png");
}

// Extract images from specific pages
var pageImages = pdf.ExtractImagesFromPage(0); // First page
// Extract all images from a PDF
PdfDocument pdf = PdfDocument.FromFile("document.pdf");
var images = pdf.ExtractAllImages();

foreach (var image in images)
{
    // Save extracted images
    image.SaveAs($"extracted_image_{images.IndexOf(image)}.png");
}

// Extract images from specific pages
var pageImages = pdf.ExtractImagesFromPage(0); // First page
$vbLabelText   $csharpLabel

ライセンスと価格モデルは何ですか?

  • IronPDF: IronPDF は、一度だけ購入するだけで簡単に永久ライセンスを入手できます。 このアプローチは、継続的なコストやオープンソースのライセンス要件を回避するという明確なメリットをもたらします。 ライブラリには完全なサポートと定期的なアップデートが含まれています。 ライセンス検証は自動化されており、複数の展開シナリオをサポートします。

  • iTextSharp: iTextSharp は AGPL ライセンスに従っており、オープンソース プロジェクトでは無料ですが、Web アプリケーションでは公開ソース コードのリリースが必要です。 商用ライセンスは AGPL の制限を回避します。 ライセンス モデルによりクラウドの展開が複雑になる可能性があります。

PDF に画像を追加するにはどのライブラリを選択すればよいですか?

! IronPDFとiTextSharp PDFライブラリの機能比較表。使いやすさ、パフォーマンス、ライセンスの柔軟性、完全な画像形式のサポート、エンタープライズPDF生成のための高度な配置機能など、IronPDFの利点を示しています。

IronPDFと iTextSharp はどちらも C# で PDF に画像を追加するための効果的なツールを提供しており、それぞれに独自の利点があります。 IronPDF は、使いやすさ、パフォーマンス、ライセンスの柔軟性に優れており、最小限のコードで複雑な PDF や画像を処理するのに最適です。 大規模な PDFに対して優れたスケーラビリティを提供し、ライセンスを 1 回限り購入することで、定期的なコストや複雑なオープンソースの制限を回避できます。

ライブラリはSVGや WebP などの最新形式をサポートし、組み込みの圧縮機能と直感的な位置決め API と組み合わされているため、高品質のドキュメント生成を必要とするエンタープライズ アプリケーションに適しています。 IronPDF のChrome レンダリング エンジンは、すべてのプラットフォームでピクセル完璧な出力を保証します。

iTextSharp はオープンソース プロジェクトに適していますが、同等の結果を得るにはより多くのコードが必要となり、PDF のサイズが大きい場合はパフォーマンスの問題が発生する可能性があります。 低レベルの API によりきめ細かな制御が可能になりますが、開発の複雑さが増します。 このライブラリには、レスポンシブ CSS サポートJavaScript レンダリングなどの最新機能が欠けています。

エンタープライズ アプリケーションの場合、IronPDF の利点には、 Docker サポートAWS Lambda 互換性Azure Functions 統合などがあります。 このライブラリは、規制要件に応じてPDF/A 準拠PDF/UA アクセシビリティも提供します。

PDF 画像処理を簡素化する準備はできていますか? IronPDF は、最小限のコードで PDF に効率的に画像を追加します。 IronPDFを試して、C# プロジェクトでの簡素化された画像統合を体験してください。 この実装により、複雑な処理が自動的に行われ、時間が節約され、 PDF 生成ワークフローが改善されます。 完全な機能セットを探索し、PDF 操作を簡素化した何千人もの開発者に加わってください。

BRACKET-i-OPEN--iTextSharpは各所有者の登録商標です。 このサイトはiTextSharpと関係がない、または推奨、スポンサーされていません。すべての製品名、ロゴ、およびブランドは、それぞれの所有者の財産です。 比較は情報提供のみを目的としており、執筆時点で公開されている情報を反映しています。

よくある質問

.NETアプリケーションでPDFに画像を追加するにはどうすればいいですか?

ImageStamper機能を利用して、IronPDFを使用してPDFに画像を追加できます。これは、配置やスケーリングを正確に制御しながら、簡単に画像を埋め込むことができます。

大きなPDFファイルにおけるIronPDFのパフォーマンス向上は何ですか?

IronPDFは特に大きなPDFファイルや高解像度画像の処理が必要なサーバーベースアプリケーションに最適な高パフォーマンスに最適化されています。

IronPDFはPDFへの画像埋め込みプロセスをどのように簡素化しますか?

IronPDF は、最小限のコードで PDF 文書に画像を配置する直感的な API により、画像埋め込みを簡素化し、生産性を向上させます。

iTextSharpと比較した時のIronPDFのライセンスモデルは何ですか?

IronPDFは継続的なサブスクリプションコストを排除した、一度の購入での永続ライセンスを提供します。一方、iTextSharpはAGPLライセンスを使用し、プロプライエタリプロジェクトに商業オプションを提供しています。

IronPDFを使用してPDFに画像を追加するためのコード例を提供できますか?

もちろん!IronPDFのPdfDocumentおよびImageStamperクラスを使用し、記事内の例で示されるように、わずか数行のコードでPDFに画像を埋め込むことができます。

IronPDFとiTextSharpの間で画像の配置カスタマイズはどのように異なりますか?

IronPDFはアラインメントやオフセット設定を用いた単純な画像配置カスタマイズを提供しますが、iTextSharpはSetFixedPositionのようなメソッドを使用して画像の位置を詳細に制御します。

IronPDFとiTextSharpの選択における重要な考慮事項とは何ですか?

IronPDFとiTextSharpの選択は、使いやすさ、大きなファイルでのパフォーマンス、ライセンスニーズなどに依存します。IronPDFは使いやすさとスケーラビリティで好まれ、iTextSharpはオープンソースプロジェクトに適しています。

IronPDFが高パフォーマンスサーバーアプリケーションに推奨される理由は何ですか?

IronPDFのアーキテクチャは高性能用に設計され、大きな文書や画像を効率的に処理できるため、速度と信頼性を求めるサーバーアプリケーションに最適です。

PDFに画像を追加する際の一般的なトラブルシューティング手順は何ですか?

PDFで画像埋め込みの問題をトラブルシューティングする際、画像パスが正しいことを確認し、ファイルアクセス権限を確認し、画像形式が使用しているPDFライブラリでサポートされていることを確認します。

IronPDFのトライアル版が開発者にどのように役立つか?

IronPDFのトライアル版は、その機能を探求し、PDF画像の埋め込みを処理する能力を試す機会を提供し、C#プロジェクトでのPDFプロセシングを簡素化します。

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

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

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