フッターコンテンツにスキップ
移行ガイド

C#でPrinceXMLからIronPDFに移行する方法

PrinceXMLからIronPDFに移行することで、PDF生成のワークフローが外部のコマンドラインプロセスから.NETネイティブライブラリに変わります。 このガイドは、プロセス管理のオーバーヘッドを排除し、デプロイを簡素化し、生成にとどまらない広範なPDF操作機能を提供する、完全でステップバイステップの移行パスを提供します。

なぜPrinceXMLからIronPDFに移行するのか

PrinceXMLを理解する

PrinceXMLは、CSS Paged Media仕様の専用サポートにより、HTMLコンテンツを印刷に最適なPDF文書に変換することを得意とする洗練されたツールです。 PrinceXMLは、このような専門性に特化しているため、意図した印刷デザインに忠実なドキュメントを作成することができます。

ただし、PrinceXMLは.NETライブラリではなく、独立したコマンドラインツールとして動作するため、純粋な.NETソリューションを好む環境にとっては統合が複雑になる可能性があります。 別のサーバープロセスに依存するため、システムリソースの管理が追加され、プロジェクトの展開が複雑になる可能性があります。

外部プロセスの問題

PrinceXMLは独立したコマンドライン実行ファイルとして動作するため、.NETアプリケーションではアーキテクチャ上の大きな課題が生じます:

1.プロセス管理のオーバーヘッド:外部プロセスを生成、監視、終了する必要があります。

2.ネイティブ.NET統合なし: stdin/stdout または一時ファイルを介して通信します。

3.展開の複雑さ:すべてのサーバーに Prince をインストールする必要があります。

4.サーバーごとのライセンス:展開ごとに個別のライセンスが必要です (495 ドル以上)。

5.エラー処理の難易度:エラー検出のためにテキスト出力を解析します。

  1. Async/Await なし:ブロッキング呼び出しや複雑な非同期ラッパーは必要ありません。

7.パスの依存関係: Prince 実行可能ファイルを PATH または絶対パスで見つける必要があります。

PrinceXMLとIronPDFの比較

アスペクト PrinceXML IronPDF
アーキテクチャ 外部プロセス .NETネイティブライブラリ
統合 コマンドライン ダイレクトAPI
デプロイメント すべてのサーバーにインストール 単一のNuGetパッケージ
エラー処理 テキスト出力の解析 .NET の例外
非同期サポートについて マニュアルラッパー ネイティブasync/await
PDF操作 生成のみ 完全な操作(マージ、分割、編集)
ライセンスについて サーバーあたり(495ドル以上) 開発者1人あたり
更新情報 手動再インストール NuGetアップデート
デバッグ 難易度 完全なデバッガサポート
デジタル署名 なし はい
フォーム なし はい
Dockerサポート 複雑 単純
クラウドファンクション 難易度 簡単

IronPdfは、単なるHTMLからPDFへの変換にとどまらず、編集、マージ、電子署名などの高度なPDF操作タスクも含む、.NETネイティブ機能で代替手段を提供します。 IronPdfのAPIはシンプルで使いやすいように設計されており、開発者は最小限の定型コードで変換や操作を行うことができます。

2025年と2026年まで.NET 10とC# 14の導入を計画しているチームにとって、IronPDFのシームレスな導入は外部依存やサーバープロセスを必要としないため、.NETフレームワークへの統合の負担を軽減します。


始める前に

前提条件

  1. .NET環境: .NET Framework 4.6.2+ または.NET Core 3.1+ / .NET 5/6/7/8/9+
  2. NuGetアクセス: NuGetパッケージをインストールする機能
  3. IronPDFライセンス: IronPDFからライセンスキーを取得します。

NuGetパッケージの変更

# Install IronPDF
dotnet add package IronPdf

# Remove Prince wrapper if using one
dotnet remove package PrinceXMLWrapper
# Install IronPDF
dotnet add package IronPdf

