C#でPlaywrightからIronPDFに移行する方法
PlaywrightからIronPDFへの移行:完全なC#移行ガイド
Playwright for .NETからIronPDFに移行することで、PDF生成のワークフローがテスト中心のブラウザ自動化ツールから目的に特化したPDFライブラリに変わります。 このガイドでは、複雑な非同期パターン、ブラウザのライフサイクル管理、400MB以上のブラウザのダウンロードを排除し、より良いパフォーマンスとプロフェッショナルなPDF機能を提供する、完全でステップバイステップの移行パスを提供します。
なぜPlaywrightからIronPDFに移行するのか
.NET用Playwrightを理解する
Playwright for .NETは、Microsoftのブラウザ自動化ツールファミリーの一部です; Chromium、Firefox、WebKitにまたがる包括的なテスト機能を提供することを中心に構成されています。 このライブラリは"テスト優先"の設計を採用しており、ブラウザベースのテストを伴うシナリオに主眼を置いています。 PlaywrightはPDF生成に対応していますが、この機能は補助的なものであり、専用のPDFツールに見られるような細かな設定はできません。
Playwright for .NETは、主にブラウザの自動化とテストフレームワークであり、PDF生成は二次的な機能です。 PuppeteerSharpと同様に、Playwrightはブラウザのprint-to-PDF機能(Ctrl+Pと同じ)を使ってPDFを生成します。これは、スクリーンレンダリングとは異なり、紙に最適化された印刷用出力を生成します。
テストフレームワークの問題
Playwrightは、ドキュメント生成ではなく、エンドツーエンドのテスト用に設計されています。 このため、PDFに使用する場合、基本的な問題が発生します:
1.初回使用前に400MB以上のブラウザダウンロードが必要です。 Playwrightのデフォルト設定では、複数のブラウザをダウンロードする必要があるため、リソースの制約が厳しい環境では注意が必要です。
2.ブラウザのコンテキストとページ管理による複雑な非同期パターン。 開発者は、ブラウザのコンテキストやページ管理、適切な廃棄方法について熟知する必要があります。
3.テスト優先のアーキテクチャで、ドキュメント生成には最適化されていません。
4.Print-to-PDFの制限 Ctrl+Pのブラウザ印刷と同等です。 レイアウトはリフローされ、背景はデフォルトで省略されます。
5.アクセシビリティ準拠のため、PDF/AまたはPDF/UAはサポートしていません。 Playwrightでは、PDF/A(アーカイブ)またはPDF/UA(アクセシビリティ)に準拠したドキュメントは作成できません。 508条、EUアクセシビリティ指令、または長期保存の要件には、専用のPDFライブラリが必要です。
6.フルブラウザのインスタンスを必要とする、リソースの多い操作。
PlaywrightとIronPDFのパフォーマンス比較
| メトリック | 脚本家 | IronPDF |
|---|---|---|
| 主な目的 | ブラウザテスト | PDF生成 |
| ブラウザのダウンロード | 400MB以上(Chromium、Firefox、WebKit) | 最適化エンジン内蔵 |
| ファーストレンダリング(コールドスタート) | 4.5秒 | 2.8秒 |
| 3.8-4.1秒 | 0.8-1.2秒 | |
| 変換あたりのメモリ。 | 280-420MB | 80~120MB |
| APIの複雑さ | 非同期ブラウザ/コンテキスト/ページライフサイクル | 同期ワンライナー |
| 初期化。 | playwright install + CreateAsync + LaunchAsync | new ChromePdfRenderer(). |
| PDF/Aサポート | 不可 | フルサポート |
| PDF/UAアクセシビリティ。 | 不可 | フルサポート |
| デジタル署名。 | 不可 | フルサポート |
| PDFの編集。 | 不可 | マージ、分割、スタンプ、編集 |
| プロフェッショナルサポート | コミュニティ | SLA付き商用 |
IronPdfはPDF生成に焦点を当てて作られました。 テスト中心のPlaywrightとは異なり、IronPDFはドキュメント中心の様々なAPI機能を提供します。 最適化された1つのChromiumインスタンスに依存し、効率性を重視し、同期と非同期の両方の操作を提供します。 その結果、PDFの機能を必要とする開発者にとって、よりシンプルなメンタルモデルとワークフローが実現します。
2025年と2026年まで.NET 10とC# 14の導入を計画しているチームに対して、IronPDFはより良いパフォーマンスとプロフェッショナルなドキュメント機能を提供しながら、ブラウザの自動化オーバーヘッドを排除する専用PDFソリューションを提供します。
始める前に
前提条件
1..NET環境: .NET Framework 4.6.2+ または .NET Core 3.1+ / .NET 5/6/7/8/9+. 2.NuGetアクセス:NuGetパッケージをインストールする能力。 3.IronPDFライセンス:ironPdf.comからライセンスキーを取得してください。
NuGetパッケージの変更
# Remove Playwright
dotnet remove package Microsoft.Playwright
# Remove browser binaries (reclaim ~400MB disk space)
# Delete the .playwright folder in your project or user directory
# Add IronPDF
dotnet add package IronPdf# Remove Playwright
dotnet remove package Microsoft.Playwright
# Remove browser binaries (reclaim ~400MB disk space)
# Delete the .playwright folder in your project or user directory
# Add IronPDF
dotnet add package IronPdfIronPdfではplaywrightのインストールは不要です。
ライセンス構成
// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";IRON VB CONVERTER ERROR developers@ironsoftware.com完全な API リファレンス
名前空間の変更
// Before: Playwright
using Microsoft.Playwright;
using System.Threading.Tasks;
// After: IronPDF
using IronPdf;
using IronPdf.Rendering;// Before: Playwright
using Microsoft.Playwright;
using System.Threading.Tasks;
// After: IronPDF
using IronPdf;
using IronPdf.Rendering;IRON VB CONVERTER ERROR developers@ironsoftware.comコア API マッピング
| Playwright API | IronPDF API | ノート |
|---|---|---|
Playwright.CreateAsync()。 | new ChromePdfRenderer(). | 非同期は不要 |
playwright.Chromium.LaunchAsync()。 | 不要 | ブラウザ管理なし |
browser.NewPageAsync()。 | 不要 | ページコンテキストなし |
page.GotoAsync(url). | renderer.RenderUrlAsPdf(url)のようにします。 | 直接URLレンダリング |
page.SetContentAsync(html) + page.PdfAsync(). | renderer.RenderHtmlAsPdf(html). | 単一メソッド |
page.CloseAsync()。 | 不要 | 自動クリーンアップ |
browser.CloseAsync()。 | 不要 | 自動クリーンアップ |
| <コード>PagePdfOptions.Format</コード | <コード>RenderingOptions.PaperSize</コード | 用紙サイズ |
| <コード>PagePdfOptions.Margin</コード | RenderingOptions.MarginTop/Bottom/Left/Right。 | 個々の余白 |
PagePdfOptions.DisplayHeaderFooterを使用してください。 | RenderingOptions.TextHeader/TextFooter。 | ヘッダー/フッター |
| <コード>PagePdfOptions.HeaderTemplate</コード | <コード>RenderingOptions.HtmlHeader</コード | HTMLヘッダー |
PagePdfOptions.FooterTemplate<//code> | <コード>RenderingOptions.HtmlFooter</コード | HTMLフッター |
<span> class="pageNumber"> | <コード>{ページ}</コード | ページ番号プレースホルダ |
コード移行の例
例1: HTML文字列からPDFへの変換
ビフォア(脚本家):。
// NuGet: Install-Package Microsoft.Playwright
using Microsoft.Playwright;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
var playwright = await Playwright.CreateAsync();
var browser = await playwright.Chromium.LaunchAsync();
var page = await browser.NewPageAsync();
string html = "<h1>Hello World</h1><p>This is a test PDF.</p>";
await page.SetContentAsync(html);
await page.PdfAsync(new PagePdfOptions { Path = "output.pdf" });
await browser.CloseAsync();
}
}// NuGet: Install-Package Microsoft.Playwright
using Microsoft.Playwright;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
var playwright = await Playwright.CreateAsync();
var browser = await playwright.Chromium.LaunchAsync();
var page = await browser.NewPageAsync();
string html = "<h1>Hello World</h1><p>This is a test PDF.</p>";
await page.SetContentAsync(html);
await page.PdfAsync(new PagePdfOptions { Path = "output.pdf" });
await browser.CloseAsync();
}
}IRON VB CONVERTER ERROR developers@ironsoftware.com翻訳後(IronPDF):。
// NuGet: Install-Package IronPdf
using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
string html = "<h1>Hello World</h1><p>This is a test PDF.</p>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
}
}// NuGet: Install-Package IronPdf
using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
string html = "<h1>Hello World</h1><p>This is a test PDF.</p>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comこの例は、基本的なアーキテクチャの違いを示しています。 Playwrightは5つの非同期操作を必要とします:Playwright.CreateAsync()、Chromium.LaunchAsync()、NewPageAsync()、SetContentAsync()、PdfAsync()、さらにCloseAsync()による明示的なブラウザのクリーンアップです。
IronPDFはこのような複雑さをすべて取り除きます: ChromePdfRendererを作成し、RenderHtmlAsPdf()を呼び出し、SaveAs()します。 非同期パターン、ブラウザライフサイクル、クリーンアップコードはありません。 IronPDFのアプローチは、よりきれいな構文と最新の.NETアプリケーションとのより良い統合を提供します。 包括的な例については、HTML to PDF documentationを参照してください。
例2: URLからPDFへの変換
ビフォア(脚本家):。
// NuGet: Install-Package Microsoft.Playwright
using Microsoft.Playwright;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
var playwright = await Playwright.CreateAsync();
var browser = await playwright.Chromium.LaunchAsync();
var page = await browser.NewPageAsync();
await page.GotoAsync("https://www.example.com");
await page.PdfAsync(new PagePdfOptions
{
Path = "webpage.pdf",
Format = "A4"
});
await browser.CloseAsync();
}
}// NuGet: Install-Package Microsoft.Playwright
using Microsoft.Playwright;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
var playwright = await Playwright.CreateAsync();
var browser = await playwright.Chromium.LaunchAsync();
var page = await browser.NewPageAsync();
await page.GotoAsync("https://www.example.com");
await page.PdfAsync(new PagePdfOptions
{
Path = "webpage.pdf",
Format = "A4"
});
await browser.CloseAsync();
}
}IRON VB CONVERTER ERROR developers@ironsoftware.com翻訳後(IronPDF):。
// NuGet: Install-Package IronPdf
using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf("https://www.example.com");
pdf.SaveAs("webpage.pdf");
}
}// NuGet: Install-Package IronPdf
using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf("https://www.example.com");
pdf.SaveAs("webpage.pdf");
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comPlaywright は、GotoAsync() を使用して、PdfAsync() に続く URL に移動します。 IronPDFは一つのRenderUrlAsPdf()メソッドでナビゲーションとPDF生成を行います。 PlaywrightはPagePdfOptionsでFormatを指定する必要がありますが、IronPDFはRenderingOptions.PaperSizeを使って用紙サイズを設定することに注意してください。 詳しくは、チュートリアルをご覧ください。
例3: 余白を使ったカスタムページサイズ
ビフォア(脚本家):。
// NuGet: Install-Package Microsoft.Playwright
using Microsoft.Playwright;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
using var playwright = await Playwright.CreateAsync();
await using var browser = await playwright.Chromium.LaunchAsync();
var page = await browser.NewPageAsync();
await page.SetContentAsync("<h1>Custom PDF</h1><p>Letter size with margins</p>");
await page.PdfAsync(new PagePdfOptions
{
Path = "custom.pdf",
Format = "Letter",
Margin = new Margin { Top = "1in", Bottom = "1in", Left = "0.5in", Right = "0.5in" }
});
}
}// NuGet: Install-Package Microsoft.Playwright
using Microsoft.Playwright;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
using var playwright = await Playwright.CreateAsync();
await using var browser = await playwright.Chromium.LaunchAsync();
var page = await browser.NewPageAsync();
await page.SetContentAsync("<h1>Custom PDF</h1><p>Letter size with margins</p>");
await page.PdfAsync(new PagePdfOptions
{
Path = "custom.pdf",
Format = "Letter",
Margin = new Margin { Top = "1in", Bottom = "1in", Left = "0.5in", Right = "0.5in" }
});
}
}IRON VB CONVERTER ERROR developers@ironsoftware.com翻訳後(IronPDF):。
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperSize = PdfPaperSize.Letter;
renderer.RenderingOptions.MarginTop = 25;
renderer.RenderingOptions.MarginBottom = 25;
renderer.RenderingOptions.MarginLeft = 12;
renderer.RenderingOptions.MarginRight = 12;
var pdf = renderer.RenderHtmlAsPdf("<h1>Custom PDF</h1><p>Letter size with margins</p>");
pdf.SaveAs("custom.pdf");
}
}// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperSize = PdfPaperSize.Letter;
renderer.RenderingOptions.MarginTop = 25;
renderer.RenderingOptions.MarginBottom = 25;
renderer.RenderingOptions.MarginLeft = 12;
renderer.RenderingOptions.MarginRight = 12;
var pdf = renderer.RenderHtmlAsPdf("<h1>Custom PDF</h1><p>Letter size with margins</p>");
pdf.SaveAs("custom.pdf");
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comPlaywrightは文字列ベースのマージン値("1in", "0.5in")を使用し、IronPDFはミリ単位の数値を使用します。 1インチ=25.4mmなので、"1in"は25となり、"0.5in"は約12となります。 PlaywrightのFormat = "Letter"はIronPDFのPaperSize = PdfPaperSize.Letterに対応します。
例4: ヘッダー、フッター、カスタム設定
ビフォア(脚本家):。
// NuGet: Install-Package Microsoft.Playwright
using Microsoft.Playwright;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
var playwright = await Playwright.CreateAsync();
var browser = await playwright.Chromium.LaunchAsync();
var page = await browser.NewPageAsync();
string html = "<h1>Custom PDF</h1><p>With margins and headers.</p>";
await page.SetContentAsync(html);
await page.PdfAsync(new PagePdfOptions
{
Path = "custom.pdf",
Format = "A4",
Margin = new Margin { Top = "1cm", Bottom = "1cm", Left = "1cm", Right = "1cm" },
DisplayHeaderFooter = true,
HeaderTemplate = "<div style='font-size:10px; text-align:center;'>Header</div>",
FooterTemplate = "<div style='font-size:10px; text-align:center;'>Page <span class='pageNumber'></span></div>"
});
await browser.CloseAsync();
}
}// NuGet: Install-Package Microsoft.Playwright
using Microsoft.Playwright;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
var playwright = await Playwright.CreateAsync();
var browser = await playwright.Chromium.LaunchAsync();
var page = await browser.NewPageAsync();
string html = "<h1>Custom PDF</h1><p>With margins and headers.</p>";
await page.SetContentAsync(html);
await page.PdfAsync(new PagePdfOptions
{
Path = "custom.pdf",
Format = "A4",
Margin = new Margin { Top = "1cm", Bottom = "1cm", Left = "1cm", Right = "1cm" },
DisplayHeaderFooter = true,
HeaderTemplate = "<div style='font-size:10px; text-align:center;'>Header</div>",
FooterTemplate = "<div style='font-size:10px; text-align:center;'>Page <span class='pageNumber'></span></div>"
});
await browser.CloseAsync();
}
}IRON VB CONVERTER ERROR developers@ironsoftware.com翻訳後(IronPDF):。
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.MarginTop = 10;
renderer.RenderingOptions.MarginBottom = 10;
renderer.RenderingOptions.MarginLeft = 10;
renderer.RenderingOptions.MarginRight = 10;
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.TextHeader.CenterText = "Header";
renderer.RenderingOptions.TextFooter.CenterText = "Page {page}";
string html = "<h1>Custom PDF</h1><p>With margins and headers.</p>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("custom.pdf");
}
}// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.MarginTop = 10;
renderer.RenderingOptions.MarginBottom = 10;
renderer.RenderingOptions.MarginLeft = 10;
renderer.RenderingOptions.MarginRight = 10;
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.TextHeader.CenterText = "Header";
renderer.RenderingOptions.TextFooter.CenterText = "Page {page}";
string html = "<h1>Custom PDF</h1><p>With margins and headers.</p>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("custom.pdf");
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comこの例では、ヘッダーとフッターのプレースホルダーの構文の違いを示しています。 PlaywrightはHTMLクラスベースのプレースホルダー(<span> class="pageNumber"></span>) を使用し、IronPDFは中括弧プレースホルダー({page})を使用します。 Playwrightはヘッダー/フッターを有効にするためにDisplayHeaderFooter = trueを要求しますが、IronPDFはヘッダー/フッターコンテンツを設定すると自動的に有効にすることに注意してください。
重要な移行に関する注意事項
非同期から同期への変換
Playwrightは、全体を通してasync/awaitを必要とします; IronPDFは同期操作をサポートしています:
// Playwright: Async required
public async Task<byte[]> GeneratePdfAsync(string html)
{
using var playwright = await Playwright.CreateAsync();
await using var browser = await playwright.Chromium.LaunchAsync();
var page = await browser.NewPageAsync();
await page.SetContentAsync(html);
return await page.PdfAsync();
}
// IronPDF: Sync is simpler
public byte[] GeneratePdf(string html)
{
var renderer = new ChromePdfRenderer();
return renderer.RenderHtmlAsPdf(html).BinaryData;
}// Playwright: Async required
public async Task<byte[]> GeneratePdfAsync(string html)
{
using var playwright = await Playwright.CreateAsync();
await using var browser = await playwright.Chromium.LaunchAsync();
var page = await browser.NewPageAsync();
await page.SetContentAsync(html);
return await page.PdfAsync();
}
// IronPDF: Sync is simpler
public byte[] GeneratePdf(string html)
{
var renderer = new ChromePdfRenderer();
return renderer.RenderHtmlAsPdf(html).BinaryData;
}IRON VB CONVERTER ERROR developers@ironsoftware.comマージン単位の変換
Playwrightは文字列単位を使用します; IronPDFはミリメートルの数値を使用しています:
| 脚本家 | IronPDF (mm) |
|---|---|
| <コード>"1in"</コード | <コード>25</コード |
| <コード>"0.5in"</コード | 12 |
| <コード>"1cm"</コード | 10 |
ヘッダー/フッター プレースホルダーの変換
| 劇作家クラス | IronPDF プレースホルダー |
|---|---|
<span> class="pageNumber"> | <コード>{ページ}</コード |
| <コード> class="totalPages"> | <コード>{総ページ数}</コード |
<span> class="date"> | {date}<//code> |
| <コード> class="title"> | {html-title}<//code> |
ブラウザーのライフサイクルの排除
すべてのブラウザ管理コードを削除してください:
// Playwright: Explicit cleanup required
await page.CloseAsync();
await browser.CloseAsync();
playwright.Dispose();
// IronPDF: No disposal needed - just use the renderer
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");// Playwright: Explicit cleanup required
await page.CloseAsync();
await browser.CloseAsync();
playwright.Dispose();
// IronPDF: No disposal needed - just use the renderer
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");IRON VB CONVERTER ERROR developers@ironsoftware.com移行後の新機能
IronPdfに移行した後は、Playwrightでは提供できない機能を得ることができます:
PDFマージ
var pdf1 = renderer.RenderHtmlAsPdf(html1);
var pdf2 = renderer.RenderHtmlAsPdf(html2);
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");var pdf1 = renderer.RenderHtmlAsPdf(html1);
var pdf2 = renderer.RenderHtmlAsPdf(html2);
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");IRON VB CONVERTER ERROR developers@ironsoftware.comウォーターマーク
pdf.ApplyWatermark("<h1 style='color:red; opacity:0.3;'>DRAFT</h1>");pdf.ApplyWatermark("<h1 style='color:red; opacity:0.3;'>DRAFT</h1>");IRON VB CONVERTER ERROR developers@ironsoftware.comパスワード保護
pdf.SecuritySettings.OwnerPassword = "admin";
pdf.SecuritySettings.UserPassword = "readonly";
pdf.SecuritySettings.AllowUserCopyPasteContent = false;pdf.SecuritySettings.OwnerPassword = "admin";
pdf.SecuritySettings.UserPassword = "readonly";
pdf.SecuritySettings.AllowUserCopyPasteContent = false;IRON VB CONVERTER ERROR developers@ironsoftware.comデジタル署名
var signature = new PdfSignature("certificate.pfx", "password");
pdf.Sign(signature);var signature = new PdfSignature("certificate.pfx", "password");
pdf.Sign(signature);IRON VB CONVERTER ERROR developers@ironsoftware.comPDF/A準拠
pdf.SaveAsPdfA("archive.pdf", PdfAVersions.PdfA3b);pdf.SaveAsPdfA("archive.pdf", PdfAVersions.PdfA3b);IRON VB CONVERTER ERROR developers@ironsoftware.com移行チェックリスト
移行前
- [すべてのPlaywright PDF生成コードを特定する。
- [ドキュメントマージン値(インチ/cmをミリメートルに変換)
- [ヘッダー/フッターのプレースホルダーの構文に注意してください。
- [ironpdf.comからIronPDFライセンスキーを入手してください。
パッケージの変更
- [ ]
Microsoft.PlaywrightNuGet パッケージを削除する。 - [ ]
.playwrightフォルダを削除して、~400MBのディスクスペースを取り戻します。 - [ ]
IronPdfNuGetパッケージをインストールします:dotnet add package IronPdfNuGetパッケージをインストールします。
コードの変更
- [名前空間インポートの更新
- [ブラウザの非同期ライフサイクルを
ChromePdfRendererに置き換えてください。 - [ ]
page.SetContentAsync()+page.PdfAsync()をRenderHtmlAsPdf()に変換する。 - [ ]
page.GotoAsync()+page.PdfAsync()をRenderUrlAsPdf()に変換する。 - [ ] 余白文字列をミリメートル値に変換する
- [ヘッダー/フッターのプレースホルダーの構文を変換してください。
- [すべてのブラウザ/ページ廃棄コードを削除してください。
- [アプリケーション起動時のライセンス初期化機能の追加
移行後
- [PDF 出力の視覚的比較
- [ヘッダー/フッターのレンダリングとページ番号の確認
- [余白とページサイズの正確性をテストする
- [必要に応じて、新しい機能(セキュリティ、透かし、マージ)を追加してください。
結論
Playwright for .NETとIronPDFはどちらも.NETエコシステム内の異なるニーズを満たします。 Playwrightの強みは、テストフレームワークの機能にあり、必要に応じてPDF生成機能で補うことができる。 しかし、もしあなたの主な目的が効率的で高品質なPDFを少ないオーバーヘッドで生成することであれば、IronPDFの方が強力な候補となるでしょう。
この移行における主な変更点は以下のとおりです: 1.アーキテクチャ: PDF機能を持つテストフレームワーク → 目的に応じて構築されたPDFライブラリ 2.複雑さ: 5つ以上の非同期操作 → 3つの同期呼び出し 3.ブラウザ管理:廃棄を伴う手動ライフサイクル → 自動処理 4.パフォーマンス:コールドスタート4.5秒/レンダリング3.8~4.1秒 → コールドスタート2.8秒/レンダリング0.8~1.2秒 5.メモリ: 280-420MB/変換 → 80-120MB/変換 6.ディスク容量: 400MB以上のブラウザダウンロード → 追加ダウンロードゼロ 7.余白: 文字列単位 ("1in") → 数値ミリメートル (25) 8.プレースホルダ:CSS クラス (<span> class="pageNumber">) → 中括弧 ({page}) 9.新機能:PDFマージ、透かし、セキュリティ、電子署名、PDF/Aコンプライアンス
プロジェクトの要件を検討し、優先順位に沿ったライブラリを選択してください。堅牢なテストフレームワークが必要で、その一方でPDF生成も行う必要があるのか、変換速度とリソース効率を最大化するPDF専用ツールが必要なのか、などです。
IronPDFドキュメント、チュートリアル、APIリファレンスをご覧いただき、Playwrightへの移行を加速させてください。






