IRON SUITEの使用

2025ガイド:ベストC# PDFライブラリ(最初は無料、必要に応じて有料)

ほとんどの人が PDF (Portable Document Format) について考えるとき、情報満載のファイルを思い浮かべます。 そして彼らの言う通り、現在、PDF は情報を共有するための最も一般的に使用されているファイル形式であり、標準となっています。 しかし、プログラマーが PDF を閲覧する場合、表示されるのは情報だけではありません。 フォーマット、コンテンツの種類、その他の技術的な側面を分析します。

プログラムで PDF ファイルを作成する場合、コンテンツの構造を維持することが最も重要なタスクです。 そして、それは見た目ほど簡単な作業ではありません。コンテンツと言うとき、それはテキストだけを意味するのではなく、画像、グラフ、オーディオ、さらにはビデオも含まれるからです。 また、PDF をプログラムで編集することも今では一般的な要件となっています。

AI の時代では、PDF を完全に制御する必要があります。 場合によっては、ポリシーに従ってテキストを編集したり、機密ファイルを保護するために PDF を保護したり、処理のためにデータを抽出したり、レポートを動的に生成したりする必要があります。 これらのプロセスには多くの使用例があります。 これらは、開発者が PDF ファイルをプログラムで処理する際によく直面する問題です。

  1. あらゆる種類のメディアをコンテンツとして扱いながら、PDF文書のフォーマットされたレイアウトを維持する方法

  2. テキストを正しい順序で抽出する(特に列にテキストがある場合)

  3. 多数のページを持つPDF文書を処理する際のメモリ制約

  4. フォーム処理は開発者が直面する大きな問題である

  5. PDFファイルを他の適切なドキュメントタイプに変換する

この作業を容易にするために、PDF ライブラリが登場します。 この記事では、 IronPDFや Aspose.PDF などの複数のC# PDF ライブラリとその価格モデルについて説明します。 実際のユースケースを詳しく見ていき、これらのライブラリがどのようにして PDF の作成と操作をプログラムで簡単にし、数ステップで実稼働対応できるようにするのかを理解します。

1. IronPDF: C# PDFライブラリ

IronPDF は、開発者が PDF ドキュメントの作成、編集、PDF ドキュメントの他の形式への変換、その他多くの PDF 操作の実行に使用できる包括的な .NET PDF ライブラリです。 大きな PDF ファイルを処理するときに使用するメモリは最小限です。 これは完全にローカル マシン上で動作するため、サーバー レベルの処理に依存する必要はありません。

このライブラリは最新の .NET Framework とも互換性があり、.NET プロジェクトとの統合も非常にスムーズです。 NuGet パッケージ マネージャーで次のコマンドを実行するだけで、IronPDF をプロジェクトで使用できるようになります。

Install-Package IronPdf

外部依存関係から完全に独立しているため、他のライブラリをインストールする必要はありません。 このライブラリをインストールすると、必要な依存関係がすべて一度に自動的にインストールされます。

IronPDF の最も重要な機能は、ピクセル単位の精度で HTML を PDF に変換できることです。 IronPDF は、HTML コンテンツから PDF ドキュメントを作成するための複数の方法を提供します。 HTML 文字列、HTML ファイル、または URL を直接 PDF に変換できます。 CSS と JavaScript もサポートされており、生成された PDF ドキュメントが元の HTML レンダリングを正確に反映します。

IronPDF は、基本的な操作に加えて、PDF フォーム、全レベルの暗号化、デジタル署名の追加をサポートします。 PDF ファイルから画像とテキストを抽出できます。 また、テキストまたは HTML のヘッダーとフッターを追加したり、PDF を結合および分割したり、複数のテキスト セグメントを変更したり、テキストを検索および置換したりすることもできます。 IronPDF は、HTML からの PDF の作成をサポートするだけでなく、DOCX、RTF、MD、画像ファイルから PDF への変換もサポートします。 このライブラリは非常に軽量で、メモリ管理が非常に効率的です (基本操作に必要なメモリは 10 MB 未満)。 IronPDF は、安定性とパフォーマンスに関するマイルストーンを追跡しており、ここからアクセスできます。

IronPDF は複数レベルのサポートを提供します。 ライブチャット、チケット作成、または電子メールを介してエンジニアに連絡できます。 サポートチームは24時間365日対応しています。IronPDFには、理解しておく必要のあるトピックや疑問点をほぼすべて網羅した詳細なチュートリアルとドキュメントも用意されています。