# Remove Prince wrapper if using one
dotnet remove package PrinceXMLWrapper
SHELL

ライセンス構成

// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
' Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
$vbLabelText   $csharpLabel

PrinceXMLの使い方を検索する

# Find Prince process calls
grep -r "prince" --include="*.cs" .
grep -r "Process.Start" --include="*.cs" . | grep -i prince
grep -r "@page" --include="*.css" .
grep -r "prince-" --include="*.css" .
# Find Prince process calls
grep -r "prince" --include="*.cs" .
grep -r "Process.Start" --include="*.cs" . | grep -i prince
grep -r "@page" --include="*.css" .
grep -r "prince-" --include="*.css" .
SHELL

完全な API リファレンス

名前空間の変更

// Before: PrinceXML
using PrinceXMLWrapper;
using System.Diagnostics;
using System.IO;

// After: IronPDF
using IronPdf;
// Before: PrinceXML
using PrinceXMLWrapper;
using System.Diagnostics;
using System.IO;

// After: IronPDF
using IronPdf;
' Before: PrinceXML
Imports PrinceXMLWrapper
Imports System.Diagnostics
Imports System.IO

' After: IronPDF
Imports IronPdf
$vbLabelText   $csharpLabel

コマンドラインからメソッドへのマッピング

プリンスコマンド IronPDF 同等物
prince input.html -o output.pdf renderer.RenderHtmlFileAsPdf("input.html").SaveAs("output.pdf")
prince --style=custom.css input.html HTML に CSS を含めるか、RenderingOptions を使用します
prince --javascript renderer.RenderingOptions.EnableJavaScript = true
prince --no-javascript renderer.RenderingOptions.EnableJavaScript = false
prince --page-size=Letter renderer.RenderingOptions.PaperSize = PdfPaperSize.Letter
prince --page-margin=1in renderer.RenderingOptions.MarginTop = 72 (72ポイント = 1インチ)
prince --encrypt pdf.SecuritySettings.OwnerPassword = "..."
prince --user-password=pw pdf.SecuritySettings.UserPassword = "pw"
prince --disallow-print pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.NoPrint
prince --disallow-copy pdf.SecuritySettings.AllowUserCopyPasteContent = false
prince --baseurl=http://... renderer.RenderingOptions.BaseUrl = new Uri("http://...")
prince --media=print renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print
prince --media=screen renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Screen

CSSの@pageからRenderingOptionsへのマッピング

CSS @ページプロパティ IronPDF 同等物
size: A4 PaperSize = PdfPaperSize.A4
size: Letter PaperSize = PdfPaperSize.Letter
size:A4landscape PaperSize = PdfPaperSize.A4 + PaperOrientation = Landscape
margin: 2cm MarginTop/Bottom/Left/Right = 56
margin-top: 1in MarginTop = 72
@top-center { content: "..." } HtmlHeader 中央揃えの div
@bottom-right { content: counter(page) } HtmlFooter{page} のプレースホルダ

ページ サイズの変換

サイズ ポイント ミリメートル
レター 612 x 792 216 x 279
A4 595 x 842 210 x 297
リーガル 612 x 1008 216 x 356
1インチ 72 25.4
1cm 28.35 10

コード移行の例

例1: HTMLファイルからPDFへの変換

翻訳前 (PrinceXML):

// NuGet: Install-Package PrinceXMLWrapper
using PrinceXMLWrapper;
using System;

class Program
{
    static void Main()
    {
        Prince prince = new Prince("C:\\Program Files\\Prince\\engine\\bin\\prince.exe");
        prince.Convert("input.html", "output.pdf");
        Console.WriteLine("PDF created successfully");
    }
}
// NuGet: Install-Package PrinceXMLWrapper
using PrinceXMLWrapper;
using System;

class Program
{
    static void Main()
    {
        Prince prince = new Prince("C:\\Program Files\\Prince\\engine\\bin\\prince.exe");
        prince.Convert("input.html", "output.pdf");
        Console.WriteLine("PDF created successfully");
    }
}
Imports PrinceXMLWrapper
Imports System

