IronPDF vs GemBox.Pdf: HTMLからPDFへの変換のための完全な.NET PDFライブラリ比較ガイド
.NETアプリケーションの開発においてPDF生成および操作を必要とする場合、適切なC# PDFライブラリを選択することがプロジェクトの成功に大きな影響を与える可能性があります。 この包括的な比較は、開発者が機能、パフォーマンス、価格、および実際の使用事例に基づいて情報に基づいた決定を下すのを助けるために、2つの著名な.NET PDFライブラリであるIronPDFとGemBox.Pdfを検討します。
クイック比較の概要
| カテゴリ | 特徴/側面 | IronPDF | GemBox.Pdf | 主な利点 |
|---|---|---|---|---|
| コアアーキテクチャ | デザイン哲学 | HTMLファースト、Chromeレンダリング | PDFネイティブ操作 | 文脈依存 |
| APIの複雑さ | RenderHtmlAsPdf()のような単純なメソッド。 | 低レベルPDFオブジェクト | IronPDF: より速い開発 | |
| 学習曲線 | 通常1~2日 | 通常3~5日 | IronPDF: より迅速な導入 | |
| プラットフォームサポート | クロスプラットフォーム | Windows、Linux、macOS、Docker | Windows、Linux、macOS、Android、iOS | GemBox:モバイルサポート |
| .NETバージョン | .NET 10、9、8、7、6、5、Core 3.1 以上、Framework 4.6.2 以上 | .NET 6、Standard 2.0、Framework 3.5+。 | IronPDF: 最新の.NETサポート | |
| クラウドプラットフォーム | Azure/AWSの最適化 | 標準クラウドサポート | IronPDF:クラウド対応 | |
| HTMLからPDFへ | レンダリングエンジン | フルクロームV8エンジン | 組み込みのHTMLサポートなし*。 | IronPDF:ネイティブHTMLからPDFへ |
| CSS3/HTML5 サポート | 完全なサポート | GemBox.Documentが必要です。 | IronPDF: 最新のWeb標準 | |
| JavaScriptの実行 | 完全なJavaScriptサポート | JavaScriptサポートなし | IronPDF: 動的コンテンツ | |
| レンダリング速度 | ~125ms(標準 | 該当なし(HTMLサポートなし) | IronPDF:高速レンダリング | |
| 開発者としての経験 | コード例 | すぐに実行できる100以上のサンプル | 100以上の例文あり | 両方:豊富なリソース |
| ドキュメント | チュートリアル、ハウツー、ビデオ | APIドキュメント | IronPDF:複数の学習パス | |
| コンテンツ操作 | PDFのマージ/分割 | 組み込みメソッド | 組み込みメソッド | 両方:標準機能 |
| テキスト抽出 | ユニコード対応、OCR統合 | ユニコード対応、OCR内蔵 | GemBox:内蔵OCR | |
| フォームサポート | HTMLフォームからPDFフォームへ | フォームの作成、入力、フラット化 | 文脈依存 | |
| パフォーマンス指標 | メモリ使用量 | 標準10MB以下 | 低メモリーフットプリント | 両方:効率的 |
| スレッドサポート | ネイティブのasync/awaitを最適化 | スレッドセーフな操作 | IronPDF:より良い非同期サポート | |
| Security & Encryption | 暗号化レベル | AES-256、カスタムハンドラー | AES-256標準 | 両方:業界標準 |
| デジタル署名 | 統合された視覚的シグネチャ | デジタル署名のサポート | 両方:署名サポート | |
| Licensing & Pricing | エントリーレベル | Lite: $799 (1 dev, 1 project) | シングル開発者: $890 (開発者1名、プロジェクト数無制限) | IronPDF:より低いエントリーコスト |
| 再配布 | +1,999ドル ロイヤリティフリー | デプロイ回数無制限 | GemBox:より良いデプロイメント用語 | |
| スイートオプション | Iron Suite: $1,498 (9 products) | GemBox バンドル: $2,200 (7 製品) | IronPDF:より良いスイートバリュー | |
| サポート | サポートが含まれています | はい、24時間365日のエンジニアリングサポート | はい、1年間のプロフェッショナルサポート | 両方:良好なサポート |
| 納期 | 通常24~48時間 | 1営業日以内 | 両方:迅速な対応 | |
| 最適な対象 | 使用例 | HTMLからPDF、ウェブアプリ、レポート | PDF操作、フォーム、OCR | 文脈依存 |
--BRACKET-i-OPEN--@GemBox.Pdfは、HTMLからPDFへの変換のために別のGemBox.Documentライブラリ(追加料金890ドル)が必要です。
IronPDFライブラリとは何ですか?
IronPDFは、HTMLからPDFへの変換を開発者が簡単に行えるように設計された包括的な.NET PDFライブラリです。 Chromeレンダリングエンジンをコアに持ち、IronPDFはC#、F#、VB.NETアプリケーションにおけるPDF生成のアプローチを変革します。
ライブラリの哲学は、既存のウェブ開発スキルを活用することに重点を置いています。 複雑なPDF APIを学ぶ代わりに、開発者は馴染みのあるHTML、CSS、JavaScriptを使って洗練されたPDF文書を作成できます。 このアプローチは、現代のウェブ標準に準拠したピクセルパーフェクトなレンダリングを実現しながら、開発時間を大幅に短縮します。
IronPDFのコア機能
IronPDFは、開発者が遭遇する可能性のあるあらゆるPDF関連タスクを網羅する広範な機能セットを提供します。
IronPDFの際立った機能は、HTMLコンテンツをPDFに変換する際の卓越した精度です。
- Chrome V8 エンジン: Google Chrome と同じエンジンを使用して HTML をレンダリングし、98% 以上のブラウザ忠実度を保証します。 -完全なCSS3/HTML5サポート:フレックスボックス、グリッド、アニメーションなどの最新のWeb標準を完全にサポート
- JavaScript実行:レンダリング前にJavaScriptを処理し、動的コンテンツを完全にキャプチャします -レスポンシブデザイン:カスタマイズ可能なビューポート設定でレスポンシブレイアウトを処理
- Webフォントのサポート: Google Fonts、カスタムフォント、アイコンフォントを正確にレンダリングします
高度なPDF操作
- PDFの結合と分割:シンプルなメソッド呼び出しで複数のPDFを結合したり、特定のページを抽出したりできます -デジタル署名:証明書サポートによる暗号署名の適用 -フォーム管理: HTMLから入力可能なフォームを作成したり、既存のPDFフォームを操作したりします -透かしとスタンプ:透明度コントロールを使用してテキストまたは画像の透かしを追加します -ヘッダーとフッター:ページ番号付きの動的なヘッダー/フッター
セキュリティとコンプライアンス
-暗号化:カスタム権限設定によるAES-256暗号化
IronPDFのコード例:高度な機能を持つHTMLからPDF
using IronPdf;
using IronPdf.Rendering;
// Configure the Chrome renderer with advanced options
var renderer = new ChromePdfRenderer
{
RenderingOptions = new ChromePdfRenderOptions
{
// Set paper orientation and size
PaperOrientation = PdfPaperOrientation.Portrait,
PaperSize = PdfPaperSize.A4,
// Configure margins (in millimeters)
MarginTop = 25,
MarginBottom = 25,
MarginLeft = 20,
MarginRight = 20,
// Enable JavaScript execution
EnableJavaScript = true,
RenderDelay = 1000, // Wait 1 second for JS to complete
// Print background colors and images
PrintHtmlBackgrounds = true,
// Create PDF forms from HTML form elements
CreatePdfFormsFromHtml = true,
// Custom header and footer
HtmlHeader = new HtmlHeaderFooter
{
Height = 20,
HtmlFragment = "<div style='text-align: center; font-size: 12px;'>Company Report - {page} of {total-pages}</div>",
DrawDividerLine = true
},
HtmlFooter = new HtmlHeaderFooter
{
Height = 15,
HtmlFragment = "<div style='text-align: center; font-size: 10px;'>© 2025 Company Name. Confidential.</div>"
}
}
};
// Convert complex HTML with CSS and JavaScript
string htmlContent = @"
<!DOCTYPE html>
<html>
<head>
<style>
body { font-family: 'Segoe UI', Arial, sans-serif; line-height: 1.6; }
.invoice-header {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: white;
padding: 30px;
border-radius: 10px;
margin-bottom: 30px;
}
.data-table {
width: 100%;
border-collapse: collapse;
margin-top: 20px;
}
.data-table th {
background-color: #f8f9fa;
padding: 12px;
text-align: left;
border-bottom: 2px solid #dee2e6;
}
.data-table td {
padding: 10px;
border-bottom: 1px solid #dee2e6;
}
.total-section {
margin-top: 30px;
text-align: right;
font-size: 18px;
font-weight: bold;
}
@media print {
.no-print { display: none; }
}
</style>
</head>
<body>
<div class='invoice-header'>
<h1>Invoice #INV-2025-001</h1>
<p>Date: <span id='current-date'></span></p>
</div>
<table class='data-table'>
<thead>
<tr>
<th>Item Description</th>
<th>Quantity</th>
<th>Unit Price</th>
<th>Total</th>
</tr>
</thead>
<tbody>
<tr>
<td>Professional PDF Library License</td>
<td>1</td>
<td>$799.00</td>
<td>$799.00</td>
</tr>
<tr>
<td>Priority Support (1 Year)</td>
<td>1</td>
<td>$299.00</td>
<td>$299.00</td>
</tr>
</tbody>
</table>
<div class='total-section'>
<p>Subtotal: $1,048.00</p>
<p>Tax (8%): $83.84</p>
<p style='color: #667eea; font-size: 24px;'>Total: $1,131.84</p>
</div>
<script>
// Dynamic date insertion
document.getElementById('current-date').textContent = new Date().toLocaleDateString('en-US', {
year: 'numeric',
month: 'long',
day: 'numeric'
});
</script>
</body>
</html>";
// Render the HTML to PDF
PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent);
// Apply additional security settings
pdf.SecuritySettings.OwnerPassword = "admin123";
pdf.SecuritySettings.UserPassword = "user123";
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.NoPrint;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserAnnotations = false;
pdf.SecuritySettings.AllowUserFormData = true;
// Add metadata
pdf.MetaData.Author = "Invoice System";
pdf.MetaData.Title = "Invoice INV-2025-001";
pdf.MetaData.Subject = "Customer Invoice";
pdf.MetaData.Keywords = "invoice, payment, 2025";
pdf.MetaData.CreationDate = DateTime.Now;
// Save the PDF
pdf.SaveAs("invoice-2025-001.pdf");
// Optional: Save as PDF/A for archival
pdf.SaveAsPdfA("invoice-2025-001-archive.pdf", PdfAVersions.PdfA3);using IronPdf;
using IronPdf.Rendering;
// Configure the Chrome renderer with advanced options
var renderer = new ChromePdfRenderer
{
RenderingOptions = new ChromePdfRenderOptions
{
// Set paper orientation and size
PaperOrientation = PdfPaperOrientation.Portrait,
PaperSize = PdfPaperSize.A4,
// Configure margins (in millimeters)
MarginTop = 25,
MarginBottom = 25,
MarginLeft = 20,
MarginRight = 20,
// Enable JavaScript execution
EnableJavaScript = true,
RenderDelay = 1000, // Wait 1 second for JS to complete
// Print background colors and images
PrintHtmlBackgrounds = true,
// Create PDF forms from HTML form elements
CreatePdfFormsFromHtml = true,
// Custom header and footer
HtmlHeader = new HtmlHeaderFooter
{
Height = 20,
HtmlFragment = "<div style='text-align: center; font-size: 12px;'>Company Report - {page} of {total-pages}</div>",
DrawDividerLine = true
},
HtmlFooter = new HtmlHeaderFooter
{
Height = 15,
HtmlFragment = "<div style='text-align: center; font-size: 10px;'>© 2025 Company Name. Confidential.</div>"
}
}
};
// Convert complex HTML with CSS and JavaScript
string htmlContent = @"
<!DOCTYPE html>
<html>
<head>
<style>
body { font-family: 'Segoe UI', Arial, sans-serif; line-height: 1.6; }
.invoice-header {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: white;
padding: 30px;
border-radius: 10px;
margin-bottom: 30px;
}
.data-table {
width: 100%;
border-collapse: collapse;
margin-top: 20px;
}
.data-table th {
background-color: #f8f9fa;
padding: 12px;
text-align: left;
border-bottom: 2px solid #dee2e6;
}
.data-table td {
padding: 10px;
border-bottom: 1px solid #dee2e6;
}
.total-section {
margin-top: 30px;
text-align: right;
font-size: 18px;
font-weight: bold;
}
@media print {
.no-print { display: none; }
}
</style>
</head>
<body>
<div class='invoice-header'>
<h1>Invoice #INV-2025-001</h1>
<p>Date: <span id='current-date'></span></p>
</div>
<table class='data-table'>
<thead>
<tr>
<th>Item Description</th>
<th>Quantity</th>
<th>Unit Price</th>
<th>Total</th>
</tr>
</thead>
<tbody>
<tr>
<td>Professional PDF Library License</td>
<td>1</td>
<td>$799.00</td>
<td>$799.00</td>
</tr>
<tr>
<td>Priority Support (1 Year)</td>
<td>1</td>
<td>$299.00</td>
<td>$299.00</td>
</tr>
</tbody>
</table>
<div class='total-section'>
<p>Subtotal: $1,048.00</p>
<p>Tax (8%): $83.84</p>
<p style='color: #667eea; font-size: 24px;'>Total: $1,131.84</p>
</div>
<script>
// Dynamic date insertion
document.getElementById('current-date').textContent = new Date().toLocaleDateString('en-US', {
year: 'numeric',
month: 'long',
day: 'numeric'
});
</script>
</body>
</html>";
// Render the HTML to PDF
PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent);
// Apply additional security settings
pdf.SecuritySettings.OwnerPassword = "admin123";
pdf.SecuritySettings.UserPassword = "user123";
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.NoPrint;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserAnnotations = false;
pdf.SecuritySettings.AllowUserFormData = true;
// Add metadata
pdf.MetaData.Author = "Invoice System";
pdf.MetaData.Title = "Invoice INV-2025-001";
pdf.MetaData.Subject = "Customer Invoice";
pdf.MetaData.Keywords = "invoice, payment, 2025";
pdf.MetaData.CreationDate = DateTime.Now;
// Save the PDF
pdf.SaveAs("invoice-2025-001.pdf");
// Optional: Save as PDF/A for archival
pdf.SaveAsPdfA("invoice-2025-001-archive.pdf", PdfAVersions.PdfA3);この例は、グラデーション、テーブル、動的なJavaScriptコンテンツ、およびセキュリティ設定やメタデータなどの高度なPDF機能を備えた複雑なHTMLレイアウトをIronPDFがどのように処理できるかを示しています。 ライブラリは、HTMLデザインに正確に一致するプロフェッショナルなPDFをシームレスに生成します。
GemBox.Pdfライブラリとは何ですか?
GemBox.Pdfは、.NETにおけるPDF操作に対する異なるアプローチを表しています。 HTML to PDF変換に焦点を当てるのではなく、GemBox.Pdfは低レベルのPDF操作および直接的なPDF操作を専門としています。 これにより、開発者がPDFの構造やコンテンツに正確な制御を必要とするシナリオで特に適しています。
このライブラリは、既存のPDF文書を扱うのに優れており、PDFファイルを詳細に読み取り、編集し、操作するための堅牢な機能を提供します。 GemBox.PdfはAdobe Acrobatに依存しないため、さまざまな環境でのデプロイメントが簡単です。
GemBox.Pdfのコア機能
GemBox.Pdfは包括的なPDF操作機能を提供します。
PDF文書操作
- PDFの読み書き: PDFの構造とコンテンツに直接アクセス -結合と分割:複数のPDFを結合したり、特定のページを抽出したりできます -ページの複製:異なるPDF文書間でページをインポートします -ページ管理:プログラムでページを追加、削除、または並べ替える
コンテンツ抽出と操作
-テキスト抽出:位置情報を含むUnicodeテキストを抽出します -画像抽出: PDF文書から埋め込まれた画像を取得します
- OCRサポート:スキャンした文書の光学文字認識機能を内蔵 -コンテンツの削除:機密情報を永久に削除
フォームとインタラクティビティ
-インタラクティブフォーム: PDFフォームの作成、入力、フラット化、エクスポート -フォームフィールド管理:すべてのフォームフィールドタイプへのプログラムによるアクセス -注釈:ハイパーリンクやその他のPDF注釈を追加します
グラフィックとビジュアル要素
-描画操作:テキスト、画像、ベクターグラフィックを追加します -シェイプとパス:複雑なベクター描画を作成する -透かし:テキストや画像の透かしを適用します -コンテンツグループ:コンテンツを論理的なグループに整理します
GemBox.Pdfのコード例:PDF操作とフォーム
using GemBox.Pdf;
using GemBox.Pdf.Content;
using GemBox.Pdf.Forms;
using GemBox.Pdf.Security;
// Set license (use FREE-LIMITED-KEY for evaluation)
ComponentInfo.SetLicense("FREE-LIMITED-KEY");
// Create a new PDF document from scratch
using (var document = new PdfDocument())
{
// Add a page with custom size
var page = document.Pages.Add();
// Create formatted text with multiple styles
using (var formattedText = new PdfFormattedText())
{
formattedText.FontSize = 24;
formattedText.FontFamily = new PdfFontFamily("Arial");
formattedText.Color = PdfColor.FromRgb(0.2, 0.2, 0.6);
formattedText.AppendLine("GemBox.Pdf Document Example");
formattedText.FontSize = 12;
formattedText.Color = PdfColor.FromRgb(0, 0, 0);
formattedText.AppendLine("This document demonstrates PDF creation and manipulation features.");
// Draw text to the page
page.Content.DrawText(formattedText, new PdfPoint(50, 700));
}
// Add a form to the document
var form = document.Form;
// Create text field
var textField = form.Fields.AddText(page, 50, 600, 200, 30);
textField.Name = "CustomerName";
textField.Value = "Enter your name";
textField.Format.Fill.Color = PdfColor.FromRgb(0.95, 0.95, 0.95);
// Create checkbox
var checkBox = form.Fields.AddCheck(page, 50, 550, 20, 20);
checkBox.Name = "Agreement";
checkBox.Checked = false;
// Add descriptive text next to checkbox
using (var checkboxLabel = new PdfFormattedText())
{
checkboxLabel.Append("I agree to the terms and conditions");
page.Content.DrawText(checkboxLabel, new PdfPoint(80, 555));
}
// Create submit button
var submitButton = form.Fields.AddButton(page, 50, 500, 100, 30);
submitButton.Name = "Submit";
submitButton.Actions.Activate = PdfActionType.Named;
// Add button appearance
using (var buttonText = new PdfFormattedText())
{
buttonText.Append("Submit Form");
buttonText.FontSize = 14;
buttonText.Color = PdfColor.FromRgb(1, 1, 1);
// Create button appearance stream
var appearance = submitButton.Appearance.Normal;
appearance.Fill.Color = PdfColor.FromRgb(0.2, 0.4, 0.8);
appearance.Stroke.Color = PdfColor.FromRgb(0.1, 0.2, 0.4);
appearance.Stroke.Width = 1;
// Draw button background
appearance.DrawRectangle(new PdfPoint(0, 0), new PdfSize(100, 30), true, true);
// Draw button text
appearance.DrawText(buttonText, new PdfPoint(20, 10));
}
// Add a table using low-level graphics
var tableTop = 400;
var tableLeft = 50;
var cellWidth = 150;
var cellHeight = 30;
// Draw table headers
page.Content.DrawRectangle(new PdfPoint(tableLeft, tableTop),
new PdfSize(cellWidth * 3, cellHeight), true, true);
using (var headerText = new PdfFormattedText())
{
headerText.FontSize = 12;
headerText.Color = PdfColor.FromRgb(1, 1, 1);
headerText.Append("Product");
page.Content.DrawText(headerText, new PdfPoint(tableLeft + 10, tableTop + 10));
headerText.Clear();
headerText.Append("Quantity");
page.Content.DrawText(headerText, new PdfPoint(tableLeft + cellWidth + 10, tableTop + 10));
headerText.Clear();
headerText.Append("Price");
page.Content.DrawText(headerText, new PdfPoint(tableLeft + cellWidth * 2 + 10, tableTop + 10));
}
// Draw table data rows
var rowData = new[]
{
new { Product = "PDF Library", Quantity = "1", Price = "$890" },
new { Product = "Support Plan", Quantity = "1", Price = "$299" },
new { Product = "Training", Quantity = "2", Price = "$500" }
};
var currentY = tableTop - cellHeight;
foreach (var row in rowData)
{
// Draw cell borders
page.Content.DrawRectangle(new PdfPoint(tableLeft, currentY),
new PdfSize(cellWidth, cellHeight), false, true);
page.Content.DrawRectangle(new PdfPoint(tableLeft + cellWidth, currentY),
new PdfSize(cellWidth, cellHeight), false, true);
page.Content.DrawRectangle(new PdfPoint(tableLeft + cellWidth * 2, currentY),
new PdfSize(cellWidth, cellHeight), false, true);
// Draw cell content
using (var cellText = new PdfFormattedText())
{
cellText.FontSize = 11;
cellText.Append(row.Product);
page.Content.DrawText(cellText, new PdfPoint(tableLeft + 10, currentY + 10));
cellText.Clear();
cellText.Append(row.Quantity);
page.Content.DrawText(cellText, new PdfPoint(tableLeft + cellWidth + 10, currentY + 10));
cellText.Clear();
cellText.Append(row.Price);
page.Content.DrawText(cellText, new PdfPoint(tableLeft + cellWidth * 2 + 10, currentY + 10));
}
currentY -= cellHeight;
}
// Apply security settings
var securitySettings = document.SecuritySettings;
securitySettings.DocumentOpenPassword = "user123";
securitySettings.PermissionsPassword = "owner123";
securitySettings.Permissions = PdfPermissions.AllowPrint | PdfPermissions.AllowFormFill;
// Save the document
document.Save("gembox-example.pdf");
}
// Example: Manipulating existing PDF
using (var existingDoc = PdfDocument.Load("existing-document.pdf"))
{
// Extract text from first page
var page = existingDoc.Pages[0];
var text = page.Content.GetText();
Console.WriteLine($"Extracted text: {text}");
// Add watermark to all pages
foreach (var p in existingDoc.Pages)
{
using (var watermark = new PdfFormattedText())
{
watermark.Append("CONFIDENTIAL");
watermark.FontSize = 50;
watermark.Color = PdfColor.FromRgb(0.5, 0.5, 0.5);
watermark.Opacity = 0.3;
// Calculate center position
var pageWidth = p.MediaBox.Width;
var pageHeight = p.MediaBox.Height;
var textWidth = watermark.Width;
var textHeight = watermark.Height;
var x = (pageWidth - textWidth) / 2;
var y = (pageHeight - textHeight) / 2;
// Draw watermark diagonally
p.Content.SaveGraphicsState();
p.Content.SetTransform(1, 0, 0, 1, x, y);
p.Content.SetTransform(0.7071, 0.7071, -0.7071, 0.7071, 0, 0);
p.Content.DrawText(watermark, new PdfPoint(0, 0));
p.Content.RestoreGraphicsState();
}
}
existingDoc.Save("watermarked-document.pdf");
}using GemBox.Pdf;
using GemBox.Pdf.Content;
using GemBox.Pdf.Forms;
using GemBox.Pdf.Security;
// Set license (use FREE-LIMITED-KEY for evaluation)
ComponentInfo.SetLicense("FREE-LIMITED-KEY");
// Create a new PDF document from scratch
using (var document = new PdfDocument())
{
// Add a page with custom size
var page = document.Pages.Add();
// Create formatted text with multiple styles
using (var formattedText = new PdfFormattedText())
{
formattedText.FontSize = 24;
formattedText.FontFamily = new PdfFontFamily("Arial");
formattedText.Color = PdfColor.FromRgb(0.2, 0.2, 0.6);
formattedText.AppendLine("GemBox.Pdf Document Example");
formattedText.FontSize = 12;
formattedText.Color = PdfColor.FromRgb(0, 0, 0);
formattedText.AppendLine("This document demonstrates PDF creation and manipulation features.");
// Draw text to the page
page.Content.DrawText(formattedText, new PdfPoint(50, 700));
}
// Add a form to the document
var form = document.Form;
// Create text field
var textField = form.Fields.AddText(page, 50, 600, 200, 30);
textField.Name = "CustomerName";
textField.Value = "Enter your name";
textField.Format.Fill.Color = PdfColor.FromRgb(0.95, 0.95, 0.95);
// Create checkbox
var checkBox = form.Fields.AddCheck(page, 50, 550, 20, 20);
checkBox.Name = "Agreement";
checkBox.Checked = false;
// Add descriptive text next to checkbox
using (var checkboxLabel = new PdfFormattedText())
{
checkboxLabel.Append("I agree to the terms and conditions");
page.Content.DrawText(checkboxLabel, new PdfPoint(80, 555));
}
// Create submit button
var submitButton = form.Fields.AddButton(page, 50, 500, 100, 30);
submitButton.Name = "Submit";
submitButton.Actions.Activate = PdfActionType.Named;
// Add button appearance
using (var buttonText = new PdfFormattedText())
{
buttonText.Append("Submit Form");
buttonText.FontSize = 14;
buttonText.Color = PdfColor.FromRgb(1, 1, 1);
// Create button appearance stream
var appearance = submitButton.Appearance.Normal;
appearance.Fill.Color = PdfColor.FromRgb(0.2, 0.4, 0.8);
appearance.Stroke.Color = PdfColor.FromRgb(0.1, 0.2, 0.4);
appearance.Stroke.Width = 1;
// Draw button background
appearance.DrawRectangle(new PdfPoint(0, 0), new PdfSize(100, 30), true, true);
// Draw button text
appearance.DrawText(buttonText, new PdfPoint(20, 10));
}
// Add a table using low-level graphics
var tableTop = 400;
var tableLeft = 50;
var cellWidth = 150;
var cellHeight = 30;
// Draw table headers
page.Content.DrawRectangle(new PdfPoint(tableLeft, tableTop),
new PdfSize(cellWidth * 3, cellHeight), true, true);
using (var headerText = new PdfFormattedText())
{
headerText.FontSize = 12;
headerText.Color = PdfColor.FromRgb(1, 1, 1);
headerText.Append("Product");
page.Content.DrawText(headerText, new PdfPoint(tableLeft + 10, tableTop + 10));
headerText.Clear();
headerText.Append("Quantity");
page.Content.DrawText(headerText, new PdfPoint(tableLeft + cellWidth + 10, tableTop + 10));
headerText.Clear();
headerText.Append("Price");
page.Content.DrawText(headerText, new PdfPoint(tableLeft + cellWidth * 2 + 10, tableTop + 10));
}
// Draw table data rows
var rowData = new[]
{
new { Product = "PDF Library", Quantity = "1", Price = "$890" },
new { Product = "Support Plan", Quantity = "1", Price = "$299" },
new { Product = "Training", Quantity = "2", Price = "$500" }
};
var currentY = tableTop - cellHeight;
foreach (var row in rowData)
{
// Draw cell borders
page.Content.DrawRectangle(new PdfPoint(tableLeft, currentY),
new PdfSize(cellWidth, cellHeight), false, true);
page.Content.DrawRectangle(new PdfPoint(tableLeft + cellWidth, currentY),
new PdfSize(cellWidth, cellHeight), false, true);
page.Content.DrawRectangle(new PdfPoint(tableLeft + cellWidth * 2, currentY),
new PdfSize(cellWidth, cellHeight), false, true);
// Draw cell content
using (var cellText = new PdfFormattedText())
{
cellText.FontSize = 11;
cellText.Append(row.Product);
page.Content.DrawText(cellText, new PdfPoint(tableLeft + 10, currentY + 10));
cellText.Clear();
cellText.Append(row.Quantity);
page.Content.DrawText(cellText, new PdfPoint(tableLeft + cellWidth + 10, currentY + 10));
cellText.Clear();
cellText.Append(row.Price);
page.Content.DrawText(cellText, new PdfPoint(tableLeft + cellWidth * 2 + 10, currentY + 10));
}
currentY -= cellHeight;
}
// Apply security settings
var securitySettings = document.SecuritySettings;
securitySettings.DocumentOpenPassword = "user123";
securitySettings.PermissionsPassword = "owner123";
securitySettings.Permissions = PdfPermissions.AllowPrint | PdfPermissions.AllowFormFill;
// Save the document
document.Save("gembox-example.pdf");
}
// Example: Manipulating existing PDF
using (var existingDoc = PdfDocument.Load("existing-document.pdf"))
{
// Extract text from first page
var page = existingDoc.Pages[0];
var text = page.Content.GetText();
Console.WriteLine($"Extracted text: {text}");
// Add watermark to all pages
foreach (var p in existingDoc.Pages)
{
using (var watermark = new PdfFormattedText())
{
watermark.Append("CONFIDENTIAL");
watermark.FontSize = 50;
watermark.Color = PdfColor.FromRgb(0.5, 0.5, 0.5);
watermark.Opacity = 0.3;
// Calculate center position
var pageWidth = p.MediaBox.Width;
var pageHeight = p.MediaBox.Height;
var textWidth = watermark.Width;
var textHeight = watermark.Height;
var x = (pageWidth - textWidth) / 2;
var y = (pageHeight - textHeight) / 2;
// Draw watermark diagonally
p.Content.SaveGraphicsState();
p.Content.SetTransform(1, 0, 0, 1, x, y);
p.Content.SetTransform(0.7071, 0.7071, -0.7071, 0.7071, 0, 0);
p.Content.DrawText(watermark, new PdfPoint(0, 0));
p.Content.RestoreGraphicsState();
}
}
existingDoc.Save("watermarked-document.pdf");
}この例は、GemBox.Pdfの低レベルPDF操作の強みを強調しており、フォーム作成、グラフィックス描画、および文書のセキュリティ機能を示しています。 コードはIronPDFのHTMLアプローチよりも冗長ですが、PDFのあらゆる側面を精密に制御できます。
これらのライブラリのHTMLからPDFへの変換の対応方法
HTMLからPDFへの変換のアプローチは、IronPDFとGemBox.Pdfの間の最も重要な違いの一つです。
IronPDFのHTML to PDFアプローチ
IronPDFはHTMLからPDFへの変換を主な焦点としてゼロから開発されました。 ライブラリには、HTML、CSS、およびJavaScriptをウェブブラウザと同様に処理するフルChromeレンダリングエンジンが含まれています。 これにより、以下が実現されます。
-真のブラウザレンダリング: Google Chromeと同じBlinkエンジンを使用 -完全なWeb標準: CSS3、HTML5、フレックスボックス、グリッド、最新のJavaScriptを完全にサポート -動的コンテンツ:レンダリング前にJavaScriptを実行し、AJAXコンテンツと動的要素をキャプチャします。 -レスポンシブデザイン:メディアクエリとレスポンシブレイアウトを処理 -外部リソース: URLから画像、スタイルシート、フォントを自動的に取得します
GemBoxの限定的なHTMLサポート
GemBox.Pdf自体はHTMLからPDFへの変換をサポートしていません。 GemBoxでHTMLをPDFに変換するには、開発者は以下を行う必要があります。
- 別途GemBox.Documentを購入する(追加$890)
- GemBox.Documentを使用してHTMLをDOCXに変換する
- 次にDOCXをPDFに変換する
このアプローチには重大な制約があります。
- JavaScript がサポートされていないため、動的なコンテンツを処理できません
- CSSサポートの制限:多くの最新のCSS機能はサポートされていません -スタイルの問題: Stack Overflow のディスカッションで指摘されているように、境界線や複雑なレイアウトに関する既知の問題 -印刷最適化のみ:印刷用に特別にフォーマットされたHTMLが必要です -追加費用: 2つの別々のライブラリを購入する必要があります
モダンCSSフレームワークサポート:重要な違い
Bootstrap、Tailwind CSS、FoundationなどのモダンなCSSフレームワークとの作業時に、IronPDFのChromeベースのレンダリングが最も際立つ利点の一つになります。 これらのフレームワークは現代のウェブアプリケーションの基盤となっており、PDFでの正確なレンダリングが多くのユースケースで必要不可欠です。
IronPDF: モダンなフレームワークの完全サポート
IronPDFのChromeレンダリングエンジンは、すべてのモダンなCSSフレームワークを完全にネイティブでサポートしています。
- Bootstrap 5:レスポンシブレイアウトのための完全なフレックスボックスとCSSグリッドのサポート
- Tailwind CSS:完全なユーティリティファーストの CSS フレームワークのサポート -実例: BootstrapホームページとBootstrapテンプレートをピクセルパーフェクトにレンダリングします -最新のCSS3機能:アニメーション、変形、トランジション、カスタムプロパティ -レスポンシブデザイン:メディアクエリとビューポートベースのレイアウトがシームレスに機能します
コード例: Bootstrap形式からPDFへ
using IronPdf;
var renderer = new ChromePdfRenderer();
string bootstrapForm = @"
<!DOCTYPE html>
<html>
<head>
<link href='https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css' rel='stylesheet'>
</head>
<body>
<div class='container mt-5'>
<h1 class='mb-4'>Customer Registration</h1>
<form class='needs-validation'>
<div class='row g-3'>
<div class='col-md-6'>
<label class='form-label'>First Name</label>
<input type='text' class='form-control' value='John'>
</div>
<div class='col-md-6'>
<label class='form-label'>Last Name</label>
<input type='text' class='form-control' value='Smith'>
</div>
</div>
<div class='mt-4'>
<button class='btn btn-primary' type='submit'>Submit</button>
</div>
</form>
</div>
</body>
</html>";
var pdf = renderer.RenderHtmlAsPdf(bootstrapForm);
pdf.SaveAs("bootstrap-form.pdf");using IronPdf;
var renderer = new ChromePdfRenderer();
string bootstrapForm = @"
<!DOCTYPE html>
<html>
<head>
<link href='https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css' rel='stylesheet'>
</head>
<body>
<div class='container mt-5'>
<h1 class='mb-4'>Customer Registration</h1>
<form class='needs-validation'>
<div class='row g-3'>
<div class='col-md-6'>
<label class='form-label'>First Name</label>
<input type='text' class='form-control' value='John'>
</div>
<div class='col-md-6'>
<label class='form-label'>Last Name</label>
<input type='text' class='form-control' value='Smith'>
</div>
</div>
<div class='mt-4'>
<button class='btn btn-primary' type='submit'>Submit</button>
</div>
</form>
</div>
</body>
</html>";
var pdf = renderer.RenderHtmlAsPdf(bootstrapForm);
pdf.SaveAs("bootstrap-form.pdf");GemBox: モダンなフレームワークのサポートなし
GemBox.PdfはネイティブHTMLレンダリングを欠き、HTML変換にGemBox.Documentに依存しなければならないため、モダンなCSSフレームワークには厳しい制約があります。
- Bootstrap のサポートなし: Flexbox と CSS グリッド機能が正しくレンダリングされません
- Tailwind CSS なし:ユーティリティ クラスとモダン レイアウトはサポートされていません -手動の回避策が必要:印刷に最適化されたHTMLバージョンを作成する必要があります -制限されたCSS3:多くの最新のCSS機能は動作しません -さらなる複雑さ: 2段階の変換プロセス (HTML → DOCX → PDF) により不整合が生じる
開発者間の議論によると、境界やレイアウトなどの基本的なCSS機能でも、GemBoxのHTML変換アプローチでは問題になる可能性があります。
実際の影響:アプリケーションの UI に Bootstrap を使用しており、Web インターフェイスに一致する PDF レポートまたはエクスポートを生成する必要がある場合、IronPDF は簡単なソリューションを提供しますが、GemBox では大幅な再設計または手動による回避策が必要になります。
CSSフレームワークの互換性の詳細については、Bootstrap & Flexbox CSSガイドを参照してください。
どちらのライブラリが異なるPDFタスクで優れているか?
各ライブラリがどの点で優れているかを把握することは、特定のニーズに最適なツールを選ぶのに役立ちます。
IronPDFが優れている点
IronPDFは、以下のシナリオで優れたパフォーマンスを示します。
1. ウェブアプリケーションのPDF生成
SaaSアプリケーション、ウェブポータル、およびウェブコンテンツをPDFに変換する必要があるシステムに最適です。 Chromeレンダリングエンジンにより、Bootstrap、Tailwind CSS、カスタムフレームワークを使用する複雑なウェブレイアウトが完璧にレンダリングされます。
2. 動的レポート生成
レポートにチャート(Chart.js, D3.js)、動的データビジュアライゼーション、またはJavaScriptでレンダリングされたコンテンツが含まれる場合、IronPDFはすべてを正確にキャプチャします。 これにより、ビジネスインテリジェンスダッシュボードやデータ駆動アプリケーションに最適です。
3. 請求書と文書テンプレート
請求書、領収書、ビジネス文書のためのHTML/CSSテンプレートの使用により、デザイナーはPDF固有のAPIを学ばずにテンプレートを作成できます。変更は馴染みのあるウェブ技術を使用して迅速に行うことができます。
4. 迅速な開発プロジェクト
単純なAPIとHTMLベースのアプローチにより、開発時間が大幅に短縮されます。開発者は、複雑なPDFを数分で作成できます。
5. クロスプラットフォームデプロイメント
Windows、Linux、macOS、Docker, およびクラウドプラットフォームへのネイティブサポートにより、IronPDFは多様な環境でのデプロイメントを簡素化します。
GemBox.Pdfが優れている点
GemBox.Pdfは、以下の領域でその強みを示します。
1. 低レベルのPDF操作
PDF構造を精密に制御する必要がある場合、GemBox.Pdfのオブジェクト指向アプローチは、PDF要素、ストリーム、ディクショナリへの直接アクセスを提供します。
2. フォームが多いアプリケーション
PDFフォームを多用するアプリケーションにおいて、GemBox.Pdfは複雑なインタラクティブフォームをプログラムで操作するための包括的なフォームフィールド操作を提供します。
3. OCRの要件
内蔵OCR機能により、GemBox.Pdfは追加のライブラリなしでスキャンされた文書のテキストを抽出することができ、文書のデジタル化プロジェクトに適しています。
4. モバイル開発
AndroidおよびiOSプラットフォームのネイティブサポートにより、PDF機能が必要なモバイルアプリケーションに適しています。
5. 既存のPDFの修正
新しいPDFを生成するのではなく、主に既存のPDFで作業する場合、GemBox.Pdfは抽出、操作、および修正に適したツールを提供します。
インストールとセットアップの比較
両方のライブラリはNuGetを通じた簡単なインストールを提供していますが、複雑さのレベルが異なります。
IronPDFのインストール
IronPDFのインストールは非常に簡単です:
Install-Package IronPdf
または.NET CLI経由で:
dotnet add package IronPdf
パッケージには、必要なすべてのものが含まれており、Chromeレンダリングエンジンも含まれています。ほとんどのユースケースにおいて追加の構成や依存関係は必要ありません。
特定のデプロイメントシナリオ用に、IronPDFは以下を提供しています:
IronPdf.Slim:実行時にプラットフォーム固有のコンポーネントをダウンロードする軽量パッケージIronPdf.Linux: Linux展開用に事前構成済みIronPdf.MacOs: macOS環境に最適化
GemBox.Pdfのインストール
GemBox.Pdfのインストールは基本的なPDF操作に対しても簡単です。
Install-Package GemBox.Pdf
しかし、HTMLからPDFへの変換には以下が必要です。
Install-Package GemBox.Document
両方のライブラリはライセンスキーの設定が必要です。
// IronPDF
License.LicenseKey = "YOUR-LICENSE-KEY";
// GemBox.Pdf
ComponentInfo.SetLicense("YOUR-LICENSE-KEY");// IronPDF
License.LicenseKey = "YOUR-LICENSE-KEY";
// GemBox.Pdf
ComponentInfo.SetLicense("YOUR-LICENSE-KEY");ライセンスと価格の違いは何ですか?
ライセンスモデルを理解することで、各ソリューションの総所有コストを判断するのに役立ちます。
IronPDFライセンス
IronPDFは、透明性のあるティアライセンス(2025年の価格):
-ライトライセンス: $799
- 1年間の更新とサポート
- 1プロジェクト
- 1年のサポートとアップデート
-プラスライセンス: $1,199
- 3か所
- 3プロジェクト
- 1年のサポートとアップデート
-プロフェッショナルライセンス: $2,399
- 配布権なし
- 10プロジェクト
- 1年のサポートとアップデート
追加オプション:
- ロイヤリティフリーの再配布:+$2,399
- SaaS/OEMライセンスが利用可能
- Iron Suiteバンドル: $1,498で9製品
主な利点:
- 24/5サポートと24時間SLA
- 永久ライセンス(一括購入)
- 開発とテストは無料
- 開発/ステージング/本番環境へのデプロイメントが含まれる
GemBox.Pdfのライセンス
GemBoxは開発者単位のライセンスを提供しています。
-単独開発者: 890 ドル
- 1年間の更新とサポート
- 無制限のプロジェクト
- 1年のサポートとアップデート
- ロイヤリティフリーのデプロイメントが含まれる
重要な考慮事項:
- HTMLからPDFへの変換にはGemBox.Documentが必要: 追加$890
- HTMLからPDFへの合計コスト: 最低$1,780
- 更新時に40%割引(期限前に更新すれば60%)
- GemBoxバンドル: 7製品で$2,200
主な利点:
- 24/5サポートと24時間SLA
- 永久ライセンス
- 無制限のデプロイメントが含まれる
- サーバーまたはOEMライセンスは不要
一般的なシナリオのコスト比較
| シナリオ | IronPDFのコスト | GemBoxのコスト |
|---|---|---|
| 単一開発者、HTMLからPDF | $799 | $1,780 |
| 3人の開発者、PDF操作のみ | $1,499 | $2,670 |
| 3人の開発者、HTMLからPDF | $1,199 | $5,340 |
| 企業(10人の開発者)、完全な機能 | $2,399 | $8,900+ |
どちらのライブラリを選ぶべきか?
IronPDFとGemBox.Pdfの選択は、具体的な要件によって異なります。
IronPDFを選ぶとき:
- HTMLからPDFへの変換は必須です。IronPDFのChromeベースのレンダリングは他に類を見ないものです。 -最新のWebサポートが必要です: CSS3、HTML5、JavaScriptの完全な機能 -迅速な開発が重要:シンプルなAPIにより市場投入までの時間が短縮されます -動的コンテンツを操作します: JavaScript 実行によりリアルタイムのデータが取得されます -クロスプラットフォーム展開が必要:クラウドとコンテナ環境に対する優れたサポート -予算を考慮する: HTML から PDF へのシナリオでは、初期コストが低く、価値が高くなります。
GemBox.Pdfを選択する場合:
-低レベルのPDF制御が不可欠: PDFオブジェクトと構造への直接アクセス -モバイルプラットフォームのサポートが必要です:ネイティブのAndroidおよびiOSとの互換性
- OCRはコア要件です:追加の依存関係のない組み込みOCR -既存のPDFを主に扱う場合:強力な操作および抽出機能
- HTMLからPDFへの変換は不要です。未使用のGemBox.Documentへの支払いを避けてください。 -無制限の展開が重要:ロイヤリティフリーの再配布が含まれています
両方のライブラリを使用することを検討する場合:
一部の組織は、以下のようにアプリケーションの異なる部分に対して両方のライブラリを使用することに価値を見出します。
- IronPDFはレポート生成とHTMLからPDFへの変換用
- GemBox.Pdfはフォーム処理とPDF操作用
選んだライブラリでの開始方法
両方のライブラリは、機能を評価するための無料試用版を提供しています。
IronPDFを試す
- NuGetパッケージをインストール
- 開発にライセンスキーは不要
- 試用モードではPDFに透かしが表示されます
- 評価期間中はすべての機能にアクセス可能
GemBox.Pdfを試す
- NuGetパッケージをインストール
ComponentInfo.SetLicense("FREE-LIMITED-KEY")を使用- 無料モードでは2ページに制限されています
- 制限を解除するにはアップグレード
視覚的なインストールガイド
Visual Studioのグラフィカルインターフェイスを好む開発者のために、両方のライブラリをインストールするためのステップバイステップガイドです。
新しいASP.NETプロジェクトの作成
ASP.NET Webアプリケーションを作成するためのVisual Studioの新しいプロジェクトダイアログ - PDF生成プロジェクトの基礎
Webフォームをプロジェクトテンプレートとして選択 - IronPDFとGemBox.Pdfの両方の実装に適しています
NuGetを介したPDFライブラリのインストール
プロジェクトを右クリックしてNuGetパッケージマネージャーを通じてライブラリをインストール
Visual Studioのプロジェクトメニューを介してNuGetパッケージマネージャーにアクセスする代替方法
NuGetパッケージマネージャーを通じてIronPDFをインストール - 包括的な機能説明とダウンロード数に注目
代替インストール方法
IronPDFのウェブサイトでは、NuGetインストールが適していないシナリオ向けに直接DLLダウンロードを提供しています
結論
IronPDFとGemBox.Pdfはどちらも.NET開発者向けの質の高いPDFライブラリで、それぞれ独自の強みを持っています。 IronPDFは、Chromeレンダリングエンジンを使用したHTMLからPDFへの変換が得意で、現代のウェブアプリケーションや動的なコンテンツ生成に最適です。 GemBox.Pdfは、低レベルのPDF操作およびモバイルサポートが優れており、正確なPDFコントロールを必要とするアプリケーションに最適です。
現代のアプリケーションを構築するほとんどのウェブ開発者やチームにとって、IronPDFは機能の組み合わせ、使いやすさ、価値の点で最高の選択肢です。 HTMLからピクセルパーフェクトなPDFをレンダリングする能力は、開発時間と複雑さを大幅に削減します。
ただし、GemBox.Pdfは、特にモバイル開発やPDFフォーム処理やOCR要件に焦点を当てたアプリケーションにおいては、堅実な選択肢となります。
HTMLコンテンツをプロフェッショナルなPDFに変換する準備はできましたか? IronPDFの無料トライアルを始めて、.NETアプリケーションでのChrome品質のレンダリングの力を体験してみてください。 包括的なドキュメント、豊富なコード例、および応答性の高いサポートにより、PDFの生成は数分で行われ、時間を必要としません。
GemBox.PdfおよびGemBox.Documentは、各所有者の登録商標です。 このサイトはGemBox.PdfまたはGemBox.Documentと提携しておらず、支援または推薦も受けていません。 すべての製品名、ロゴ、およびブランドは各所有者の所有物です。 比較は情報提供のみを目的としており、執筆時点で公開されている情報を反映しています。
よくある質問
C# で HTML を PDF に変換するにはどうすればいいですか?
IronPDF の RenderHtmlAsPdf メソッドを使用して、HTML 文字列を PDF に変換できます。RenderHtmlFileAsPdf を使用して HTML ファイルを PDF に変換することもできます。
これらのライブラリで既存の PDF ファイルを操作できますか?
はい、IronPDF と GemBox.Pdf の両方が既存の PDF ファイルの操作に使用できます。IronPDF は結合、分割、透かしの追加などの一般的なタスクを簡素化します。GemBox.Pdf は PDF オブジェクトの詳細な制御を提供し、複雑な操作タスクに役立ちます。
HTML から PDF への変換で IronPDF を使用する利点は何ですか?
IronPDF は、その Chrome V8 レンダリングエンジンにより、98% 以上のブラウザ忠実度で優れた HTML から PDF への変換品質を提供します。最新の CSS3、HTML5、JavaScript 実行、ウェブフォント、およびレスポンシブデザインをサポートしています。
小規模な開発チームにとってより費用対効果の高いライブラリはどちらですか?
3 人の開発者チームが HTML から PDF への変換を必要とする場合、IronPDF の Plus ライセンスは $1,499 で、GemBox の場合、3 つの GemBox.Pdf ライセンスと 3 つの GemBox.Document ライセンスで $5,340 かかります。IronPDF はチームにとってかなり良い価値を提供します。
IronPDF は大量の PDF 生成に適していますか?
はい、IronPDF は約 125 ms の HTML から PDF へのレンダリング時間と最適化された非同期/待機サポートにより、優れたパフォーマンスを発揮します。10MB 未満の効率的なメモリ使用量で、大量のウェブベースの PDF 生成に適しています。
IronPDF に含まれるサポートの種類は何ですか?
IronPDF には、開発チームへの直接アクセスと 24 〜 48 時間の典型的な応答時間を含む 24/5 エンジニアリングサポート、包括的なドキュメント、およびコード例が含まれています。
これらのライブラリで PDF/A 準拠のドキュメントを作成できますか?
はい、IronPDF は SaveAsPdfA() のような単純なメソッド呼び出しで PDF/A 準拠のドキュメントを生成でき、複数の PDF/A バージョンをサポートします。GemBox.Pdf は PDF/A ドキュメントを読み取り、変更時に準拠を維持することができます。
これらのライブラリは最新の .NET フレームワークと互換性がありますか?
はい、両方のライブラリは最新の .NET バージョンをサポートしています。IronPDF は .NET Framework 4.6.2+、.NET Core 3.1+、および .NET 5 から 10 をサポートします。GemBox.Pdf は .NET Framework 3.5+、.NET Standard 2.0、.NET 6+ をサポートしています。
クラウド展開に最適化されたライブラリはどちらですか?
IronPDF はクラウド展開に最適化されており、Azure、AWS、Docker コンテナ、およびサーバーレス環境向けの特定サポートがあります。HTML ベースのアプローチがウェブアプリケーションに自然に適合し、SaaS アプリケーションに最適な選択となります。
IronPDF をテストするための無料バージョンはありますか?
IronPDF は、ライセンスキーなしで無制限の開発とテストを可能にする無料の評価オプションを提供しており、出力には透かしが表示されます。購入前に製品を評価するのに十分な機能を提供します。






