C#でPDF DuoからIronPDFに移行する方法
PDF Duo .NETからIronPDFに移行することで、あなた for .NET PDFワークフローは、メンテナンス状況が不明瞭で、ドキュメントが不十分なライブラリから、安定し、ドキュメントが整備され、活発にメンテナンスされているソリューションに移行します。 このガイドでは、放棄されたライブラリに関連するリスクを排除しながら、PDF Duoでは提供できない高度な機能へのアクセスを得るための、包括的で段階的な移行パスを提供します。
なぜPDF DuoからIronPDFへ移行するのか
PDFデュオのリスク問題
PDF Duo .NETは、.NETエコシステムの中でもとらえどころがなく、あまり知られていないライブラリです。 シンプルさを求める開発者には魅力的だったかもしれませんが、このライブラリの不明瞭さは、プロダクション・アプリケーションにとっては大きな課題となります:
1.出所不明:検証可能な企業の支援のない、不明な開発者。 目に見えるGitHubリポジトリやソースコードはなく、NuGetのダウンロード統計も限られており、ライセンス条件も不明確です。
2.ドキュメントの不足:信頼できる情報を見つけることはほぼ不可能です。 公式のAPIリファレンスはなく、コミュニティの例もまばらで、公式のチュートリアルやガイドもありません。 PDF Duoを利用しようとすると、信頼できる文書が少ないことが妨げになります。
3.放棄または非アクティブなステータス:更新が散発的またはまったく行われていないことから、放置の兆候が明らかです。 サポートフォーラムには、2019年からの投稿が表示され、回答はありません。 翻訳が放棄されるという現実的なリスクがあるため、重要なプロジェクトで使用することはできません。
4.機能が制限されています:基本的な機能のみ。シンプルな HTML から PDF への変換と基本的な PDF の結合のみで、フォーム、セキュリティ、透かしなどの高度な機能はありません。
5.不明なレンダリング エンジン:内部で何が行われているかは不明です。 CSS/JavaScriptのサポートは未知数で、レンダリング品質も予測できず、最新のウェブ機能のサポートも不確かです。
6.サポートリスク:故障時に救済措置がありません。 Professionalなサポートはなく、助けてくれるコミュニティもありません。
PDF DuoとIronPDFの比較
| アスペクト | PDF Duo .NET | IronPDF |
|---|---|---|
| メンテナンス | 不明/活動中 | 積極的な定期更新 |
| ドキュメンテーション | まばら/欠落 | 包括的 |
| サポート | なし | プロのサポートチーム |
| コミュニティ | ~ユーザー数 | 4100万以上のNuGetダウンロード |
| レンダリング | 未知のエンジン | モダンChromium |
| 特徴 | 基本 | フル機能 |
| 安定性 | 不明 | 生産実績 |
| ライセンス | 不明確 | 透明な |
2025年と2026年まで.NET 10とC# 14の採用を計画しているチームにとって、IronPDFはアクティブな開発と包括的なドキュメントで安定した基盤を提供し、見捨てられたライブラリに依存する不確実性を排除します。
始める前に
前提条件
- .NET環境: .NET Framework 4.6.2+ または.NET Core 3.1+ / .NET 5/6/7/8/9+
- NuGetアクセス: NuGetパッケージをインストールする機能
- IronPDFライセンス: IronPDFからライセンスキーを取得します。
NuGetパッケージの変更
# RemovePDF Duo .NET(if you can find the correct package name)
dotnet remove package PDFDuo.NET
dotnet remove package PDFDuo
dotnet remove package PDF-Duo
# Install IronPDF
dotnet add package IronPdf
# RemovePDF Duo .NET(if you can find the correct package name)
dotnet remove package PDFDuo.NET
dotnet remove package PDFDuo
dotnet remove package PDF-Duo
# Install IronPDF
dotnet add package IronPdf
ライセンス構成
// Add at application startup (Program.cs or Startup.cs)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
// Add at application startup (Program.cs or Startup.cs)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
' Add at application startup (Program.vb or Startup.vb)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
PDF Duo の使用法を特定する
# Find all PDF Duo references
grep -r "PDFDuo\|HtmlToPdfConverter\|PdfMerger" --include="*.cs" .
# Find all PDF Duo references
grep -r "PDFDuo\|HtmlToPdfConverter\|PdfMerger" --include="*.cs" .
完全な API リファレンス
名前空間の変更
| PDF Duo .NET | IronPDF |
|---|---|
using PDFDuo; |
using IronPdf; |
using PDFDuo.Document; |
using IronPdf; |
using PDFDuo.Rendering; |
using IronPdf.Rendering; |
using PDFDuo.Settings; |
using IronPdf; |
HTMLからPDFへの変換マッピング
| PDF Duo .NET | IronPDF |
|---|---|
new HtmlToPdfConverter() |
new ChromePdfRenderer() |
converter.ConvertHtmlString(html, path) |
renderer.RenderHtmlAsPdf(html).SaveAs(path) |
converter.ConvertUrl(url, path) |
renderer.RenderUrlAsPdf(url).SaveAs(path) |
converter.ConvertFile(htmlPath, pdfPath) |
renderer.RenderHtmlFileAsPdf(htmlPath).SaveAs(pdfPath) |
ページ構成マッピング
| PDF Duo .NET | IronPDF |
|---|---|
settings.PageSize = PageSize.A4 |
RenderingOptions.PaperSize = PdfPaperSize.A4 |
settings.PageSize = PageSize.Letter |
RenderingOptions.PaperSize = PdfPaperSize.Letter |
settings.Orientation = Landscape |
RenderingOptions.PaperOrientation = Landscape |
new Margins(top, right, bottom, left) |
個々のマージン特性 |
マージンのマッピング
| PDF Duo .NET | IronPDF |
|---|---|
new Margins(top, right, bottom, left) |
個々のプロパティ |
margins.Top |
RenderingOptions.MarginTop |
margins.Right |
RenderingOptions.MarginRight |
margins.Bottom |
RenderingOptions.MarginBottom |
margins.Left |
RenderingOptions.MarginLeft |
ドキュメント操作マッピング
| PDF Duo .NET | IronPDF |
|---|---|
PDFDocument.Load(path) |
PdfDocument.FromFile(path) |
document.Save(path) |
pdf.SaveAs(path) |
document.ToBytes() |
pdf.BinaryData |
new PdfMerger() |
PdfDocument.Merge() |
merger.AddFile(path) |
PdfDocument.FromFile(path) |
merger.Merge(output) |
merged.SaveAs(output) |
PDF Duoでは利用できない新機能
| フィーチャー | IronPDF |
|---|---|
| ヘッダー/フッター | RenderingOptions.HtmlHeader, HtmlFooter |
| ページ数 | {total-pages} プレースホルダー |
| 透かし | pdf.ApplyWatermark(html) |
| パスワード保護 | pdf.SecuritySettings |
| フォーム入力 | pdf.Form.Fields |
| デジタル署名 | pdf.SignWithFile() |
| テキスト抽出 | pdf.ExtractAllText() |
| PDFから画像へ | pdf.RasterizeToImageFiles() |
コード移行の例
例1: HTMLからPDFへの変換
翻訳前(PDF Duo):
// NuGet: Install-Package PDFDuo.NET
using PDFDuo;
using System;
class Program
{
static void Main()
{
var converter = new HtmlToPdfConverter();
var htmlContent = "<h1>Hello World</h1><p>This is a PDF document.</p>";
converter.ConvertHtmlString(htmlContent, "output.pdf");
Console.WriteLine("PDF created successfully!");
}
}
// NuGet: Install-Package PDFDuo.NET
using PDFDuo;
using System;
class Program
{
static void Main()
{
var converter = new HtmlToPdfConverter();
var htmlContent = "<h1>Hello World</h1><p>This is a PDF document.</p>";
converter.ConvertHtmlString(htmlContent, "output.pdf");
Console.WriteLine("PDF created successfully!");
}
}
Imports PDFDuo
Imports System
Module Program
Sub Main()
Dim converter As New HtmlToPdfConverter()
Dim htmlContent As String = "<h1>Hello World</h1><p>This is a PDF document.</p>"
converter.ConvertHtmlString(htmlContent, "output.pdf")
Console.WriteLine("PDF created successfully!")
End Sub
End Module
翻訳後(IronPDF):。
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var htmlContent = "<h1>Hello World</h1><p>This is a PDF document.</p>";
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("output.pdf");
Console.WriteLine("PDF created successfully!");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var htmlContent = "<h1>Hello World</h1><p>This is a PDF document.</p>";
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("output.pdf");
Console.WriteLine("PDF created successfully!");
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
Dim renderer = New ChromePdfRenderer()
Dim htmlContent = "<h1>Hello World</h1><p>This is a PDF document.</p>"
Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
pdf.SaveAs("output.pdf")
Console.WriteLine("PDF created successfully!")
End Sub
End Class
ここでの基本的な違いは、APIパターンです。 PDF Duo の HtmlToPdfConverter.ConvertHtmlString() は、HTML と出力パスの両方を 1 回の呼び出しで受け取り、変換と保存をまとめて処理します。IronPDFの ChromePdfRenderer.RenderHtmlAsPdf() は最初に PdfDocument オブジェクトを返し、次にそれを SaveAs() で保存します。
このオブジェクト指向のアプローチには大きな利点があります。PDFを操作(透かしの追加、文書の結合、セキュリティの追加、テキストの抽出)してから保存することができます。 その他のレンダリングオプションについては、HTML to PDF documentationを参照してください。
例2: URLからPDFへの変換
翻訳前(PDF Duo):
// NuGet: Install-Package PDFDuo.NET
using PDFDuo;
using System;
class Program
{
static void Main()
{
var converter = new HtmlToPdfConverter();
converter.ConvertUrl("https://www.example.com", "webpage.pdf");
Console.WriteLine("Webpage converted to PDF!");
}
}
// NuGet: Install-Package PDFDuo.NET
using PDFDuo;
using System;
class Program
{
static void Main()
{
var converter = new HtmlToPdfConverter();
converter.ConvertUrl("https://www.example.com", "webpage.pdf");
Console.WriteLine("Webpage converted to PDF!");
}
}
Imports PDFDuo
Imports System
Module Program
Sub Main()
Dim converter As New HtmlToPdfConverter()
converter.ConvertUrl("https://www.example.com", "webpage.pdf")
Console.WriteLine("Webpage converted to PDF!")
End Sub
End Module
翻訳後(IronPDF):。
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf("https://www.example.com");
pdf.SaveAs("webpage.pdf");
Console.WriteLine("Webpage converted to PDF!");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf("https://www.example.com");
pdf.SaveAs("webpage.pdf");
Console.WriteLine("Webpage converted to PDF!");
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderUrlAsPdf("https://www.example.com")
pdf.SaveAs("webpage.pdf")
Console.WriteLine("Webpage converted to PDF!")
End Sub
End Class
PDF Duo は、URL 変換に ConvertUrl(url, outputPath) と同じ HtmlToPdfConverter クラスを使用します。IronPDFは、専用の RenderUrlAsPdf(url) メソッドで ChromePdfRenderer を使用し、PdfDocument オブジェクトを返します。
主な利点は、IronPDFのChromiumベースのレンダリングエンジンが最新のCSS3とJavaScriptをサポートするのに対し、PDF Duoの未知のレンダリングエンジンではCSS/JavaScriptのサポートが不確実で、レンダリングの品質も予測できません。 URLからPDFへの変換の詳細については、こちらをご覧ください。
例 3: PDF のマージ
翻訳前(PDF Duo):
// NuGet: Install-Package PDFDuo.NET
using PDFDuo;
using System;
class Program
{
static void Main()
{
var merger = new PdfMerger();
merger.AddFile("document1.pdf");
merger.AddFile("document2.pdf");
merger.Merge("merged.pdf");
Console.WriteLine("PDFs merged successfully!");
}
}
// NuGet: Install-Package PDFDuo.NET
using PDFDuo;
using System;
class Program
{
static void Main()
{
var merger = new PdfMerger();
merger.AddFile("document1.pdf");
merger.AddFile("document2.pdf");
merger.Merge("merged.pdf");
Console.WriteLine("PDFs merged successfully!");
}
}
Imports PDFDuo
Imports System
Class Program
Shared Sub Main()
Dim merger As New PdfMerger()
merger.AddFile("document1.pdf")
merger.AddFile("document2.pdf")
merger.Merge("merged.pdf")
Console.WriteLine("PDFs merged successfully!")
End Sub
End Class
翻訳後(IronPDF):。
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var pdf1 = PdfDocument.FromFile("document1.pdf");
var pdf2 = PdfDocument.FromFile("document2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");
Console.WriteLine("PDFs merged successfully!");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var pdf1 = PdfDocument.FromFile("document1.pdf");
var pdf2 = PdfDocument.FromFile("document2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");
Console.WriteLine("PDFs merged successfully!");
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
Dim pdf1 = PdfDocument.FromFile("document1.pdf")
Dim pdf2 = PdfDocument.FromFile("document2.pdf")
Dim merged = PdfDocument.Merge(pdf1, pdf2)
merged.SaveAs("merged.pdf")
Console.WriteLine("PDFs merged successfully!")
End Sub
End Class
この例は、基本的なアーキテクチャの違いを示しています。 PDF Duo は、専用の PdfMerger クラスと AddFile() メソッドを使用してファイルをキューに入れ、その後 Merge() で 1 ステップで結合して保存します。
IronPDF は異なるパターンを使用します。PdfDocument.FromFile() を使用して各 PDF を PdfDocument として読み込み、次に静的な PdfDocument.Merge() メソッドを使用してそれらを結合します。 これにより、SaveAs() で個別に保存する新しい PdfDocument オブジェクトが返されます。
IronPDFのアプローチはより柔軟性があり、マージする前にPDFを操作したり、マージ結果に透かしを入れたり、セキュリティ設定を適用したりすることができます。 多数のファイルをマージするには、LINQを使用できます:
var paths = new[] { "document1.pdf", "document2.pdf", "document3.pdf" };
var pdfs = paths.Select(PdfDocument.FromFile).ToList();
var merged = PdfDocument.Merge(pdfs);
merged.SaveAs("merged.pdf");
var paths = new[] { "document1.pdf", "document2.pdf", "document3.pdf" };
var pdfs = paths.Select(PdfDocument.FromFile).ToList();
var merged = PdfDocument.Merge(pdfs);
merged.SaveAs("merged.pdf");
Dim paths = {"document1.pdf", "document2.pdf", "document3.pdf"}
Dim pdfs = paths.Select(AddressOf PdfDocument.FromFile).ToList()
Dim merged = PdfDocument.Merge(pdfs)
merged.SaveAs("merged.pdf")
PDFのマージと分割については、こちらをご覧ください。
移行後の新機能
IronPDFに移行した後は、PDF Duoでは提供できない機能を得ることができます:
ページ番号を含むヘッダーとフッター
using IronPdf;
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
{
HtmlFragment = "<div style='text-align:center; font-size:10px;'>Company Report</div>",
MaxHeight = 25
};
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
{
HtmlFragment = "<div style='text-align:center; font-size:10px;'>Page {page} of {total-pages}</div>",
MaxHeight = 25
};
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("report.pdf");
using IronPdf;
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
{
HtmlFragment = "<div style='text-align:center; font-size:10px;'>Company Report</div>",
MaxHeight = 25
};
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
{
HtmlFragment = "<div style='text-align:center; font-size:10px;'>Page {page} of {total-pages}</div>",
MaxHeight = 25
};
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("report.pdf");
Imports IronPdf
Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter With {
.HtmlFragment = "<div style='text-align:center; font-size:10px;'>Company Report</div>",
.MaxHeight = 25
}
renderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooter With {
.HtmlFragment = "<div style='text-align:center; font-size:10px;'>Page {page} of {total-pages}</div>",
.MaxHeight = 25
}
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("report.pdf")
PDF Duoはヘッダーやフッターに対応しておらず、同等の機能はありません。 IronPDFはHTML/CSSをフルサポートし、ページ番号のような動的コンテンツ用のプレースホルダーを内蔵しています。 ヘッダーとフッターガイドを参照してください。
ウォーターマーク
using IronPdf;
using IronPdf.Editing;
var pdf = PdfDocument.FromFile("document.pdf");
pdf.ApplyWatermark(
"<h1 style='color:red; opacity:0.3;'>CONFIDENTIAL</h1>",
45,
VerticalAlignment.Middle,
HorizontalAlignment.Center);
pdf.SaveAs("watermarked.pdf");
using IronPdf;
using IronPdf.Editing;
var pdf = PdfDocument.FromFile("document.pdf");
pdf.ApplyWatermark(
"<h1 style='color:red; opacity:0.3;'>CONFIDENTIAL</h1>",
45,
VerticalAlignment.Middle,
HorizontalAlignment.Center);
pdf.SaveAs("watermarked.pdf");
Imports IronPdf
Imports IronPdf.Editing
Dim pdf = PdfDocument.FromFile("document.pdf")
pdf.ApplyWatermark("<h1 style='color:red; opacity:0.3;'>CONFIDENTIAL</h1>", 45, VerticalAlignment.Middle, HorizontalAlignment.Center)
pdf.SaveAs("watermarked.pdf")
PDF Duoは透かしに対応していません。 IronPdfはHTMLベースの透かしを提供し、完全なCSSスタイリングをサポートします。
パスワード保護
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SecuritySettings.UserPassword = "userpassword";
pdf.SecuritySettings.OwnerPassword = "ownerpassword";
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights;
pdf.SaveAs("secured.pdf");
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SecuritySettings.UserPassword = "userpassword";
pdf.SecuritySettings.OwnerPassword = "ownerpassword";
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights;
pdf.SaveAs("secured.pdf");
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SecuritySettings.UserPassword = "userpassword"
pdf.SecuritySettings.OwnerPassword = "ownerpassword"
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights
pdf.SaveAs("secured.pdf")
PDF Duoはパスワード保護やセキュリティ設定に対応していません。
テキスト抽出
var pdf = PdfDocument.FromFile("document.pdf");
string text = pdf.ExtractAllText();
var pdf = PdfDocument.FromFile("document.pdf");
string text = pdf.ExtractAllText();
Dim pdf = PdfDocument.FromFile("document.pdf")
Dim text As String = pdf.ExtractAllText()
PDF Duoはテキスト抽出に対応していません。
重要な移行に関する注意事項
個々のプロパティへのマージンオブジェクト
PDF Duo は単一の Margins オブジェクトを使用します。 IronPDFは個々のプロパティを使用します:
// PDF Duo:
new Margins(top: 20, right: 15, bottom: 20, left: 15)
// IronPDF:
renderer.RenderingOptions.MarginTop = 20;
renderer.RenderingOptions.MarginRight = 15;
renderer.RenderingOptions.MarginBottom = 20;
renderer.RenderingOptions.MarginLeft = 15;
// PDF Duo:
new Margins(top: 20, right: 15, bottom: 20, left: 15)
// IronPDF:
renderer.RenderingOptions.MarginTop = 20;
renderer.RenderingOptions.MarginRight = 15;
renderer.RenderingOptions.MarginBottom = 20;
renderer.RenderingOptions.MarginLeft = 15;
' PDF Duo:
New Margins(top:=20, right:=15, bottom:=20, left:=15)
' IronPDF:
renderer.RenderingOptions.MarginTop = 20
renderer.RenderingOptions.MarginRight = 15
renderer.RenderingOptions.MarginBottom = 20
renderer.RenderingOptions.MarginLeft = 15
セーブメソッドの命名
保存のための異なるメソッド名:
// PDF Duo:
document.Save("output.pdf");
// IronPDF:
pdf.SaveAs("output.pdf");
// PDF Duo:
document.Save("output.pdf");
// IronPDF:
pdf.SaveAs("output.pdf");
' PDF Duo:
document.Save("output.pdf")
' IronPDF:
pdf.SaveAs("output.pdf")
PDFの読み込み
ローディングのための異なるメソッド名:
// PDF Duo:
PDFDocument.Load("document.pdf")
// IronPDF:
PdfDocument.FromFile("document.pdf")
// PDF Duo:
PDFDocument.Load("document.pdf")
// IronPDF:
PdfDocument.FromFile("document.pdf")
' PDF Duo:
PDFDocument.Load("document.pdf")
' IronPDF:
PdfDocument.FromFile("document.pdf")
プロパティへの設定オブジェクト
PDF Duo は、コンストラクタに渡された設定オブジェクトを使用します; IronPDFはプロパティを使用します:
// PDF Duo:
var settings = new PDFSettings { PageSize = PageSize.A4 };
var converter = new HtmlToPdfConverter(settings);
// IronPDF:
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
// PDF Duo:
var settings = new PDFSettings { PageSize = PageSize.A4 };
var converter = new HtmlToPdfConverter(settings);
// IronPDF:
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
' PDF Duo:
Dim settings As New PDFSettings With {.PageSize = PageSize.A4}
Dim converter As New HtmlToPdfConverter(settings)
' IronPDF:
Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
機能比較
| フィーチャー | PDF Duo .NET | IronPDF |
|---|---|---|
| HTMLからPDFへ | 基本 | 完全なCSS3、JavaScript |
| URLからPDFへ | 基本 | 認証サポート付き |
| PDFマージ | はい | はい |
| ヘッダー/フッター | なし | HTMLフルサポート |
| ページ数 | なし | 組み込みプレースホルダ |
| 透かし | なし | HTMLベース |
| パスワード保護 | なし | 完全なセキュリティオプション |
| フォーム入力 | なし | はい |
| デジタル署名 | なし | はい |
| テキスト抽出 | なし | はい |
| PDFから画像へ | なし | はい |
| 非同期サポート | 不明 | 完全なasync/await |
| .NET Core/5+ | 不明 | サポート対象 |
移行チェックリスト
移行前
- コードベース内のすべての PDF Duo 参照を検索
- 現在の設定(ページ サイズ、余白など)を文書化します
- 使用されたすべてのPDF操作を一覧表示します
- 新しい機能(ヘッダー、透かし、セキュリティ)の機会を特定する
- IronPDFライセンスキーを取得する
パッケージの変更
PDFDuo.NETNuGetパッケージを削除しますIronPdfNuGetパッケージをインストールします:dotnet add package IronPdf- 名前空間のインポートを
using PDFDuo;からusing IronPdf;に更新します
コードの変更
- 起動時にライセンスキー設定を追加する
HtmlToPdfConverterをChromePdfRendererに置き換えますConvertHtmlString(html, path)をRenderHtmlAsPdf(html).SaveAs(path)に置き換えますConvertUrl(url, path)をRenderUrlAsPdf(url).SaveAs(path)に置き換えますPdfMergerパターンをPdfDocument.Merge()パターンに置き換えますMarginsオブジェクトを個別のマージンプロパティに変換しますSave()をSaveAs()に置き換えますLoad()をFromFile()に置き換えます
移行後
- PDF出力を比較する回帰テストを実行する
- ページサイズと余白が一致していることを確認する
- 複雑な HTML/CSS でテストする (IronPDF の最新エンジンの方がより適切に処理できるはずです)
- 新しい機能の追加(ヘッダー、フッター、透かし、セキュリティ)
- ドキュメントの更新