Module Program
    Sub Main()
        Dim prince As New Prince("C:\Program Files\Prince\engine\bin\prince.exe")
        prince.Convert("input.html", "output.pdf")
        Console.WriteLine("PDF created successfully")
    End Sub
End Module
$vbLabelText   $csharpLabel

翻訳後(IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlFileAsPdf("input.html");
        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 pdf = renderer.RenderHtmlFileAsPdf("input.html");
        pdf.SaveAs("output.pdf");
        Console.WriteLine("PDF created successfully");
    }
}
Imports IronPdf
Imports System

Class Program
    Shared Sub Main()
        Dim renderer = New ChromePdfRenderer()
        Dim pdf = renderer.RenderHtmlFileAsPdf("input.html")
        pdf.SaveAs("output.pdf")
        Console.WriteLine("PDF created successfully")
    End Sub
End Class
$vbLabelText   $csharpLabel

この例は、基本的なアーキテクチャの違いを示しています。PrinceXMLでは、実行可能ファイルへの完全なパス ("C:\\Program Files\\Prince\\engine\\bin\\prince.exe") を使用して Prince オブジェクトをインスタンス化し、次に入力パスと出力パスを使用して Convert() を呼び出す必要があります。

IronPDF はパス依存性を完全に排除します。つまり、ChromePdfRenderer を作成し、HTML ファイル パスを使用して RenderHtmlFileAsPdf() を呼び出し、SaveAs() で結果を書き込みます。 実行可能パス、プロセス管理、パス依存性はありません。 包括的な例については、HTML to PDF documentationを参照してください。

例2: オプションを使用したURLからPDFへの変換

翻訳前 (PrinceXML):

// NuGet: Install-Package PrinceXMLWrapper
using PrinceXMLWrapper;
using System;

class Program
{
    static void Main()
    {
        Prince prince = new Prince("C:\\Program Files\\Prince\\engine\\bin\\prince.exe");
        prince.SetJavaScript(true);
        prince.SetEncrypt(true);
        prince.SetPDFTitle("Website Export");
        prince.Convert("https://example.com", "webpage.pdf");
        Console.WriteLine("URL converted to PDF");
    }
}
// NuGet: Install-Package PrinceXMLWrapper
using PrinceXMLWrapper;
using System;

class Program
{
    static void Main()
    {
        Prince prince = new Prince("C:\\Program Files\\Prince\\engine\\bin\\prince.exe");
        prince.SetJavaScript(true);
        prince.SetEncrypt(true);
        prince.SetPDFTitle("Website Export");
        prince.Convert("https://example.com", "webpage.pdf");
        Console.WriteLine("URL converted to PDF");
    }
}
Imports PrinceXMLWrapper
Imports System

Class Program
    Shared Sub Main()
        Dim prince As New Prince("C:\Program Files\Prince\engine\bin\prince.exe")
        prince.SetJavaScript(True)
        prince.SetEncrypt(True)
        prince.SetPDFTitle("Website Export")
        prince.Convert("https://example.com", "webpage.pdf")
        Console.WriteLine("URL converted to PDF")
    End Sub
End Class
$vbLabelText   $csharpLabel

翻訳後(IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.EnableJavaScript = true;
        renderer.RenderingOptions.PdfTitle = "Website Export";

        var pdf = renderer.RenderUrlAsPdf("https://example.com");
        pdf.Encrypt("password");
        pdf.SaveAs("webpage.pdf");
        Console.WriteLine("URL converted to PDF");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.EnableJavaScript = true;
        renderer.RenderingOptions.PdfTitle = "Website Export";

        var pdf = renderer.RenderUrlAsPdf("https://example.com");
        pdf.Encrypt("password");
        pdf.SaveAs("webpage.pdf");
        Console.WriteLine("URL converted to PDF");
    }
}
Imports IronPdf
Imports System