IronPDF は、多くの有名企業によって本番製品向けにテスト、最適化され、信頼されている、本番環境対応のライブラリです。 これにより、PDF 操作のプロジェクトで使用するのに最適な PDF ライブラリの 1 つになります。 IronPDF ライブラリのコード例を見てみましょう。

コード例

HTMLをPDFに変換

using IronPdf;
var renderer = new ChromePdfRenderer();

// 1. HTML String to PDF
var pdf1 = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
pdf1.SaveAs("html-string.pdf");

// 2. HTML String with Assets (Images, CSS, JS)
var pdf2 = renderer.RenderHtmlAsPdf(
    "<img src='logo.png'><link rel='stylesheet' href='style.css'>",
    @"C:\assets\"
);
pdf2.SaveAs("html-with-assets.pdf");

// 3. HTML File to PDF
var pdf3 = renderer.RenderHtmlFileAsPdf("example.html");
pdf3.SaveAs("html-file.pdf");

// 4. URL to PDF
var pdf4 = renderer.RenderUrlAsPdf("https://ironpdf.com");
pdf4.SaveAs("url.pdf");
using IronPdf;
var renderer = new ChromePdfRenderer();

// 1. HTML String to PDF
var pdf1 = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
pdf1.SaveAs("html-string.pdf");

// 2. HTML String with Assets (Images, CSS, JS)
var pdf2 = renderer.RenderHtmlAsPdf(
    "<img src='logo.png'><link rel='stylesheet' href='style.css'>",
    @"C:\assets\"
);
pdf2.SaveAs("html-with-assets.pdf");

// 3. HTML File to PDF
var pdf3 = renderer.RenderHtmlFileAsPdf("example.html");
pdf3.SaveAs("html-file.pdf");

// 4. URL to PDF
var pdf4 = renderer.RenderUrlAsPdf("https://ironpdf.com");
pdf4.SaveAs("url.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

PDFからテキストと画像を抽出する

using IronPdf;
using IronSoftware.Drawing;
using System.Collections.Generic;

// Load PDF document
var pdf = PdfDocument.FromFile("sample.pdf");

// 1. Extract All Text
string allText = pdf.ExtractAllText();

// 2. Extract Text from Specific Page
string pageText = pdf.ExtractTextFromPage(0); 

// 3. Extract Text from Multiple Pages
for (int i = 0; i < pdf.PageCount; i++)
{
    string text = pdf.ExtractTextFromPage(i);
    Console.WriteLine($"Page {i + 1}: {text}");
}

// 4. Extract All Images
var allImages = pdf.ExtractAllImages();
foreach (var image in allImages)
{
    image.SaveAs($"image_{allImages.IndexOf(image)}.png");
}

// 5. Extract Images from Specific Page
List<AnyBitmap> pageImages = pdf.ExtractBitmapsFromPage(0);

// 6. Extract Raw Images (as byte arrays)
var rawImages = pdf.ExtractAllRawImages();
for (int i = 0; i < rawImages.Count; i++)
{
    System.IO.File.WriteAllBytes($"raw_image_{i}.png", rawImages[i]);
}

// 7. Extract Both Text & Images from Each Page
for (int i = 0; i < pdf.PageCount; i++)
{
    string text = pdf.ExtractTextFromPage(i);
    List<AnyBitmap> images = pdf.ExtractBitmapsFromPage(i);

    Console.WriteLine($"Page {i + 1}: {text}");
    Console.WriteLine($"Found {images.Count} images");
}
using IronPdf;
using IronSoftware.Drawing;
using System.Collections.Generic;

// Load PDF document
var pdf = PdfDocument.FromFile("sample.pdf");

// 1. Extract All Text
string allText = pdf.ExtractAllText();

// 2. Extract Text from Specific Page
string pageText = pdf.ExtractTextFromPage(0); 

// 3. Extract Text from Multiple Pages
for (int i = 0; i < pdf.PageCount; i++)
{
    string text = pdf.ExtractTextFromPage(i);
    Console.WriteLine($"Page {i + 1}: {text}");
}

// 4. Extract All Images
var allImages = pdf.ExtractAllImages();
foreach (var image in allImages)
{
    image.SaveAs($"image_{allImages.IndexOf(image)}.png");
}

// 5. Extract Images from Specific Page
List<AnyBitmap> pageImages = pdf.ExtractBitmapsFromPage(0);

// 6. Extract Raw Images (as byte arrays)
var rawImages = pdf.ExtractAllRawImages();
for (int i = 0; i < rawImages.Count; i++)
{
    System.IO.File.WriteAllBytes($"raw_image_{i}.png", rawImages[i]);
}

// 7. Extract Both Text & Images from Each Page
for (int i = 0; i < pdf.PageCount; i++)
{
    string text = pdf.ExtractTextFromPage(i);
    List<AnyBitmap> images = pdf.ExtractBitmapsFromPage(i);

    Console.WriteLine($"Page {i + 1}: {text}");
    Console.WriteLine($"Found {images.Count} images");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

PDFドキュメントの編集:ヘッダーとフッター

using IronPdf;
using System;
var renderer = new ChromePdfRenderer();

// 1. Add Footer with Page Numbers
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
    HtmlFragment = "<center><i>{page} of {total-pages}</i></center>",
    MaxHeight = 15, // mm
    DrawDividerLine = true
};
renderer.RenderingOptions.MarginBottom = 25;

// 2. Add Header with Logo
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
    HtmlFragment = "<img src='logo.png'>",
    MaxHeight = 20, // mm
    BaseUrl = new Uri(@"C:\assets\images\").AbsoluteUri
};
renderer.RenderingOptions.MarginTop = 25;

// 3. Render HTML to PDF
var pdf = renderer.RenderHtmlAsPdf("<h1>Document Title</h1><p>Content...</p>");
pdf.SaveAs("output.pdf");
using IronPdf;
using System;
var renderer = new ChromePdfRenderer();

// 1. Add Footer with Page Numbers
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
    HtmlFragment = "<center><i>{page} of {total-pages}</i></center>",
    MaxHeight = 15, // mm
    DrawDividerLine = true
};
renderer.RenderingOptions.MarginBottom = 25;

