C#でGdPicture.NET SDKからIronPDFに移行する方法
GdPicture.NETSDKからIronPDFへの移行:完全なC#移行ガイド
GdPicture.NETSDKからIronPDFへの移行は、.NET開発者にPDF生成への集中した合理的なアプローチを提供します。 このガイドは、複雑なドキュメントイメージングSDKのパターンを、現代の.NET開発用に設計された最新のPDF固有のAPIに置き換える、包括的でステップバイステップの移行パスを提供します。
GdPicture.NETSDKからIronPDFへ移行する理由
GdPicture.NETのSDKの課題
GdPicture.NET SDK(現在はNutrientとしてリブランド)は、包括的なドキュメントイメージングSDKで、PDFに特化した開発にはいくつかの課題があります:
1.PDFのみのプロジェクトのためのオーバーキル:GdPicture.NET SDKは、OCR、BarCode認識、スキャン、画像処理を含む完全なドキュメントイメージングスイートです。 PDFの機能だけが必要な場合、決して使わない機能のためにお金を払うことになります。
2.複雑なライセンス:複数の製品層(GdPicture.NET 14、GdPicture.API、Ultimate、Professional)があり、SKUの組み合わせや年間サブスクリプション要件がわかりにくい。
3.エンタープライズ価格:ライセンス費用は、PDFプラグインのみで2,999ドルから始まり、Ultimateエディションでは10,000ドル以上になります。 開発者ごとのライセンスは、成長するチームにとって大きなオーバーヘッドとなります。
4.急な学習曲線:APIは、最新の.NETパターンではなく、ドキュメントイメージングのコンセプトに基づいて設計されています。 LicenseManager.RegisterKEY()、GdPictureStatus 列挙チェック、1-indexed ページなどのメソッドは、現代の C# 慣例と比べると古く感じます。
5.ステータス コード パターン: すべての操作はGdPictureStatus列挙型を返し、チェックする必要があります。
6.手動リソース管理:明示的なDispose()またはRelease()呼び出しが必要です。 SDKは、標準的な.NETの廃棄パターンにきれいに従っていません。
7.バージョンロックイン:名前空間GdPicture14にはバージョン番号が含まれているため、メジャーバージョンのアップグレードにはコードベース全体の名前空間の変更が必要になります。
8.リブランディングの混乱:最近"Nutrient"にリブランディングされたことで、gdpicture.comとnutrient.ioの間でドキュメントが分断され、サポートや学習が複雑になっています。
GdPicture.NETSDKとIronPDFの比較
| アスペクト | GdPicture.NET SDK | IronPDF |
|---|---|---|
| フォーカス | 文書画像処理スイート(PDFはやりすぎ) | PDF専用ライブラリ |
| 価格 | 2,999~10,000ドル以上のエンタープライズ層 | 競争力があり、ビジネスと連動する |
| APIスタイル | ステータスコード、マニュアル管理 | 例外、IDisposable、モダン.NET |
| 学習曲線 | Steep(画像処理SDKのコンセプト) | シンプルなもの(HTML/CSSに精通していること) |
| HTMLレンダリング | 基本的な内部エンジン | 最新のChromiumとCSS3/JS |
| ページインデックス | 1-indexed | 0-インデックス(標準.NET) |
| スレッドの安全性 | 手動同期が必要 | スレッドセーフ設計 |
| 名前空間 | バージョン固有 (<コード>GdPicture14</コード>) | 安定 (<コード>IronPdf</コード>) |
2025年、2026年まで.NET 10とC# 14の採用を計画しているチームにとって、IronPDFは最新の.NETパターンと規約に沿った将来を見据えた基盤を提供します。
マイグレーションの複雑さの評価
機能別の見積もり作業
| フィーチャー | 移行の複雑さ | ノート |
|---|---|---|
| HTMLからPDFへ | 低レベル | ダイレクトメソッドマッピング |
| URLからPDFへ | 低レベル | ダイレクトメソッドマッピング |
| PDFのマージ | 低レベル | 類似のAPIパターン |
| PDFの分割 | 低レベル | 類似のAPIパターン |
| 透かし | 低レベル | 異なるアプローチ(HTMLベース) |
| テキスト抽出 | 低レベル | プロパティ対メソッド |
| パスワード保護 | 中規模 | 異なるパラメータ構造 |
| フォームフィールド | 中規模 | APIの違い |
| デジタル署名 | 中・高 | さまざまな証明書の取り扱い |
| OCR | 高い | IronOCRは別の製品です。 |
| バーコード認識 | 該当なし | IronPDFではサポートされていません。 |
移行の決定マトリックス
| お客様の状況 | 推奨 |
|---|---|
| PDFのみの操作 | 移行-大幅な簡素化とコスト削減 |
| OCRの多用 | IronOCRをコンパニオンプロダクトとしてご検討ください。 |
| バーコード/スキャンのニーズ | これらの機能にはGdPicture.NET SDKを、PDFにはIronPDFを使用してください。 |
| フルドキュメントイメージング | すべての機能を実際に使用するかどうかを評価する |
始める前に
前提条件
1..NETバージョン: IronPDFは.NET Framework 4.6.2+と.NET Core 2.0+ / .NET 5/6/7/8/9+をサポートしています。 2.ライセンスキー:ironpdf.comからIronPDFライセンスキーを取得してください。 3.バックアップ:移行作業用のブランチを作成する
すべてのGdPicture.NET SDKの使用法を特定する。
# Find allGdPicture.NET SDKreferences in your codebase
grep -r "GdPicture14\|GdPicturePDF\|GdPictureDocumentConverter\|GdPictureStatus\|LicenseManager\.RegisterKEY" --include="*.cs" .
# Find all GdPicture package references
grep -r "GdPicture" --include="*.csproj" .# Find allGdPicture.NET SDKreferences in your codebase
grep -r "GdPicture14\|GdPicturePDF\|GdPictureDocumentConverter\|GdPictureStatus\|LicenseManager\.RegisterKEY" --include="*.cs" .
# Find all GdPicture package references
grep -r "GdPicture" --include="*.csproj" .NuGetパッケージの変更
# RemoveGdPicture.NET SDKpackages
dotnet remove package GdPicture.NET.14
dotnet remove package GdPicture.NET.14.API
dotnet remove package GdPicture
dotnet remove package GdPicture.API
# Install IronPDF
dotnet add package IronPdf# RemoveGdPicture.NET SDKpackages
dotnet remove package GdPicture.NET.14
dotnet remove package GdPicture.NET.14.API
dotnet remove package GdPicture
dotnet remove package GdPicture.API
# Install IronPDF
dotnet add package IronPdfクイック スタート マイグレーション
ステップ 1: ライセンス構成の更新
以前(GdPicture.NET SDK):。
// Must be called before anyGdPicture.NET SDKoperations
LicenseManager.RegisterKEY("YOUR-GDPICTURE-LICENSE-KEY");// Must be called before anyGdPicture.NET SDKoperations
LicenseManager.RegisterKEY("YOUR-GDPICTURE-LICENSE-KEY");IRON VB CONVERTER ERROR developers@ironsoftware.com翻訳後(IronPDF):。
// Set once at application startup
IronPdf.License.LicenseKey = "YOUR-IRONPDF-LICENSE-KEY";
// Or in appsettings.json:
// { "IronPdf.License.LicenseKey": "YOUR-LICENSE-KEY" }// Set once at application startup
IronPdf.License.LicenseKey = "YOUR-IRONPDF-LICENSE-KEY";
// Or in appsettings.json:
// { "IronPdf.License.LicenseKey": "YOUR-LICENSE-KEY" }IRON VB CONVERTER ERROR developers@ironsoftware.comステップ 2: 名前空間インポートを更新する
// Before (GdPicture.NET SDK)
using GdPicture14;
// After (IronPDF)
using IronPdf;
using IronPdf.Editing;// Before (GdPicture.NET SDK)
using GdPicture14;
// After (IronPDF)
using IronPdf;
using IronPdf.Editing;IRON VB CONVERTER ERROR developers@ironsoftware.comステップ 3: 基本的な変換パターン
GdPicture.NET SDKの移行における最も大きな変更点は、冗長なステータスチェックのパターンをなくしたことです:
以前(GdPicture.NET SDK):。
using GdPicture14;
LicenseManager.RegisterKEY("LICENSE-KEY");
using (GdPictureDocumentConverter converter = new GdPictureDocumentConverter())
{
GdPictureStatus status = converter.LoadFromHTMLString("<h1>Hello World</h1>");
if (status == GdPictureStatus.OK)
{
status = converter.SaveAsPDF("output.pdf");
if (status != GdPictureStatus.OK)
{
Console.WriteLine($"Error: {status}");
}
}
else
{
Console.WriteLine($"Load error: {status}");
}
}using GdPicture14;
LicenseManager.RegisterKEY("LICENSE-KEY");
using (GdPictureDocumentConverter converter = new GdPictureDocumentConverter())
{
GdPictureStatus status = converter.LoadFromHTMLString("<h1>Hello World</h1>");
if (status == GdPictureStatus.OK)
{
status = converter.SaveAsPDF("output.pdf");
if (status != GdPictureStatus.OK)
{
Console.WriteLine($"Error: {status}");
}
}
else
{
Console.WriteLine($"Load error: {status}");
}
}IRON VB CONVERTER ERROR developers@ironsoftware.com翻訳後(IronPDF):。
using IronPdf;
IronPdf.License.LicenseKey = "LICENSE-KEY";
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
pdf.SaveAs("output.pdf");using IronPdf;
IronPdf.License.LicenseKey = "LICENSE-KEY";
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
pdf.SaveAs("output.pdf");IRON VB CONVERTER ERROR developers@ironsoftware.com主な違い:
- ステータスチェックなし-エラー時の例外処理
- レンダラーの明示的な廃棄は不要
- 最新の流暢なAPI
- Chromiumベースのレンダリングにより、HTML/CSSのサポートが向上しました。
完全な API リファレンス
名前空間マッピング
| GdPicture.NET SDK | IronPDF |
|---|---|
| <コード>GdPicture14</コード | IronPdf(アイアンPDF |
| <コード>GdPicture14.PDF</コード | IronPdf(アイアンPDF |
| <コード>GdPicture14.Imaging</コード | 該当なし(不要) |
コア クラス マッピング
| GdPicture.NET SDK | IronPDF | 翻訳内容 |
|---|---|---|
| <コード>GdPicturePDF</コード | <コード>PdfDocument</コード | 主なPDF文書クラス |
| <コード>GdPictureDocumentConverter</コード | <コード>ChromePdfRenderer</コード | HTML/URLからPDFへの変換 |
LicenseManager(ライセンスマネージャ | IronPdf.ライセンス | ライセンス管理 |
| <コード>GdPictureStatus</コード | 例外 | エラー処理 |
ドキュメント読み込み方法
| GdPicture.NET SDK | IronPDF | ノート |
|---|---|---|
pdf.LoadFromFile(path, loadInMemory). | PdfDocument.FromFile(パス)。 | ファイルから読み込む |
pdf.LoadFromFile(path, password, loadInMemory). | PdfDocument.FromFile(path, password). | パスワードで保護 |
converter.LoadFromHTMLString(html). | renderer.RenderHtmlAsPdf(html). | HTML文字列 |
converter.LoadFromURL(url). | renderer.RenderUrlAsPdf(url)のようにします。 | URL |
ページ操作
| GdPicture.NET SDK | IronPDF | ノート |
|---|---|---|
| <コード>pdf.GetPageCount()</コード | <コード>pdf.PageCount</コード | ページ数を取得 |
| <コード>pdf.SelectPage(pageNo)</コード | <コード>pdf.Pages[index]</コード | ページを選択(1インデックス vs 0インデックス) |
| <コード>pdf.GetPageWidth()</コード | <コード>pdf.Pages[i].Width</コード | ページ幅 |
| <コード>pdf.GetPageHeight()</コード | <コード>pdf.Pages[i].Height</コード | ページの高さ |
マージと分割の操作
| GdPicture.NET SDK | IronPDF | ノート |
|---|---|---|
pdf1.MergePages(pdf2). | PdfDocument.Merge(pdf1, pdf2). | PDFをマージ。 |
pdf.ExtractPages(start, end). | pdf.CopyPages(indices)を使用してください。 | ページの抜粋 |
ウォーターマークの操作
| GdPicture.NET SDK | IronPDF | ノート |
|---|---|---|
pdf.DrawText(..)ループ | pdf.ApplyWatermark(html). | テキスト透かし. |
pdf.SetTextColor(color)のようにします。 | CSSスタイリング | テキストの色を設定 |
| <コード>pdf.SetTextSize(size)</コード | CSSスタイリング | テキストサイズの設定 |
コード移行の例
例1: HTMLからPDFへの変換
以前(GdPicture.NET SDK):。
// NuGet: Install-Package GdPicture.NET
using GdPicture14;
using System;
class Program
{
static void Main()
{
using (GdPictureDocumentConverter converter = new GdPictureDocumentConverter())
{
string htmlContent = "<html><body><h1>Hello World</h1></body></html>";
GdPictureStatus status = converter.LoadFromHTMLString(htmlContent);
if (status == GdPictureStatus.OK)
{
converter.SaveAsPDF("output.pdf");
}
}
}
}// NuGet: Install-Package GdPicture.NET
using GdPicture14;
using System;
class Program
{
static void Main()
{
using (GdPictureDocumentConverter converter = new GdPictureDocumentConverter())
{
string htmlContent = "<html><body><h1>Hello World</h1></body></html>";
GdPictureStatus status = converter.LoadFromHTMLString(htmlContent);
if (status == GdPictureStatus.OK)
{
converter.SaveAsPDF("output.pdf");
}
}
}
}IRON VB CONVERTER ERROR developers@ironsoftware.com翻訳後(IronPDF):。
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
string htmlContent = "<html><body><h1>Hello World</h1></body></html>";
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("output.pdf");
}
}// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
string htmlContent = "<html><body><h1>Hello World</h1></body></html>";
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("output.pdf");
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comIronPdfのChromePdfRendererは正確なHTML/CSSレンダリングのために最新のChromiumエンジンを使用し、ステータスコードのチェックを不要にしています。 HTMLレンダリングのオプションについては、HTML to PDF documentationを参照してください。
例2: 複数のPDFをマージする
以前(GdPicture.NET SDK):。
// NuGet: Install-Package GdPicture.NET
using GdPicture14;
using System;
class Program
{
static void Main()
{
using (GdPicturePDF pdf1 = new GdPicturePDF())
using (GdPicturePDF pdf2 = new GdPicturePDF())
{
pdf1.LoadFromFile("document1.pdf", false);
pdf2.LoadFromFile("document2.pdf", false);
pdf1.MergePages(pdf2);
pdf1.SaveToFile("merged.pdf");
}
}
}// NuGet: Install-Package GdPicture.NET
using GdPicture14;
using System;
class Program
{
static void Main()
{
using (GdPicturePDF pdf1 = new GdPicturePDF())
using (GdPicturePDF pdf2 = new GdPicturePDF())
{
pdf1.LoadFromFile("document1.pdf", false);
pdf2.LoadFromFile("document2.pdf", false);
pdf1.MergePages(pdf2);
pdf1.SaveToFile("merged.pdf");
}
}
}IRON VB CONVERTER ERROR developers@ironsoftware.com翻訳後(IronPDF):。
// NuGet: Install-Package IronPdf
using IronPdf;
using System.Collections.Generic;
class Program
{
static void Main()
{
var pdf1 = PdfDocument.FromFile("document1.pdf");
var pdf2 = PdfDocument.FromFile("document2.pdf");
var merged = PdfDocument.Merge(new List<PdfDocument> { pdf1, pdf2 });
merged.SaveAs("merged.pdf");
}
}// NuGet: Install-Package IronPdf
using IronPdf;
using System.Collections.Generic;
class Program
{
static void Main()
{
var pdf1 = PdfDocument.FromFile("document1.pdf");
var pdf2 = PdfDocument.FromFile("document2.pdf");
var merged = PdfDocument.Merge(new List<PdfDocument> { pdf1, pdf2 });
merged.SaveAs("merged.pdf");
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comIronPDFの静的なMergeメソッドはドキュメントのリストを受け付けます。 PDFのマージと分割については、こちらをご覧ください。
例3: すべてのページに透かしを追加する
以前(GdPicture.NET SDK):。
// NuGet: Install-Package GdPicture.NET
using GdPicture14;
using System;
using System.Drawing;
class Program
{
static void Main()
{
using (GdPicturePDF pdf = new GdPicturePDF())
{
pdf.LoadFromFile("input.pdf", false);
for (int i = 1; i <= pdf.GetPageCount(); i++)
{
pdf.SelectPage(i);
pdf.SetTextColor(Color.Red);
pdf.SetTextSize(48);
pdf.DrawText("CONFIDENTIAL", 200, 400);
}
pdf.SaveToFile("watermarked.pdf");
}
}
}// NuGet: Install-Package GdPicture.NET
using GdPicture14;
using System;
using System.Drawing;
class Program
{
static void Main()
{
using (GdPicturePDF pdf = new GdPicturePDF())
{
pdf.LoadFromFile("input.pdf", false);
for (int i = 1; i <= pdf.GetPageCount(); i++)
{
pdf.SelectPage(i);
pdf.SetTextColor(Color.Red);
pdf.SetTextSize(48);
pdf.DrawText("CONFIDENTIAL", 200, 400);
}
pdf.SaveToFile("watermarked.pdf");
}
}
}IRON VB CONVERTER ERROR developers@ironsoftware.com翻訳後(IronPDF):。
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Editing;
class Program
{
static void Main()
{
var pdf = PdfDocument.FromFile("input.pdf");
pdf.ApplyWatermark("<h1 style='color:red;'>CONFIDENTIAL</h1>", 50, VerticalAlignment.Middle, HorizontalAlignment.Center);
pdf.SaveAs("watermarked.pdf");
}
}// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Editing;
class Program
{
static void Main()
{
var pdf = PdfDocument.FromFile("input.pdf");
pdf.ApplyWatermark("<h1 style='color:red;'>CONFIDENTIAL</h1>", 50, VerticalAlignment.Middle, HorizontalAlignment.Center);
pdf.SaveAs("watermarked.pdf");
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comGdPicture.NET SDKは、座標ベースのテキスト描画からHTMLベースの電子透かしへの移行により、コードを大幅に簡素化します。 IronPDFのApplyWatermarkメソッドはHTML/CSSスタイリングを使用し、手作業によるページの反復や座標計算を不要にします。 その他のオプションについては、watermarking documentationの全文をご覧ください。
例4: パスワード保護とセキュリティ
以前(GdPicture.NET SDK):。
using GdPicture14;
class Program
{
static void Main()
{
LicenseManager.RegisterKEY("LICENSE-KEY");
using (GdPicturePDF pdf = new GdPicturePDF())
{
GdPictureStatus status = pdf.LoadFromFile("document.pdf", false);
if (status != GdPictureStatus.OK) return;
// Save with encryption - many boolean parameters
status = pdf.SaveToFile(
"protected.pdf",
PdfEncryption.PdfEncryption256BitAES,
"user123", // User password
"owner456", // Owner password
true, // Can print
false, // Cannot copy
false, // Cannot modify
false, // Cannot add notes
true, // Can fill forms
false, // Cannot extract
false, // Cannot assemble
true // Can print high quality
);
}
}
}using GdPicture14;
class Program
{
static void Main()
{
LicenseManager.RegisterKEY("LICENSE-KEY");
using (GdPicturePDF pdf = new GdPicturePDF())
{
GdPictureStatus status = pdf.LoadFromFile("document.pdf", false);
if (status != GdPictureStatus.OK) return;
// Save with encryption - many boolean parameters
status = pdf.SaveToFile(
"protected.pdf",
PdfEncryption.PdfEncryption256BitAES,
"user123", // User password
"owner456", // Owner password
true, // Can print
false, // Cannot copy
false, // Cannot modify
false, // Cannot add notes
true, // Can fill forms
false, // Cannot extract
false, // Cannot assemble
true // Can print high quality
);
}
}
}IRON VB CONVERTER ERROR developers@ironsoftware.com翻訳後(IronPDF):。
using IronPdf;
class Program
{
static void Main()
{
var pdf = PdfDocument.FromFile("document.pdf");
// Configure security settings with clear property names
pdf.SecuritySettings.OwnerPassword = "owner456";
pdf.SecuritySettings.UserPassword = "user123";
// Set permissions
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.FullPrintRights;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserEdits = PdfEditSecurity.NoEdit;
pdf.SecuritySettings.AllowUserAnnotations = false;
pdf.SecuritySettings.AllowUserFormData = true;
pdf.SaveAs("protected.pdf");
}
}using IronPdf;
class Program
{
static void Main()
{
var pdf = PdfDocument.FromFile("document.pdf");
// Configure security settings with clear property names
pdf.SecuritySettings.OwnerPassword = "owner456";
pdf.SecuritySettings.UserPassword = "user123";
// Set permissions
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.FullPrintRights;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserEdits = PdfEditSecurity.NoEdit;
pdf.SecuritySettings.AllowUserAnnotations = false;
pdf.SecuritySettings.AllowUserFormData = true;
pdf.SaveAs("protected.pdf");
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comIronPdfのSecuritySettingsプロパティは、ブールパラメータの代わりに、名前付きの自己文書化されたプロパティを提供します。
重要な移行に関する注意事項
ページインデックス変換
このGdPicture.NET SDKの移行における最も重要な変更点の1つは、ページインデックスの違いです:
// GdPicture.NET SDK:1-indexedpages
for (int i = 1; i <= pdf.GetPageCount(); i++)
{
pdf.SelectPage(i);
// process page
}
// IronPDF: 0-indexed pages (standard .NET)
for (int i = 0; i < pdf.PageCount; i++)
{
var page = pdf.Pages[i];
// process page
}// GdPicture.NET SDK:1-indexedpages
for (int i = 1; i <= pdf.GetPageCount(); i++)
{
pdf.SelectPage(i);
// process page
}
// IronPDF: 0-indexed pages (standard .NET)
for (int i = 0; i < pdf.PageCount; i++)
{
var page = pdf.Pages[i];
// process page
}IRON VB CONVERTER ERROR developers@ironsoftware.comステータス コードから例外へ
冗長なステータスチェックを標準的な try-catch に置き換えてください:
// GdPicture.NET SDK
GdPictureStatus status = converter.LoadFromHTMLString(html);
if (status != GdPictureStatus.OK)
{
Console.WriteLine($"Error: {status}");
return;
}
// IronPDF
try
{
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
}
catch (Exception ex)
{
Console.WriteLine($"Error: {ex.Message}");
}// GdPicture.NET SDK
GdPictureStatus status = converter.LoadFromHTMLString(html);
if (status != GdPictureStatus.OK)
{
Console.WriteLine($"Error: {status}");
return;
}
// IronPDF
try
{
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
}
catch (Exception ex)
{
Console.WriteLine($"Error: {ex.Message}");
}IRON VB CONVERTER ERROR developers@ironsoftware.comユニット変換
GdPicture.NET SDKは、余白にインチを使用しています; IronPDFはミリメートルを使用しています:
// GdPicture.NET SDK: 0.5 inches margin
converter.HtmlSetMargins(0.5f, 0.5f, 0.5f, 0.5f);
// IronPDF: 0.5 inches = 12.7 mm
renderer.RenderingOptions.MarginTop = 12.7;
renderer.RenderingOptions.MarginBottom = 12.7;
renderer.RenderingOptions.MarginLeft = 12.7;
renderer.RenderingOptions.MarginRight = 12.7;// GdPicture.NET SDK: 0.5 inches margin
converter.HtmlSetMargins(0.5f, 0.5f, 0.5f, 0.5f);
// IronPDF: 0.5 inches = 12.7 mm
renderer.RenderingOptions.MarginTop = 12.7;
renderer.RenderingOptions.MarginBottom = 12.7;
renderer.RenderingOptions.MarginLeft = 12.7;
renderer.RenderingOptions.MarginRight = 12.7;IRON VB CONVERTER ERROR developers@ironsoftware.com変換式<コード>ミリメートル=インチ×25.4</コード
スレッドの安全性
GdPicture.NET SDKは、同時処理に手動同期を必要とします。 IronPDFのChromePdfRendererは設計上スレッドセーフで、マルチスレッドのPDF生成を簡素化します。
パフォーマンスの考慮事項
ChromePdfRendererを再利用してください。
最適なパフォーマンスを得るために、レンダラーのインスタンスを再利用してください:
// GOOD - Reuse renderer (thread-safe)
public class PdfService
{
private static readonly ChromePdfRenderer _renderer = new ChromePdfRenderer();
public byte[] Generate(string html) => _renderer.RenderHtmlAsPdf(html).BinaryData;
}
// BAD - Creates new instance each time
public byte[] GenerateBad(string html)
{
var renderer = new ChromePdfRenderer(); // Wasteful
return renderer.RenderHtmlAsPdf(html).BinaryData;
}// GOOD - Reuse renderer (thread-safe)
public class PdfService
{
private static readonly ChromePdfRenderer _renderer = new ChromePdfRenderer();
public byte[] Generate(string html) => _renderer.RenderHtmlAsPdf(html).BinaryData;
}
// BAD - Creates new instance each time
public byte[] GenerateBad(string html)
{
var renderer = new ChromePdfRenderer(); // Wasteful
return renderer.RenderHtmlAsPdf(html).BinaryData;
}IRON VB CONVERTER ERROR developers@ironsoftware.com適切なリソースの処分
// Use using statements for automatic cleanup
using (var pdf = PdfDocument.FromFile("large.pdf"))
{
string text = pdf.ExtractAllText();
} // pdf is disposed automatically// Use using statements for automatic cleanup
using (var pdf = PdfDocument.FromFile("large.pdf"))
{
string text = pdf.ExtractAllText();
} // pdf is disposed automaticallyIRON VB CONVERTER ERROR developers@ironsoftware.com移行チェックリスト
移行前
- [ ] コードベース内のすべてのGdPicture.NET SDKの使用状況の確認
- [実際に使用される機能の特定(PDF対OCR対BarCode)。
- [OCR/Barcode機能が必要かどうかを判断してください(IronOCR/IronBarcodeを検討してください)。
- [現在のライセンスを確認し、IronPDFの価格と比較してください。
- [IronPDF ライセンスキーの取得
- [バージョン管理でマイグレーションブランチを作成する
コードの移行
- [ ]GdPicture.NET SDKNuGetパッケージを削除します:
dotnet remove package GdPicture.NET<//code> を実行してください。 - [ ] IronPdf NuGetパッケージをインストールします:
dotnet add package IronPdf<//code>. - [ ] 名前空間のインポートを更新する (
GdPicture14→IronPdf) - [ ]
LicenseManager.RegisterKEY()をIronPdf.License.LicenseKeyに置き換えてください。 - [ ] ステータスコードチェックをtry-catchブロックに変換する
- [ページインデックスの更新(1-indexed → 0-indexed)
- [ ]
GdPicturePDFをPdfDocumentに置き換えてください。 - [ ]
GdPictureDocumentConverterをChromePdfRendererに置き換えてください。 - [座標ベースのテキストをHTMLスタンピングに変換してください。
- [単位変換の更新(インチ → ミリメートル)
テスティング
- [すべてのPDF生成パスのユニットテスト
- [HTMLのレンダリング品質が、以下の品質と同等以上であることを確認してください。
- [すべてのセキュリティ/暗号化シナリオのテスト
- [フォーム入力機能の検証
- [マージ/スプリット操作のテスト
- [ウォーターマーク外観の検証
- [パフォーマンスベンチマークのクリティカルパス
移行後
- [ ] GdPicture.NET SDKライセンスファイル/キーの削除
- [ドキュメントの更新
- [IronPDF APIパターンをチームに教える
- [問題発生時のモニタリング
結論
GdPicture.NETSDKからIronPDFに移行することで、PDF生成に焦点を当てた場合、完全なドキュメントイメージングSDKの複雑さを排除することができます。 この移行では、冗長なステータス・チェック・パターンをクリーンな例外ベースのエラー処理に置き換え、1インデックス・ページを標準の0インデックス・コレクションに置き換え、座標ベースのテキスト描画を直感的なHTML/CSSスタイリングに置き換えます。
IronPdfの集中的なアプローチは、最新のChromiumベースのHTMLレンダリング、スレッドセーフな操作、バージョンアップしても変わらない安定した名前空間を提供しながら、ライセンスコストを削減します。 OCRやバーコードが必要なチームには、コンパニオン製品のIronOCRとIronBarcodeが、モノリシックSDKのオーバーヘッドなしにこれらの機能を提供します。
IronPDFドキュメント、チュートリアル、APIリファレンスを参照して、GdPicture.NET SDKへの移行を加速してください。