Class Program
    Shared Sub Main()
        Dim renderer = New ChromePdfRenderer()
        renderer.RenderingOptions.EnableJavaScript = True
        renderer.RenderingOptions.PdfTitle = "Website Export"

        Dim pdf = renderer.RenderUrlAsPdf("https://example.com")
        pdf.Encrypt("password")
        pdf.SaveAs("webpage.pdf")
        Console.WriteLine("URL converted to PDF")
    End Sub
End Class
$vbLabelText   $csharpLabel

この例では、PrinceXMLのオプションとIronPDFのプロパティの対応を示しています。PrinceXMLは、変換前に setter メソッド (SetPDFTitle()) を使用します。IronPDFは、レンダリング前設定に RenderingOptions プロパティを使用し、PdfDocument オブジェクトでは Encrypt() のようなレンダリング後メソッドを使用します。

主なマッピング

  • prince.SetJavaScript(true)renderer.RenderingOptions.EnableJavaScript = true
  • prince.SetPDFTitle("...")renderer.RenderingOptions.PdfTitle = "..."
  • prince.SetEncrypt(true)pdf.Encrypt("password") (IronPDF にはパスワードが必要です)

詳しくは、チュートリアルをご覧ください。

例3: HTML文字列からPDFへの変換

翻訳前 (PrinceXML):

// NuGet: Install-Package PrinceXMLWrapper
using PrinceXMLWrapper;
using System;
using System.IO;

class Program
{
    static void Main()
    {
        string html = "<html><head><style>body { font-family: Arial; color: blue; }</style></head><body><h1>Hello World</h1></body></html>";
        File.WriteAllText("temp.html", html);

        Prince prince = new Prince("C:\\Program Files\\Prince\\engine\\bin\\prince.exe");
        prince.Convert("temp.html", "styled-output.pdf");
        Console.WriteLine("Styled PDF created");
    }
}
// NuGet: Install-Package PrinceXMLWrapper
using PrinceXMLWrapper;
using System;
using System.IO;

class Program
{
    static void Main()
    {
        string html = "<html><head><style>body { font-family: Arial; color: blue; }</style></head><body><h1>Hello World</h1></body></html>";
        File.WriteAllText("temp.html", html);

        Prince prince = new Prince("C:\\Program Files\\Prince\\engine\\bin\\prince.exe");
        prince.Convert("temp.html", "styled-output.pdf");
        Console.WriteLine("Styled PDF created");
    }
}
Imports PrinceXMLWrapper
Imports System
Imports System.IO

Module Program
    Sub Main()
        Dim html As String = "<html><head><style>body { font-family: Arial; color: blue; }</style></head><body><h1>Hello World</h1></body></html>"
        File.WriteAllText("temp.html", html)

        Dim prince As New Prince("C:\Program Files\Prince\engine\bin\prince.exe")
        prince.Convert("temp.html", "styled-output.pdf")
        Console.WriteLine("Styled PDF created")
    End Sub
End Module
$vbLabelText   $csharpLabel

翻訳後(IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        string html = "<html><head><style>body { font-family: Arial; color: blue; }</style></head><body><h1>Hello World</h1></body></html>";

        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("styled-output.pdf");
        Console.WriteLine("Styled PDF created");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        string html = "<html><head><style>body { font-family: Arial; color: blue; }</style></head><body><h1>Hello World</h1></body></html>";

        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("styled-output.pdf");
        Console.WriteLine("Styled PDF created");
    }
}
Imports IronPdf
Imports System

Class Program
    Shared Sub Main()
        Dim html As String = "<html><head><style>body { font-family: Arial; color: blue; }</style></head><body><h1>Hello World</h1></body></html>"

        Dim renderer = New ChromePdfRenderer()
        Dim pdf = renderer.RenderHtmlAsPdf(html)
        pdf.SaveAs("styled-output.pdf")
        Console.WriteLine("Styled PDF created")
    End Sub
End Class
$vbLabelText   $csharpLabel