// 2. Add Header with Logo
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
    HtmlFragment = "<img src='logo.png'>",
    MaxHeight = 20, // mm
    BaseUrl = new Uri(@"C:\assets\images\").AbsoluteUri
};
renderer.RenderingOptions.MarginTop = 25;

// 3. Render HTML to PDF
var pdf = renderer.RenderHtmlAsPdf("<h1>Document Title</h1><p>Content...</p>");
pdf.SaveAs("output.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

フォーム処理

using IronPdf;

// Load existing PDF with form fields
var pdf = PdfDocument.FromFile("EditableForm.pdf");

// Fill text fields
pdf.Form.FindFormField("firstname").Value = "John";
pdf.Form.FindFormField("lastname").Value = "Smith";
pdf.Form.FindFormField("email").Value = "john.smith@example.com";

// Fill radio button
pdf.Form.FindFormField("gender").Value = "Male";

// Fill dropdown/combobox
pdf.Form.FindFormField("country").Value = "USA";

// Fill checkbox ("Yes" to check, "No" to uncheck)
pdf.Form.FindFormField("subscribe").Value = "Yes";

// Fill textarea (use \r\n for line breaks)
pdf.Form.FindFormField("comments").Value = "This is a comment.\r\nSecond line here.";

// Save filled form
pdf.SaveAs("FilledForm.pdf");
using IronPdf;

// Load existing PDF with form fields
var pdf = PdfDocument.FromFile("EditableForm.pdf");

// Fill text fields
pdf.Form.FindFormField("firstname").Value = "John";
pdf.Form.FindFormField("lastname").Value = "Smith";
pdf.Form.FindFormField("email").Value = "john.smith@example.com";

// Fill radio button
pdf.Form.FindFormField("gender").Value = "Male";

// Fill dropdown/combobox
pdf.Form.FindFormField("country").Value = "USA";

// Fill checkbox ("Yes" to check, "No" to uncheck)
pdf.Form.FindFormField("subscribe").Value = "Yes";

// Fill textarea (use \r\n for line breaks)
pdf.Form.FindFormField("comments").Value = "This is a comment.\r\nSecond line here.";

// Save filled form
pdf.SaveAs("FilledForm.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

上記の例からわかるように、IronPDF を使用すると、わずか数行で PDF ファイルに対してあらゆる操作を実行できます。 それは非常にシンプルでわかりやすいです。 メソッド名は理解しやすく、実装も簡単です。

ライセンス

IronPDF は開発目的で無料で使用でき、無料トライアルもダウンロードできます。 ただし、制作には IronPDF のライセンスを購入する必要があります。 IronPDF のライセンス モデルは柔軟性が高く、次の 2 種類のライセンスが用意されています。

1.サブスクリプションライセンス

2.永久ライセンス

サブスクリプション ライセンスの料金は月額 59 ドル (年払い) で、これには開発者 1 名、プロジェクト 1 件、年間 15,000 回の API 呼び出しが含まれます。 割り当て量を超えた後の追加の API 呼び出しには、1 回あたり 0.03 ドルの料金がかかります。

永久ライセンスは 749 ドルから始まり、ニーズに応じて選択できる複数のオプションがあります。 このライセンスの最も優れた点は、時間単位での支払いであることです。 IronPDF の使用に対して再度料金を支払う必要はありません。

Csharp Pdf Libraries Tool 1 related to ライセンス

2. Aspose.PDF .NET 版

Aspose.PDFは、Aspose が .NET ライブラリ スイートの一部として開発した C# PDF ライブラリで、複雑なレポートや機密文書の作成、PDF ドキュメントのカスタマイズなど、PDF 関連のタスクで商業的に広く使用されています。 これは、C# で最もよく使用される PDF ライブラリの 1 つです。 最新の .NET Framework もサポートしています。

Aspose.PDF は、HTML コンテンツから PDF ドキュメントを作成できるだけでなく、静的ファイルを作成する代わりに XML ファイルからデータを抽出して実際のデータを満たすこともサポートしています。 この機能は複雑なレポートを作成するのに非常に役立ちます。 IronPDF と同様に、PDF ファイルにテキスト、画像、グラフ、その他多くの種類のコンテンツを追加できます。 Aspose.PDF では、デジタル署名の埋め込み、注釈の処理、ヘッダーとフッター、PDF ファイルからのテキストの抽出も行えます。 PDF から構造化データを抽出できます。 このライブラリは、前述の機能を使用することで PDF 編集を非常にうまく処理します。

Aspose.PDF ライブラリにはこれらの利点がある一方で、欠点もいくつかあります。 このライブラリの主な欠点は、価格が非常に高いこと(1,679 ドルから)と、価格モデルが非常に複雑で理解しにくいことです。 IronPDF とは異なり、開発や展開などのプロセスごとにモデルを個別に購入する必要があります。 また、このライブラリは非常に多くのリソースを消費します ( 400 枚以上の画像を含む PDF を生成すると 2 GB を超えます)。 PDF 操作を実行するには大量のメモリが必要となり、非常にイライラします。 このライブラリの機能が非常に優れていることは間違いありませんが、学習曲線が非常に急です。 そのコードは理解するのが簡単ではなく、理解するには非常に詳細な学習セッションが必要です。

コード例

テキスト、画像、表を含むPDFドキュメントを生成する

using Aspose.Pdf;
using Aspose.Pdf.Text;

using (var document = new Document())
{
    // Add page objects
    var page = document.Pages.Add();

    // Add image - requires Rectangle positioning (You can add tiff images as well)
    page.AddImage("logo.png", new Rectangle(20, 730, 120, 830));

    // Add text - requires manual positioning
    var header = new TextFragment("Company Report");
    header.TextState.Font = FontRepository.FindFont("Arial");
    header.TextState.FontSize = 24;
    header.HorizontalAlignment = HorizontalAlignment.Center;
    header.Position = new Position(130, 720);
    page.Paragraphs.Add(header);

    // Add table - extensive configuration required
    var table = new Table
    {
        ColumnWidths = "100 100 100",
        Border = new BorderInfo(BorderSide.Box, 1f, Color.Black),
        DefaultCellBorder = new BorderInfo(BorderSide.Box, 0.5f, Color.Gray),
        DefaultCellPadding = new MarginInfo(4.5, 4.5, 4.5, 4.5)
    };

    // Add header row
    var headerRow = table.Rows.Add();
    headerRow.Cells.Add("Name");
    headerRow.Cells.Add("Age");
    headerRow.Cells.Add("City");

    // Style each header cell individually
    foreach (Cell cell in headerRow.Cells)
    {
        cell.BackgroundColor = Color.LightGray;
        cell.DefaultCellTextState.FontSize = 12;
    }

    // Add data row
    var dataRow = table.Rows.Add();
    dataRow.Cells.Add("John Doe");
    dataRow.Cells.Add("30");
    dataRow.Cells.Add("New York");

    page.Paragraphs.Add(table);

    // Save document
    document.Save("Report.pdf");
}
using Aspose.Pdf;
using Aspose.Pdf.Text;

using (var document = new Document())
{
    // Add page objects
    var page = document.Pages.Add();

    // Add image - requires Rectangle positioning (You can add tiff images as well)
    page.AddImage("logo.png", new Rectangle(20, 730, 120, 830));

    // Add text - requires manual positioning
    var header = new TextFragment("Company Report");
    header.TextState.Font = FontRepository.FindFont("Arial");
    header.TextState.FontSize = 24;
    header.HorizontalAlignment = HorizontalAlignment.Center;
    header.Position = new Position(130, 720);
    page.Paragraphs.Add(header);

    // Add table - extensive configuration required
    var table = new Table
    {
        ColumnWidths = "100 100 100",
        Border = new BorderInfo(BorderSide.Box, 1f, Color.Black),
        DefaultCellBorder = new BorderInfo(BorderSide.Box, 0.5f, Color.Gray),
        DefaultCellPadding = new MarginInfo(4.5, 4.5, 4.5, 4.5)
    };

    // Add header row
    var headerRow = table.Rows.Add();
    headerRow.Cells.Add("Name");
    headerRow.Cells.Add("Age");
    headerRow.Cells.Add("City");

    // Style each header cell individually
    foreach (Cell cell in headerRow.Cells)
    {
        cell.BackgroundColor = Color.LightGray;
        cell.DefaultCellTextState.FontSize = 12;
    }

    // Add data row
    var dataRow = table.Rows.Add();
    dataRow.Cells.Add("John Doe");
    dataRow.Cells.Add("30");
    dataRow.Cells.Add("New York");

    page.Paragraphs.Add(table);

    // Save document
    document.Save("Report.pdf");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Aspose.PDF で新しい PDF ドキュメントを作成するために必要なコードは非常に複雑であることがわかります。 コード自体のすべての座標を手動で設定する必要があります。 各 PDF オブジェクト要素に手動でスタイルを設定する必要がありますが、これは非常に時間がかかり、効率的ではありません。 ただし、PDF ドキュメントを細かく制御できます。

ライセンス

Aspose.PDF には複数のライセンス オプションがありますが、そのほとんどは従量課金制です。 ライセンス価格は1,679ドルから。IronPDFのライセンスオプション(749ドルから)と比べると、かなり高価です。

Csharp Pdf Libraries Tool 2 related to ライセンス

3. .NET 用 iTextSuite

iTextSuite (一般に iText7 および iTextSharp と呼ばれます) は、Apryse が提供する PDF 開発用の SDK です。 これは、.NET アプリケーションで PDF 操作を実行するために必要なすべてのツールを備えた包括的なスイートです。 上記のライブラリと同様に、PDF ドキュメントに対して作成、編集、編集、暗号化、およびその他の多くの操作を実行できます。

iTextSuite は、単純な請求書の作成から、財務モジュールに関するレポートの複雑なレイアウトまで、あらゆる PDF タスクの作成と編集を非常にうまく処理します。 また、システムへの負担も少なく、重い文書でも問題なく動作します。 ドキュメントを迅速に処理し、大きな遅延なしに出力を提供します。

これらすべての優れた機能に加えて、iTextSuite にはいくつかの欠点もあります。このライブラリを検討する前に、それらを知っておく必要があります。 このライブラリのコストは、市場に存在する他のライブラリと比較して非常に高いと言われています。 元の価格は価格ページでは確認できません。 見積もりを取得するには、カスタマー サポートに連絡する必要があります。 AGPLライセンスも提供していますが、AGPLライセンスのiTextSuiteを使用する場合は、製品をオープンソース化する必要があります。Asposeと同様に、習得が難しく、初心者には使いにくいです。 高度な PDF 操作には、PDF とライブラリの構造に関する詳細な理解が必要です。

コード例

スタイルと色を設定したPDFドキュメントの表を作成する

using iText.Kernel.Colors;
using iText.Kernel.Pdf;
using iText.Layout;
using iText.Layout.Element;
using iText.Layout.Properties;

public void CreateStyledTable(string dest)
{
    using var writer = new PdfWriter(dest);
    using var pdf = new PdfDocument(writer);
    var document = new Document(pdf);

    // Create a 2-column table
    Table table = new Table(2, false);

    // Header cells with gray background
    Cell cell11 = new Cell(1, 1)
        .SetBackgroundColor(ColorConstants.GRAY)
        .SetTextAlignment(TextAlignment.CENTER)
        .Add(new Paragraph("State"));

    Cell cell12 = new Cell(1, 1)
        .SetBackgroundColor(ColorConstants.GRAY)
        .SetTextAlignment(TextAlignment.CENTER)
        .Add(new Paragraph("Capital"));

    // Data cells
    Cell cell21 = new Cell(1, 1)
        .SetTextAlignment(TextAlignment.CENTER)
        .Add(new Paragraph("New York"));

    Cell cell22 = new Cell(1, 1)
        .SetTextAlignment(TextAlignment.CENTER)
        .Add(new Paragraph("Albany"));

    Cell cell31 = new Cell(1, 1)
        .SetTextAlignment(TextAlignment.CENTER)
        .Add(new Paragraph("New Jersey"));

    Cell cell32 = new Cell(1, 1)
        .SetTextAlignment(TextAlignment.CENTER)
        .Add(new Paragraph("Trenton"));

    // Add all cells to table
    table.AddCell(cell11);
    table.AddCell(cell12);
    table.AddCell(cell21);
    table.AddCell(cell22);
    table.AddCell(cell31);
    table.AddCell(cell32);

    document.Add(table);
    document.Close();
}
using iText.Kernel.Colors;
using iText.Kernel.Pdf;
using iText.Layout;
using iText.Layout.Element;
using iText.Layout.Properties;

public void CreateStyledTable(string dest)
{
    using var writer = new PdfWriter(dest);
    using var pdf = new PdfDocument(writer);
    var document = new Document(pdf);

    // Create a 2-column table
    Table table = new Table(2, false);

    // Header cells with gray background
    Cell cell11 = new Cell(1, 1)
        .SetBackgroundColor(ColorConstants.GRAY)
        .SetTextAlignment(TextAlignment.CENTER)
        .Add(new Paragraph("State"));

    Cell cell12 = new Cell(1, 1)
        .SetBackgroundColor(ColorConstants.GRAY)
        .SetTextAlignment(TextAlignment.CENTER)
        .Add(new Paragraph("Capital"));

    // Data cells
    Cell cell21 = new Cell(1, 1)
        .SetTextAlignment(TextAlignment.CENTER)
        .Add(new Paragraph("New York"));

    Cell cell22 = new Cell(1, 1)
        .SetTextAlignment(TextAlignment.CENTER)
        .Add(new Paragraph("Albany"));

    Cell cell31 = new Cell(1, 1)
        .SetTextAlignment(TextAlignment.CENTER)
        .Add(new Paragraph("New Jersey"));

    Cell cell32 = new Cell(1, 1)
        .SetTextAlignment(TextAlignment.CENTER)
        .Add(new Paragraph("Trenton"));

    // Add all cells to table
    table.AddCell(cell11);
    table.AddCell(cell12);
    table.AddCell(cell21);
    table.AddCell(cell22);
    table.AddCell(cell31);
    table.AddCell(cell32);

    document.Add(table);
    document.Close();
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

上記の例から、iTextSuite のコードの複雑さがお分かりいただけると思います。大規模なアプリケーションを構築する場合、開発時間と複雑さが増大します。

ライセンス

iTextSuite には 2 つのライセンス モデルがあります。 1 つは商用ライセンスで、もう 1 つは AGPL ライセンスです。 iTextSuite は AGPL ライセンスの下で無料で本番環境で使用できますが、製品もオープンソース化する必要があります。 商用ライセンスに関しては、ライセンスページに価格は記載されていません。 見積りを依頼するか、カスタマー サポートにお問い合わせください。

Csharp Pdf Libraries Tool 3 related to ライセンス

4. PDFシャープ

PDFsharpは、開発者がプログラムで PDF 操作を実行するときに直面する PDF の問題に対する C# オープンソース ソリューションです。 .NET Core を含む最新の .NET フレームワークもサポートしています。 これは、PDF に関する開発者の基本的なニーズをすべて満たす軽量ソリューションです。

PDFSharp は、最も一般的な PDF 操作を簡単に処理できます。 ドキュメントを作成したり、画像を挿入したり、図形を描画したり、テキストのフォントやサイズを編集したりできます。 PDFSharp では PDF を完全に制御できるため、任意の位置に任意のものを配置できます。

ただし、PDFSharp には知っておくべき特定の制限があります。 HTML から PDF への変換はネイティブではサポートされていません。HTML を使用すると PDF でのスタイル設定や配置が非常に簡単になるので、これは開発者にとって大きな欠点です。 複数の大きなファイルを処理する必要がある場合、パフォーマンスに影響が出ます。 暗号化やフォーム入力などの複雑な操作は実行できません。 また、公式のサポート チャネルも存在しません。 このライブラリの使用中に問題が発生した場合、コミュニティまたは独自の問題解決スキルにのみ頼る必要があります。

コード例

複数のテキストスタイルを含むPDFを作成する

using PdfSharp.Pdf;
using PdfSharp.Drawing;

// Create document
PdfDocument document = new PdfDocument();
PdfPage page = document.AddPage();
XGraphics gfx = XGraphics.FromPdfPage(page);

// Example of different font styles
XFont regularFont = new XFont("Arial", 12, XFontStyleEx.Regular);
XFont boldFont = new XFont("Arial", 12, XFontStyleEx.Bold);
XFont italicFont = new XFont("Arial", 12, XFontStyleEx.Italic);
XFont boldItalicFont = new XFont("Arial", 12, XFontStyleEx.BoldItalic);

// Position for the first text
double y = 50;
double x = 50;
double lineHeight = 20;

// Draw text in different styles - REQUIRES manual positioning
gfx.DrawString("Regular text in Arial", regularFont, XBrushes.Black, x, y);
y += lineHeight;
gfx.DrawString("Bold text in Arial", boldFont, XBrushes.Black, x, y);
y += lineHeight;
gfx.DrawString("Italic text in Arial", italicFont, XBrushes.Black, x, y);
y += lineHeight;
gfx.DrawString("Bold and Italic text in Arial", boldItalicFont, XBrushes.Black, x, y);

// Save document
document.Save("FormattedText.pdf");
using PdfSharp.Pdf;
using PdfSharp.Drawing;

// Create document
PdfDocument document = new PdfDocument();
PdfPage page = document.AddPage();
XGraphics gfx = XGraphics.FromPdfPage(page);

// Example of different font styles
XFont regularFont = new XFont("Arial", 12, XFontStyleEx.Regular);
XFont boldFont = new XFont("Arial", 12, XFontStyleEx.Bold);
XFont italicFont = new XFont("Arial", 12, XFontStyleEx.Italic);
XFont boldItalicFont = new XFont("Arial", 12, XFontStyleEx.BoldItalic);

// Position for the first text
double y = 50;
double x = 50;
double lineHeight = 20;

// Draw text in different styles - REQUIRES manual positioning
gfx.DrawString("Regular text in Arial", regularFont, XBrushes.Black, x, y);
y += lineHeight;
gfx.DrawString("Bold text in Arial", boldFont, XBrushes.Black, x, y);
y += lineHeight;
gfx.DrawString("Italic text in Arial", italicFont, XBrushes.Black, x, y);
y += lineHeight;
gfx.DrawString("Bold and Italic text in Arial", boldItalicFont, XBrushes.Black, x, y);

// Save document
document.Save("FormattedText.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

PDFSharp は、正確な位置制御を備えた基本的な PDF 生成のための軽量で無料のソリューションを必要とする開発者にとって、依然として確実な選択肢です。 より高度な要件を満たすには、その制限を回避するか、他のツールを追加する準備をしてください。

ライセンス

PDFSharp は MIT ライセンスに基づいて配布されており、完全に無料で使用できます。 配布物に元の著作権表示とライセンスを記載するだけです。

5. PDFピッグ

PDFPig は、PDF ファイルからコンテンツを読み取って抽出できる、.NET 開発者向けに構築されたもう 1 つのオープン ソース ライブラリです。 このライブラリは、PDF ドキュメントから個々の文字の位置とサイズを抽出します。 画像を取得し、PDF の注釈とフォームを読み取り、ハイパーリンクにアクセスし、埋め込まれたドキュメントを公開します。 ドキュメントのメタデータにアクセスし、PDF の内部構造を表示することもできます。

このライブラリは、同様の .NET ツールと比較してベンチマークで優れたパフォーマンスを発揮し、メモリを効率的に使用します。 商用オプションに代わる無料の代替手段を提供します。 定期的に更新され、アクティブな GitHub ドキュメントが維持されます。

ライブラリには、知っておくべき明確な制限があります。 HTML やその他の形式を PDF に変換しません。 PDF ページから画像を生成することはできませんが、docnet や PDFtoImage などの別のツールがそのギャップを埋めることができます。PDF フォームは読み取り専用です。 フォームの値を変更または追加することはできません。 表抽出には、Tabula SharpやCamelot Sharpなどの外部ツールが必要です。ドキュメント作成時にハイパーリンクを追加または編集することはできません。 IronPDF のようなより包括的なライブラリと比較すると、PDFPig は機能が少なく、ドキュメントもそれほど充実していません。

コード例

基本的なテキスト抽出

using System;
using System.Collections.Generic;
using System.Linq;
using UglyToad.PdfPig;
using UglyToad.PdfPig.Content;

public static class Program
{
    public static void Main()
    {
        using (PdfDocument document = PdfDocument.Open(@"C:\path\to\file.pdf"))
        {
            foreach (Page page in document.GetPages())
            {
                // Extract all letters
                IReadOnlyList<Letter> letters = page.Letters;
                string text = string.Join(string.Empty, letters.Select(x => x.Value));

                // Extract words
                IEnumerable<Word> words = page.GetWords();

                // Extract images
                IEnumerable<IPdfImage> images = page.GetImages();
            }
        }
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using UglyToad.PdfPig;
using UglyToad.PdfPig.Content;

public static class Program
{
    public static void Main()
    {
        using (PdfDocument document = PdfDocument.Open(@"C:\path\to\file.pdf"))
        {
            foreach (Page page in document.GetPages())
            {
                // Extract all letters
                IReadOnlyList<Letter> letters = page.Letters;
                string text = string.Join(string.Empty, letters.Select(x => x.Value));

                // Extract words
                IEnumerable<Word> words = page.GetWords();

                // Extract images
                IEnumerable<IPdfImage> images = page.GetImages();
            }
        }
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

ライセンス

PDFPig は Apache 2.0 ライセンスに基づいて配布されており、配布物には元の著作権表示とライセンス テキストを含めることのみが求められます。 この要件以外では、このライブラリをどのような方法でも自由に使用できます。

結論

まとめると、これらの C# PDF ライブラリの価格とライセンス モデルを比較してみましょう。

IronPDFは、個人と企業の両方に適した柔軟な価格プランを提供しています。開発目的では無料で、無料トライアルもご利用いただけます。 価格はわずか749ドルからと非常にリーズナブルです。包括的な機能セット、優れたサポート、そして本番環境で使用可能な安定性を備えたIronPDFは、最高のコストパフォーマンスを提供します。

Aspose.PDF は従量課金モデルを採用しており、ライセンス料は 1,679 ドルからとなっており、他の選択肢よりもかなり高価です。 きめ細かな制御が可能ですが、学習曲線が急峻でコストも高いため、すべての予算に合うとは限りません。

iTextSuiteはウェブサイト上で価格を明確に公開していません。見積もりを取得するにはサポートチームに問い合わせる必要があります。つまり、価格はケースごとに異なります。 無料使用のために AGPL ライセンスが提供されていますが、製品全体をオープンソース化する必要があります。

PDFSharpPDFPig は、それぞれ MIT ライセンスと Apache 2.0 ライセンスの下で完全に無料です。 ただし、商用オプションと比較すると機能は制限されます。 PDFSharp には HTML から PDF への変換機能がなく、大きなファイルの処理に苦労しますが、PDFPig は主に読み取り専用ライブラリです。

適切な PDF ライブラリの選択は、特定のニーズと予算によって異なります。 基本的な操作が必要で、技術的な専門知識がある場合は、オープン ソース オプションが適しています。 ただし、高度な機能、信頼性の高いサポート、包括的なドキュメントを必要とする機能豊富なアプリケーションの場合、IronPDF は最もコスト効率が高く、機能が充実したソリューションとして際立っています。