C#でExpertPdfからIronPDFに移行する方法
ExpertPdfは、.NET用の商用HTML-PDFコンバータで、長年にわたり開発者にサービスを提供してきました。 しかし、ExpertPdfは、2018年以降凍結されたドキュメント、最新のCSS3機能を欠くレガシーなChromeバージョンへの依存、時代遅れのテクノロジーに対する550~1,200ドルのプレミアム価格、マージ、セキュリティ、分割のために個別のライセンスを必要とする断片的な製品群など、急速に進化する今日の開発環境において大きな課題に直面しています。 この包括的なガイドでは、ExpertPdfから最新のChromiumレンダリング、毎月のアップデート、オールインワンのパッケージアーキテクチャを持つ最新 for .NET PDFライブラリであるIronPDFへの移行パスをステップバイステップで提供します。
なぜExpertPdfからIronPDFに移行するのですか?
ExpertPdfには、開発チームを最新の代替ツールの評価に駆り立てるいくつかの課題があります。 これらの問題を理解することは、移行戦略を計画する上で不可欠です。
ExpertPdfの問題点
- 2018 年以降ドキュメントが凍結されています:エキスパートPDFのドキュメントは 6 年以上更新されていません。 .NETエコシステムの進化に伴い、最新の情報、例、ベストプラクティスを見つけることはますます難しくなっています。
2.古い Chrome バージョン:エキスパートPDFはレンダリングに Chrome の旧バージョンに依存しています。 最新のCSS3機能(Flexbox、Grid、CSS Variables)は正しくレンダリングされない可能性があり、セキュリティパッチは適用されません。
3.レガシー技術のプレミアム価格設定:エキスパートPDFは、ライセンスあたり 550 ~ 1,200 ドルというプレミアム価格を請求しながら、時代遅れのレンダリング技術を提供しています。
4.断片化された製品スイート:エキスパートPDFは、HtmlToPdf Converter、PDF Merger、PDF Security、PDF Splitter、PDF to Image など、さまざまな機能ごとに個別のパッケージを販売しており、それぞれに個別のライセンスが必要です。
5.最新 for .NETサポートが限られている:エキスパートPDFには.NET Coreパッケージがありますが、最新 for .NETバージョンとプラクティスに遅れをとっています。
アーキテクチャの比較
| アスペクト | エキスパートPDF | IronPDF |
|---|---|---|
| ドキュメント | 2018年より凍結 | 継続的な更新 |
| レンダリングエンジン | レガシーChrome | 最新のChromium |
| CSSサポート | 限定的なCSS3 | フルCSS3(フレックスボックス、グリッド) |
| 価格 | $550-$1,200 | 競争力のある価格設定 |
| 更新頻度 | 頻度 | 毎月のリリース |
| 製品モデル | 断片化(5つ以上のDLL) | オールインワンライブラリ |
| モダン.NET | 制限的 | .NET 6/7/8/9+ ネイティブ |
| 非同期サポートについて | 制限的 | 完全なasync/await |
主な移行のメリット
1.モダンレンダリング:ピクセルパーフェクトな出力を実現する最新のChromiumエンジン 2.オールインワンパッケージ: PDF生成、マージ、セキュリティ、抽出を1つのNuGetで実現 3.積極的な開発:新機能とセキュリティパッチを含む毎月のアップデート 4.より良いドキュメント:包括的なチュートリアルと例 5.真のクロスプラットフォーム: Windows、Linux、macOS、Docker をサポート
移行前の準備
前提条件
あなたの環境がこれらの要件を満たしていることを確認してください:
- .NET Framework 4.6.2+または.NET Core 3.1 / .NET 5-9
- Visual Studio 2019+またはC#拡張機能付きVS Code
- NuGetパッケージマネージャへのアクセス
- IronPDFライセンスキー (ironpdf.com にて無料トライアル可能)
監査エキスパートPDFの使用法
ソリューションディレクトリで以下のコマンドを実行し、ExpertPdfへの参照をすべて特定します:
# Find allエキスパートPDFreferences
grep -r "ExpertPdf\|PdfConverter\|PDFMerge\|PdfSecurityManager" --include="*.cs" .
# Check NuGet packages
dotnet list package | grep -i "ExpertPdf"
# Find allエキスパートPDFreferences
grep -r "ExpertPdf\|PdfConverter\|PDFMerge\|PdfSecurityManager" --include="*.cs" .
# Check NuGet packages
dotnet list package | grep -i "ExpertPdf"
一般的なExpertPdfパッケージ
ExpertPdf.HtmlToPdf- HTML から PDF への変換ExpertPdf.PDFMerge- PDFの結合ExpertPdf.PDFSecurity- 暗号化とパスワードExpertPdf.PDFSplit- PDF 分割ExpertPdf.PdfToImage- PDF から画像への変換
コアパターンの変更を理解する
ExpertPdf は、直接バイト配列を返すメソッドで PdfConverter を使用します。IronPDFは、保存前に追加の操作機能を提供するオブジェクトを返す ChromePdfRenderer を使用します。
ステップごとの移行プロセス
ステップ 1: NuGet パッケージを更新する
すべてのExpertPdfパッケージを削除し、IronPdfをインストールしてください:
# Remove allエキスパートPDFpackages
dotnet remove package ExpertPdf.HtmlToPdf
dotnet remove package ExpertPdf.PDFMerge
dotnet remove package ExpertPdf.PDFSecurity
dotnet remove package ExpertPdf.PDFSplit
dotnet remove package ExpertPdf.PdfToImage
# InstallIronPDF(includes all features)
dotnet add package IronPdf
# Remove allエキスパートPDFpackages
dotnet remove package ExpertPdf.HtmlToPdf
dotnet remove package ExpertPdf.PDFMerge
dotnet remove package ExpertPdf.PDFSecurity
dotnet remove package ExpertPdf.PDFSplit
dotnet remove package ExpertPdf.PdfToImage
# InstallIronPDF(includes all features)
dotnet add package IronPdf
ステップ 2: 名前空間参照の更新
ExpertPdfの名前空間をIronPdfに置き換えてください:
// Remove these
using ExpertPdf.HtmlToPdf;
// Add this
using IronPdf;
// Remove these
using ExpertPdf.HtmlToPdf;
// Add this
using IronPdf;
Imports IronPdf
ステップ 3: ライセンスの設定
ExpertPdfは、コンバータごとのライセンスを使用しています。 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"
完全な API 移行のリファレンス
コア クラス マッピング
| ExpertPdfクラス | IronPDF 同等物 |
|---|---|
PdfConverter |
ChromePdfRenderer |
PdfDocumentOptions |
ChromePdfRenderOptions |
PdfHeaderOptions |
TextHeaderFooter または HtmlHeaderFooter |
PdfFooterOptions |
TextHeaderFooter または HtmlHeaderFooter |
PDFMerge |
PdfDocument.Merge() |
メソッドマッピング
| ExpertPdf メソッド | IronPDF メソッド |
|---|---|
pdfConverter.GetPdfBytesFromHtmlString(html) |
renderer.RenderHtmlAsPdf(html).BinaryData |
pdfConverter.GetPdfBytesFromUrl(url) |
renderer.RenderUrlAsPdf(url).BinaryData |
pdfConverter.GetPdfBytesFromHtmlFile(path) |
renderer.RenderHtmlFileAsPdf(path).BinaryData |
pdfConverter.SavePdfFromUrlToFile(url, path) |
renderer.RenderUrlAsPdf(url).SaveAs(path) |
オプション マッピング
| ExpertPdf オプション | IronPDF レンダリングオプション |
|---|---|
PdfDocumentOptions.PdfPageSize = PdfPageSize.A4 |
PaperSize = PdfPaperSize.A4 |
PdfDocumentOptions.PdfPageOrientation = Portrait |
PaperOrientation = PdfPaperOrientation.Portrait |
PdfDocumentOptions.MarginTop |
MarginTop |
PdfHeaderOptions.HeaderText |
TextHeader.CenterText |
PdfFooterOptions.FooterText |
TextFooter.RightText |
ページ番号トークン変換
ExpertPdfとIronPDFはページ番号に異なるプレースホルダー構文を使用します:
| エキスパートPDF | IronPDF |
|---|---|
&p; |
{page} |
&P; |
{total-pages} |
コード移行の例
HTMLからPDFへの変換
基本的なHTMLからPDFへの変換は、ExpertPdfのバイトアレイパターンからIronPDFのドキュメントオブジェクトアプローチへの移行を示しています。
ExpertPdfの実装:
// NuGet: Install-Package ExpertPdf.HtmlToPdf
using ExpertPdf.HtmlToPdf;
using System;
class Program
{
static void Main()
{
// Create the PDF converter
PdfConverter pdfConverter = new PdfConverter();
// Convert HTML string to PDF
byte[] pdfBytes = pdfConverter.GetPdfBytesFromHtmlString("<h1>Hello World</h1><p>This is a PDF document.</p>");
// Save to file
System.IO.File.WriteAllBytes("output.pdf", pdfBytes);
Console.WriteLine("PDF created successfully!");
}
}
// NuGet: Install-Package ExpertPdf.HtmlToPdf
using ExpertPdf.HtmlToPdf;
using System;
class Program
{
static void Main()
{
// Create the PDF converter
PdfConverter pdfConverter = new PdfConverter();
// Convert HTML string to PDF
byte[] pdfBytes = pdfConverter.GetPdfBytesFromHtmlString("<h1>Hello World</h1><p>This is a PDF document.</p>");
// Save to file
System.IO.File.WriteAllBytes("output.pdf", pdfBytes);
Console.WriteLine("PDF created successfully!");
}
}
Imports ExpertPdf.HtmlToPdf
Imports System
Module Program
Sub Main()
' Create the PDF converter
Dim pdfConverter As New PdfConverter()
' Convert HTML string to PDF
Dim pdfBytes As Byte() = pdfConverter.GetPdfBytesFromHtmlString("<h1>Hello World</h1><p>This is a PDF document.</p>")
' Save to file
System.IO.File.WriteAllBytes("output.pdf", pdfBytes)
Console.WriteLine("PDF created successfully!")
End Sub
End Module
IronPDFの実装:。
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
// Create a PDF from HTML string
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>This is a PDF document.</p>");
// Save to file
pdf.SaveAs("output.pdf");
Console.WriteLine("PDF created successfully!");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
// Create a PDF from HTML string
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>This is a PDF document.</p>");
// Save to file
pdf.SaveAs("output.pdf");
Console.WriteLine("PDF created successfully!");
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
' Create a PDF from HTML string
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>This is a PDF document.</p>")
' Save to file
pdf.SaveAs("output.pdf")
Console.WriteLine("PDF created successfully!")
End Sub
End Class
IronPDF のアプローチは、PdfDocument オブジェクトを返すため、保存前に追加の操作 (マージ、透かし、セキュリティ) が可能になります。 その他のオプションについては、HTML to PDF documentationを参照してください。
ページ設定付きURL to PDF
ExpertPdfの実装:
// NuGet: Install-Package ExpertPdf.HtmlToPdf
using ExpertPdf.HtmlToPdf;
using System;
class Program
{
static void Main()
{
// Create the PDF converter
PdfConverter pdfConverter = new PdfConverter();
// Set page size and orientation
pdfConverter.PdfDocumentOptions.PdfPageSize = PdfPageSize.A4;
pdfConverter.PdfDocumentOptions.PdfPageOrientation = PdfPageOrientation.Portrait;
// Convert URL to PDF
byte[] pdfBytes = pdfConverter.GetPdfBytesFromUrl("https://www.example.com");
// Save to file
System.IO.File.WriteAllBytes("webpage.pdf", pdfBytes);
Console.WriteLine("PDF from URL created successfully!");
}
}
// NuGet: Install-Package ExpertPdf.HtmlToPdf
using ExpertPdf.HtmlToPdf;
using System;
class Program
{
static void Main()
{
// Create the PDF converter
PdfConverter pdfConverter = new PdfConverter();
// Set page size and orientation
pdfConverter.PdfDocumentOptions.PdfPageSize = PdfPageSize.A4;
pdfConverter.PdfDocumentOptions.PdfPageOrientation = PdfPageOrientation.Portrait;
// Convert URL to PDF
byte[] pdfBytes = pdfConverter.GetPdfBytesFromUrl("https://www.example.com");
// Save to file
System.IO.File.WriteAllBytes("webpage.pdf", pdfBytes);
Console.WriteLine("PDF from URL created successfully!");
}
}
Imports ExpertPdf.HtmlToPdf
Imports System
Module Program
Sub Main()
' Create the PDF converter
Dim pdfConverter As New PdfConverter()
' Set page size and orientation
pdfConverter.PdfDocumentOptions.PdfPageSize = PdfPageSize.A4
pdfConverter.PdfDocumentOptions.PdfPageOrientation = PdfPageOrientation.Portrait
' Convert URL to PDF
Dim pdfBytes As Byte() = pdfConverter.GetPdfBytesFromUrl("https://www.example.com")
' Save to file
System.IO.File.WriteAllBytes("webpage.pdf", pdfBytes)
Console.WriteLine("PDF from URL created successfully!")
End Sub
End Module
IronPDFの実装:。
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
// Create a PDF renderer
var renderer = new ChromePdfRenderer();
// Set page size and orientation
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait;
// Convert URL to PDF
var pdf = renderer.RenderUrlAsPdf("https://www.example.com");
// Save to file
pdf.SaveAs("webpage.pdf");
Console.WriteLine("PDF from URL created successfully!");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
// Create a PDF renderer
var renderer = new ChromePdfRenderer();
// Set page size and orientation
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait;
// Convert URL to PDF
var pdf = renderer.RenderUrlAsPdf("https://www.example.com");
// Save to file
pdf.SaveAs("webpage.pdf");
Console.WriteLine("PDF from URL created successfully!");
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
' Create a PDF renderer
Dim renderer = New ChromePdfRenderer()
' Set page size and orientation
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait
' Convert URL to PDF
Dim pdf = renderer.RenderUrlAsPdf("https://www.example.com")
' Save to file
pdf.SaveAs("webpage.pdf")
Console.WriteLine("PDF from URL created successfully!")
End Sub
End Class
IronPDF の RenderingOptions は、ページ構成のための直接プロパティ アクセスを提供します。 その他のオプションについては、URL to PDF documentationを参照してください。
ページ番号を含むヘッダーとフッター
この例では、ヘッダー/フッターの設定における重要な違いを示しています。ExpertPdf は、&P; トークンを使用して個別の PdfHeaderOptions クラスと PdfFooterOptions クラスを使用しますが、IronPDFは、{total-pages} プレースホルダーを使用して TextHeaderFooter を使用します。
ExpertPdfの実装:
// NuGet: Install-Package ExpertPdf.HtmlToPdf
using ExpertPdf.HtmlToPdf;
using System;
class Program
{
static void Main()
{
// Create the PDF converter
PdfConverter pdfConverter = new PdfConverter();
// Enable header
pdfConverter.PdfHeaderOptions.ShowHeader = true;
pdfConverter.PdfHeaderOptions.HeaderText = "Document Header";
pdfConverter.PdfHeaderOptions.HeaderTextAlignment = HorizontalTextAlign.Center;
// Enable footer with page numbers
pdfConverter.PdfFooterOptions.ShowFooter = true;
pdfConverter.PdfFooterOptions.FooterText = "Page &p; of &P;";
pdfConverter.PdfFooterOptions.FooterTextAlignment = HorizontalTextAlign.Right;
// Convert HTML file to PDF
byte[] pdfBytes = pdfConverter.GetPdfBytesFromHtmlFile("input.html");
// Save to file
System.IO.File.WriteAllBytes("output-with-header-footer.pdf", pdfBytes);
Console.WriteLine("PDF with headers and footers created successfully!");
}
}
// NuGet: Install-Package ExpertPdf.HtmlToPdf
using ExpertPdf.HtmlToPdf;
using System;
class Program
{
static void Main()
{
// Create the PDF converter
PdfConverter pdfConverter = new PdfConverter();
// Enable header
pdfConverter.PdfHeaderOptions.ShowHeader = true;
pdfConverter.PdfHeaderOptions.HeaderText = "Document Header";
pdfConverter.PdfHeaderOptions.HeaderTextAlignment = HorizontalTextAlign.Center;
// Enable footer with page numbers
pdfConverter.PdfFooterOptions.ShowFooter = true;
pdfConverter.PdfFooterOptions.FooterText = "Page &p; of &P;";
pdfConverter.PdfFooterOptions.FooterTextAlignment = HorizontalTextAlign.Right;
// Convert HTML file to PDF
byte[] pdfBytes = pdfConverter.GetPdfBytesFromHtmlFile("input.html");
// Save to file
System.IO.File.WriteAllBytes("output-with-header-footer.pdf", pdfBytes);
Console.WriteLine("PDF with headers and footers created successfully!");
}
}
Imports ExpertPdf.HtmlToPdf
Imports System
Class Program
Shared Sub Main()
' Create the PDF converter
Dim pdfConverter As New PdfConverter()
' Enable header
pdfConverter.PdfHeaderOptions.ShowHeader = True
pdfConverter.PdfHeaderOptions.HeaderText = "Document Header"
pdfConverter.PdfHeaderOptions.HeaderTextAlignment = HorizontalTextAlign.Center
' Enable footer with page numbers
pdfConverter.PdfFooterOptions.ShowFooter = True
pdfConverter.PdfFooterOptions.FooterText = "Page &p; of &P;"
pdfConverter.PdfFooterOptions.FooterTextAlignment = HorizontalTextAlign.Right
' Convert HTML file to PDF
Dim pdfBytes As Byte() = pdfConverter.GetPdfBytesFromHtmlFile("input.html")
' Save to file
System.IO.File.WriteAllBytes("output-with-header-footer.pdf", pdfBytes)
Console.WriteLine("PDF with headers and footers created successfully!")
End Sub
End Class
IronPDFの実装:。
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
// Create a PDF renderer
var renderer = new ChromePdfRenderer();
// Configure header
renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
{
CenterText = "Document Header",
DrawDividerLine = true
};
// Configure footer with page numbers
renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
{
RightText = "Page {page} of {total-pages}",
DrawDividerLine = true
};
// Convert HTML file to PDF
var pdf = renderer.RenderHtmlFileAsPdf("input.html");
// Save to file
pdf.SaveAs("output-with-header-footer.pdf");
Console.WriteLine("PDF with headers and footers created successfully!");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
// Create a PDF renderer
var renderer = new ChromePdfRenderer();
// Configure header
renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
{
CenterText = "Document Header",
DrawDividerLine = true
};
// Configure footer with page numbers
renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
{
RightText = "Page {page} of {total-pages}",
DrawDividerLine = true
};
// Convert HTML file to PDF
var pdf = renderer.RenderHtmlFileAsPdf("input.html");
// Save to file
pdf.SaveAs("output-with-header-footer.pdf");
Console.WriteLine("PDF with headers and footers created successfully!");
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
' Create a PDF renderer
Dim renderer = New ChromePdfRenderer()
' Configure header
renderer.RenderingOptions.TextHeader = New TextHeaderFooter() With {
.CenterText = "Document Header",
.DrawDividerLine = True
}
' Configure footer with page numbers
renderer.RenderingOptions.TextFooter = New TextHeaderFooter() With {
.RightText = "Page {page} of {total-pages}",
.DrawDividerLine = True
}
' Convert HTML file to PDF
Dim pdf = renderer.RenderHtmlFileAsPdf("input.html")
' Save to file
pdf.SaveAs("output-with-header-footer.pdf")
Console.WriteLine("PDF with headers and footers created successfully!")
End Sub
End Class
IronPDF の TextHeaderFooter は、オプションの区切り線を持つ CenterText、および RightText プロパティを提供します。 HTML ベースのヘッダーの場合は、HtmlHeaderFooter を使用します。 その他のオプションについては、headers and footers documentationを参照してください。
重要な移行に関する注意事項
ライセンス キー ロケーション
ExpertPdfは、コンバータごとのライセンスを使用しています。 IronPdfは起動時に単一のグローバルライセンスを使用します:
//エキスパートPDF- per converter
pdfConverter.LicenseKey = "EXPERTPDF-LICENSE";
//IronPDF- global, set once
IronPdf.License.LicenseKey = "IRONPDF-LICENSE";
//エキスパートPDF- per converter
pdfConverter.LicenseKey = "EXPERTPDF-LICENSE";
//IronPDF- global, set once
IronPdf.License.LicenseKey = "IRONPDF-LICENSE";
'エキスパートPDF- per converter
pdfConverter.LicenseKey = "EXPERTPDF-LICENSE"
'IronPDF- global, set once
IronPdf.License.LicenseKey = "IRONPDF-LICENSE"
ページ番号トークン変換
ExpertPdfトークンをIronPDFプレースホルダーに置き換えてください:
// ExpertPdf
"Page &p; of &P;"
// IronPDF
"Page {page} of {total-pages}"
// ExpertPdf
"Page &p; of &P;"
// IronPDF
"Page {page} of {total-pages}"
断片化されたパッケージが統合されました
ExpertPdfの個別パッケージ(PDFMerge, PDFSecurity, PDFSplit, PdfToImage)はすべてIronPdfの単一パッケージに含まれています:
//エキスパートPDF- requires separate PDFMerge package
var merger = new PdfMerge();
merger.AppendPDFFile("file1.pdf");
merger.AppendPDFFile("file2.pdf");
merger.SaveMergedPDFToFile("merged.pdf");
//IronPDF- included in main package
var pdf1 = PdfDocument.FromFile("file1.pdf");
var pdf2 = PdfDocument.FromFile("file2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");
//エキスパートPDF- requires separate PDFMerge package
var merger = new PdfMerge();
merger.AppendPDFFile("file1.pdf");
merger.AppendPDFFile("file2.pdf");
merger.SaveMergedPDFToFile("merged.pdf");
//IronPDF- included in main package
var pdf1 = PdfDocument.FromFile("file1.pdf");
var pdf2 = PdfDocument.FromFile("file2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");
'エキスパートPDF- requires separate PDFMerge package
Dim merger As New PdfMerge()
merger.AppendPDFFile("file1.pdf")
merger.AppendPDFFile("file2.pdf")
merger.SaveMergedPDFToFile("merged.pdf")
'IronPDF- included in main package
Dim pdf1 = PdfDocument.FromFile("file1.pdf")
Dim pdf2 = PdfDocument.FromFile("file2.pdf")
Dim merged = PdfDocument.Merge(pdf1, pdf2)
merged.SaveAs("merged.pdf")
マージオプションについては、PDFマージドキュメントを参照してください。
カスタムページサイズ
ExpertPdfはポイントを使用しています。 IronPDFはミリメートルを使用しています。 変換: points / 72 * 25.4 = mm
移行後のチェックリスト
コードの移行が完了したら、以下を確認してください:
- 生成されたPDFの視覚的な比較
- ヘッダー/フッターとページ番号を確認する
- セキュリティ/暗号化設定をテストする
- マージ操作を検証する
- カスタムページサイズを確認する
- パフォーマンスベンチマーク
- クロスプラットフォームテスト
- ExpertPdfライセンスファイルを削除する
- ドキュメントの更新
PDFインフラストラクチャの将来性を確保する
.NET 10が目前に迫り、C# 14では新しい言語機能が導入されるため、活発な開発と最新のレンダリングが行われているPDFライブラリを選択することで、長期的な互換性を確保することができます。 IronPdfの毎月のアップデートと最新のChromeエンジンは、ExpertPdfのレガシーなChromeバージョンとは異なり、プロジェクトが2025年や2026年に拡張されても、最新のCSS3レイアウト(Flexbox、Grid)で正しく動作し続けるPDF生成の基盤を提供します。
その他のリソース
ExpertPdfからIronPDFに移行することで、凍結されたドキュメント、レガシーなChromeレンダリング、断片化された製品ライセンス、限定された最新 for .NETサポートといった課題が解消されます。 最新のChromiumエンジンを備えたアクティブにメンテナンスされたライブラリへの移行により、PDF生成は、進化するWeb標準や.NET Frameworkと歩調を合わせることができます。