この例では、重要な違いが強調されています。PrinceXML ではファイル入力が必要なので、変換前に一時ファイル (File.WriteAllText("temp.html", html)) を作成する必要があります。IronPDFの RenderHtmlAsPdf() は HTML 文字列を直接受け入れます。一時ファイル、クリーンアップ コード、ディスク I/O オーバーヘッドはありません。


CSSページングされたメディアを移行する

PrinceXMLのCSS Paged Mediaのサポートは強力ですが、Prince固有のCSSを使用するため、ベンダーロックインが発生します:

PrinceXML CSS:

@page {
    size: A4;
    margin: 2cm;
    @top-center {
        content: "Document Title";
    }
    @bottom-right {
        content: counter(page);
    }
}

/* Prince-specific extensions */
prince-pdf-page-label: "Chapter " counter(chapter);
prince-pdf-destination: attr(id);

IronPDF C# (相当):

renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.MarginTop = 56;    // ~2cm
renderer.RenderingOptions.MarginBottom = 56;
renderer.RenderingOptions.MarginLeft = 56;
renderer.RenderingOptions.MarginRight = 56;

renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
{
    HtmlFragment = "<div style='text-align:center;'>Document Title</div>",
    MaxHeight = 40
};

renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
{
    HtmlFragment = "<div style='text-align:right;'>Page {page} of {total-pages}</div>",
    MaxHeight = 25
};
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.MarginTop = 56;    // ~2cm
renderer.RenderingOptions.MarginBottom = 56;
renderer.RenderingOptions.MarginLeft = 56;
renderer.RenderingOptions.MarginRight = 56;

renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
{
    HtmlFragment = "<div style='text-align:center;'>Document Title</div>",
    MaxHeight = 40
};

renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
{
    HtmlFragment = "<div style='text-align:right;'>Page {page} of {total-pages}</div>",
    MaxHeight = 25
};
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
renderer.RenderingOptions.MarginTop = 56    ' ~2cm
renderer.RenderingOptions.MarginBottom = 56
renderer.RenderingOptions.MarginLeft = 56
renderer.RenderingOptions.MarginRight = 56

renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter With {
    .HtmlFragment = "<div style='text-align:center;'>Document Title</div>",
    .MaxHeight = 40
}

renderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooter With {
    .HtmlFragment = "<div style='text-align:right;'>Page {page} of {total-pages}</div>",
    .MaxHeight = 25
}
$vbLabelText   $csharpLabel

よくある CSS 移行の問題

課題1: CSSの@ページが動作しない

IronPDFはChromiumを使用しており、@ページのサポートに制限があります。 CSSルールをRenderingOptionsに変換する。

課題2:ページの余白ボックスが見つからない

CSS マージン ボックス (@bottom-right) は Prince 固有です。 代わりに HtmlFooter を使用してください。

問題3: 文字列セット/コンテンツが動作しない

string-set CSS プロパティは Prince 固有です。 <title> タグの {html-title} プレースホルダーを使用します。

<title>Chapter 1: Introduction</title>
<title>Chapter 1: Introduction</title>
HTML
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
{
    HtmlFragment = "<div>{html-title}</div>"
};
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
{
    HtmlFragment = "<div>{html-title}</div>"
};
$vbLabelText   $csharpLabel

課題4:カウンター(ページ)が間違っている

CSS カウンターの代わりにIronPDFの {total-pages} プレースホルダーを使用します。


パフォーマンス比較

手術 PrinceXML IronPDF
シンプルなHTML ~400ms ~300ms
複雑なCSS ~600ms ~400ms
JavaScriptページ 制限的 ~500ms
大型文書 ~1500ms ~1000ms
コンカレント (10) ~4000ms ~1500ms
スタートアップのオーバーヘッド ~200ms ~50ms

移行後の新機能

IronPDFに移行することで、PrinceXMLでは提供できない機能を得ることができます:

PDFマージ

var pdf1 = PdfDocument.FromFile("chapter1.pdf");
var pdf2 = PdfDocument.FromFile("chapter2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("complete_book.pdf");
var pdf1 = PdfDocument.FromFile("chapter1.pdf");
var pdf2 = PdfDocument.FromFile("chapter2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("complete_book.pdf");
Dim pdf1 = PdfDocument.FromFile("chapter1.pdf")
Dim pdf2 = PdfDocument.FromFile("chapter2.pdf")
Dim merged = PdfDocument.Merge(pdf1, pdf2)
merged.SaveAs("complete_book.pdf")
$vbLabelText   $csharpLabel

ウォーターマーク

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
$vbLabelText   $csharpLabel

デジタル署名

var signature = new PdfSignature("certificate.pfx", "password");
pdf.Sign(signature);
var signature = new PdfSignature("certificate.pfx", "password");
pdf.Sign(signature);
Dim signature = New PdfSignature("certificate.pfx", "password")
pdf.Sign(signature)
$vbLabelText   $csharpLabel

フォーム入力

var pdf = PdfDocument.FromFile("form.pdf");
pdf.Form.GetFieldByName("Name").Value = "John Doe";
pdf.SaveAs("filled_form.pdf");
var pdf = PdfDocument.FromFile("form.pdf");
pdf.Form.GetFieldByName("Name").Value = "John Doe";
pdf.SaveAs("filled_form.pdf");
Dim pdf = PdfDocument.FromFile("form.pdf")
pdf.Form.GetFieldByName("Name").Value = "John Doe"
pdf.SaveAs("filled_form.pdf")
$vbLabelText   $csharpLabel

機能比較の概要

フィーチャー PrinceXML IronPDF
.NET ネイティブ なし はい
外部プロセス 必須 なし
非同期サポート マニュアルラッピング ネイティブasync/await
CSSページングメディア サポート対象 レンダリングオプション経由
CSSグリッド はい はい
フレックスボックス はい はい
JavaScript 制限的 フルES2024
世代 はい はい
マージ なし はい
分割 なし はい
編集 なし はい
透かし CSSのみ HTML/CSS + API
デジタル署名 なし はい
PDF/A はい はい
暗号化 はい はい
フォーム なし はい
NuGetパッケージ なし はい
サーバーインストール 必須 なし

移行チェックリスト

移行前

  • すべてのPrinceコマンドライン呼び出しを識別する
  • 使用されているドキュメント CSS @page ルール
  • Prince 固有の CSS プロパティを一覧表示します (string-set)
  • Prince for JavaScript関数をメモする
  • 使用されているPDF機能(暗号化、メタデータ)を特定する
  • IronPDFからIronPDFライセンスキーを取得します

コードの変更

  • PrinceXMLWrapper NuGetパッケージを削除します
  • IronPdf NuGetパッケージをインストールします
  • 名前空間のインポートを更新する
  • Prince インスタンス化を ChromePdfRenderer に置き換えます
  • prince.Convert()RenderHtmlFileAsPdf() または RenderHtmlAsPdf() に置き換えます
  • セッターメソッドをRenderingOptionsプロパティに変換します
  • @page CSS を RenderingOptions に移行します
  • 余白ボックスを HtmlFooter に置き換えます
  • CSS カウンターを {total-pages} プレースホルダーに変換します
  • HTML文字列の一時ファイル処理を削除
  • アプリケーションの起動時にライセンスの初期化を追加

移行後

  • HTMLファイルの変換をテストする
  • HTML文字列の変換をテストする
  • URL変換をテストする
  • ページサイズが一致していることを確認する
  • 余白が一致していることを確認する
  • ヘッダーとフッターをテストする
  • ページ番号を確認する
  • 暗号化/セキュリティのテスト
  • サーバーからPrinceのインストールを削除する
  • デプロイメントスクリプトを更新する

カーティス・チャウ
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。

アイアンサポートチーム

私たちは週5日、24時間オンラインで対応しています。
チャット
メール
電話してね