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

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

PDFreactorからIronPDFに移行することで、.NETネイティブライブラリを通して同等のHTMLからPDFへの変換機能を提供しながら、Java依存とサーバーインフラを排除します。 このガイドでは、Javaベースのサーバーアーキテクチャを.NETアプリケーションにシームレスに統合するインプロセスライブラリに置き換える、完全でステップバイステップの移行パスを提供します。

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

PDFreactorについて

PDFreactorは、さまざまなプラットフォームに統合された強力なHTMLからPDFへの変換サーバーです。 商用ソリューションとして、PDFreactorは独自の技術を活用し、HTMLとCSSコンテンツを高品質のPDFドキュメントに変換します。 特筆すべき属性として、PDFreactorは幅広いCSSプロパティに対応しており、複雑なレイアウトレンダリングの有力な候補となります。

しかし、PDFreactorがJavaに依存しているため、.NET環境では、その非ネイティブの性質がデプロイと統合を複雑にする可能性があるという課題があります。 Javaに依存しているため、.NETアプリケーションに余分なオーバーヘッドが発生し、追加の統合作業が必要になることがよくあります。

Javaの依存性の問題

PDFreactorのアーキテクチャは、.NET環境においていくつかの課題を生み出します:

  1. Java ランタイムが必要:すべてのサーバーに JRE/JDK がインストールされている必要があります。

2.サーバー アーキテクチャ:追加のインフラストラクチャを必要とする個別のサービスとして実行されます。 サーバーベースのソリューションとして、PDFreactorはすべての変換にREST APIコールを必要とします。

3.複雑な展開:主に.NETエコシステムで Java の依存関係を管理すると、セットアップが複雑になり、メンテナンス コストが増加する可能性があります。 CI/CDパイプラインで管理する2つのランタイム(Java + .NET)。

4.プロセス間通信: REST API またはソケット通信により遅延が発生します。 すべてのPDF変換には、サーバーへのHTTPラウンドトリップが必要です。

5.個別のライセンス管理:ライセンスはアプリケーションではなくサーバー インスタンスにバインドされます。 Javaサービスインスタンスに関連付けられたサーバーごとのライセンス。

6.リソースの分離:プロセス メモリと CPU 管理を分離します。 監視、拡張、保守のための追加サーバー。

PDFreactorとIronPDFの比較

特徴/側面 PDFreactor IronPDF
ネイティブ.NETライブラリ なし(Javaベース) はい
ランタイム Java(外部サーバー) .NET ネイティブ(進行中)
アーキテクチャ REST API サービス NuGetライブラリ
デプロイメント Java + サーバー設定 単一のNuGetパッケージ
依存関係について JRE + HTTPクライアント 自己完結型
レイテンシーについて ネットワーク往復 直接メソッド呼び出し
クロスプラットフォーム対応 可(Javaに依存) はい(バンドルされているChromium)
CSSサポート CSS3、CSS Paged Mediaの高度なサポート 包括的なHTML5/CSS3のサポート
展開の複雑さ Javaのため、より複雑 シンプル、.NETと直接統合
PDF操作の特徴 基本(生成のみ) マージ、分割、編集、注釈を含む広範囲な作業

PDFreactorとは対照的に、IronPDFはネイティブ for .NETライブラリであり、Javaのような外部依存なしに.NETプロジェクトにシームレスに統合できるように設計されています。 IronPdfはバンドルされているChromiumレンダリングエンジンを使用しており、わずか数行のコードでHTMLをPDFに変換することができます。

2025年と2026年まで.NET 10とC# 14の導入を計画しているチームにとって、IronPDFは包括的なPDFライフサイクル管理を提供しながらJavaサーバーの複雑さを解消する.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パッケージの変更

# RemovePDFreactorNuGet packages
dotnet remove package PDFreactor.NET
dotnet remove package PDFreactor.Native.Windows.x64

# StopPDFreactorserver service (if running locally)
# Windows: net stop PDFreactor
# Linux: sudo systemctl stop pdfreactor

# Install IronPDF
dotnet add package IronPdf
# RemovePDFreactorNuGet packages
dotnet remove package PDFreactor.NET
dotnet remove package PDFreactor.Native.Windows.x64

# StopPDFreactorserver service (if running locally)
# Windows: net stop PDFreactor
# Linux: sudo systemctl stop pdfreactor

# Install IronPDF
dotnet add package IronPdf
SHELL

ライセンス構成

PDFreactor(サーバーベース):

// License configured on server via config file or command line
// Client connects to licensed server
var pdfReactor = new PDFreactor("http://pdfreactor-server:9423");
// License configured on server via config file or command line
// Client connects to licensed server
var pdfReactor = new PDFreactor("http://pdfreactor-server:9423");
' License configured on server via config file or command line
' Client connects to licensed server
Dim pdfReactor = New PDFreactor("http://pdfreactor-server:9423")
$vbLabelText   $csharpLabel

IronPDF(アプリケーションレベル):

// One-time setup at application startup
IronPdf.License.LicenseKey = "YOUR-IRONPDF-LICENSE-KEY";
// One-time setup at application startup
IronPdf.License.LicenseKey = "YOUR-IRONPDF-LICENSE-KEY";
' One-time setup at application startup
IronPdf.License.LicenseKey = "YOUR-IRONPDF-LICENSE-KEY"
$vbLabelText   $csharpLabel

PDFreactorの使用法を特定する

# FindPDFreactorusage
grep -r "PDFreactor\|RealObjects\|Configuration.*Document" --include="*.cs" .

# FindCSSページングメディアrules to convert
grep -r "@page\|counter(page)\|counter(pages)" --include="*.cs" --include="*.css" .
# FindPDFreactorusage
grep -r "PDFreactor\|RealObjects\|Configuration.*Document" --include="*.cs" .

# FindCSSページングメディアrules to convert
grep -r "@page\|counter(page)\|counter(pages)" --include="*.cs" --include="*.css" .
SHELL

完全な API リファレンス

名前空間の変更

// Before: PDFreactor
using RealObjects.PDFreactor;
using System.IO;

// After: IronPDF
using IronPdf;
using IronPdf.Rendering;
// Before: PDFreactor
using RealObjects.PDFreactor;
using System.IO;

// After: IronPDF
using IronPdf;
using IronPdf.Rendering;
Imports IronPdf
Imports IronPdf.Rendering
Imports System.IO
$vbLabelText   $csharpLabel

コア クラス マッピング

PDFreactor IronPDF
PDFreactor ChromePdfRenderer
Configuration ChromePdfRenderOptions
Result PdfDocument
config.Document = html renderer.RenderHtmlAsPdf(html)
result.Document (バイト[]) pdf.BinaryData

構成プロパティのマッピング

PDFreactorの構成 IronPDF レンダリングオプション
config.Document = html renderer.RenderHtmlAsPdf(html)
config.Document = url renderer.RenderUrlAsPdf(url)
config.PageFormat = PageFormat.A4 RenderingOptions.PaperSize = PdfPaperSize.A4
config.PageOrientation RenderingOptions.PaperOrientation
config.PageMargins RenderingOptions.MarginTop/Bottom/Left/Right
config.EnableJavaScript = true RenderingOptions.EnableJavaScript = true
config.AddUserStyleSheet(css) HTMLにCSSを埋め込む
config.Title pdf.MetaData.Title
config.Encryption pdf.SecuritySettings

PDFreactorでは利用できない新機能

IronPDFの特徴 翻訳内容
PdfDocument.Merge() 複数のPDFをマージ
pdf.ApplyWatermark() 透かしの追加
pdf.ExtractAllText() テキスト抽出
pdf.Form フォーム入力
pdf.Sign() デジタル署名

コード移行の例

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

翻訳前 (PDFreactor):

// NuGet: Install-Package PDFreactor.Native.Windows.x64
using RealObjects.PDFreactor;
using System.IO;

class Program
{
    static void Main()
    {
       PDFreactorpdfReactor = new PDFreactor();

        string html = "<html><body><h1>Hello World</h1></body></html>";

        Configuration config = new Configuration();
        config.Document = html;

        Result result = pdfReactor.Convert(config);

        File.WriteAllBytes("output.pdf", result.Document);
    }
}
// NuGet: Install-Package PDFreactor.Native.Windows.x64
using RealObjects.PDFreactor;
using System.IO;

class Program
{
    static void Main()
    {
       PDFreactorpdfReactor = new PDFreactor();

        string html = "<html><body><h1>Hello World</h1></body></html>";

        Configuration config = new Configuration();
        config.Document = html;

        Result result = pdfReactor.Convert(config);

        File.WriteAllBytes("output.pdf", result.Document);
    }
}
Imports RealObjects.PDFreactor
Imports System.IO

Module Program
    Sub Main()
        Dim pdfReactor As New PDFreactor()

        Dim html As String = "<html><body><h1>Hello World</h1></body></html>"

        Dim config As New Configuration()
        config.Document = html

        Dim result As Result = pdfReactor.Convert(config)

        File.WriteAllBytes("output.pdf", result.Document)
    End Sub
End Module
$vbLabelText   $csharpLabel

翻訳後(IronPDF):

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

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();

        string html = "<html><body><h1>Hello World</h1></body></html>";

        var pdf = renderer.RenderHtmlAsPdf(html);

        pdf.SaveAs("output.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();

        string html = "<html><body><h1>Hello World</h1></body></html>";

        var pdf = renderer.RenderHtmlAsPdf(html);

        pdf.SaveAs("output.pdf");
    }
}
Imports IronPdf
Imports System

Class Program
    Shared Sub Main()
        Dim renderer = New ChromePdfRenderer()

        Dim html As String = "<html><body><h1>Hello World</h1></body></html>"

        Dim pdf = renderer.RenderHtmlAsPdf(html)

        pdf.SaveAs("output.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

基本的な違いは、アーキテクチャ・パターンです。PDFreactorでは、Java サーバーに接続する PDFreactor インスタンス、設定と HTML コンテンツを保持する別の Configuration オブジェクトの作成、Result オブジェクトを返す Convert() の呼び出し、そして最後に File.WriteAllBytes() を使用してファイルに result.Document バイトの書き込みが必要です。

IronPDF はこれを簡素化して、ChromePdfRenderer を作成し、HTML 文字列で RenderHtmlAsPdf() を直接呼び出し、返された PdfDocument で組み込みの SaveAs() メソッドを使用します。 サーバー接続、設定オブジェクト、手動でのバイト処理はありません。 包括的な例については、HTML to PDF documentationを参照してください。

例2: URLからPDFへの変換

翻訳前 (PDFreactor):

// NuGet: Install-Package PDFreactor.Native.Windows.x64
using RealObjects.PDFreactor;
using System.IO;

class Program
{
    static void Main()
    {
       PDFreactorpdfReactor = new PDFreactor();

        Configuration config = new Configuration();
        config.Document = "https://www.example.com";

        Result result = pdfReactor.Convert(config);

        File.WriteAllBytes("webpage.pdf", result.Document);
    }
}
// NuGet: Install-Package PDFreactor.Native.Windows.x64
using RealObjects.PDFreactor;
using System.IO;

class Program
{
    static void Main()
    {
       PDFreactorpdfReactor = new PDFreactor();

        Configuration config = new Configuration();
        config.Document = "https://www.example.com";

        Result result = pdfReactor.Convert(config);

        File.WriteAllBytes("webpage.pdf", result.Document);
    }
}
Imports RealObjects.PDFreactor
Imports System.IO

Class Program
    Shared Sub Main()
        Dim pdfReactor As New PDFreactor()

        Dim config As New Configuration()
        config.Document = "https://www.example.com"

        Dim result As Result = pdfReactor.Convert(config)

        File.WriteAllBytes("webpage.pdf", result.Document)
    End Sub
End Class
$vbLabelText   $csharpLabel

翻訳後(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");
    }
}
// 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");
    }
}
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")
    End Sub
End Class
$vbLabelText   $csharpLabel

PDFreactor は、HTML 文字列と URL の両方に同じ config.Document プロパティを使用して、タイプを自動的に決定します。IronPDFは明示的なメソッドを提供します: HTML 文字列の場合は RenderHtmlAsPdf()、URL の場合は RenderUrlAsPdf()。 この明示的なアプローチにより、コードの明快さとインテリセンスのサポートが向上します。 詳しくは、チュートリアルをご覧ください。

例3:ページ番号を含むヘッダーとフッター

翻訳前 (PDFreactor):

// NuGet: Install-Package PDFreactor.Native.Windows.x64
using RealObjects.PDFreactor;
using System.IO;

class Program
{
    static void Main()
    {
       PDFreactorpdfReactor = new PDFreactor();

        string html = "<html><body><h1>Document with Headers</h1><p>Content here</p></body></html>";

        Configuration config = new Configuration();
        config.Document = html;
        config.AddUserStyleSheet("@page { @top-center { content: 'Header Text'; } @bottom-center { content: 'Page ' counter(page); } }");

        Result result = pdfReactor.Convert(config);

        File.WriteAllBytes("document.pdf", result.Document);
    }
}
// NuGet: Install-Package PDFreactor.Native.Windows.x64
using RealObjects.PDFreactor;
using System.IO;

class Program
{
    static void Main()
    {
       PDFreactorpdfReactor = new PDFreactor();

        string html = "<html><body><h1>Document with Headers</h1><p>Content here</p></body></html>";

        Configuration config = new Configuration();
        config.Document = html;
        config.AddUserStyleSheet("@page { @top-center { content: 'Header Text'; } @bottom-center { content: 'Page ' counter(page); } }");

        Result result = pdfReactor.Convert(config);

        File.WriteAllBytes("document.pdf", result.Document);
    }
}
Imports RealObjects.PDFreactor
Imports System.IO

Module Program
    Sub Main()
        Dim pdfReactor As New PDFreactor()

        Dim html As String = "<html><body><h1>Document with Headers</h1><p>Content here</p></body></html>"

        Dim config As New Configuration()
        config.Document = html
        config.AddUserStyleSheet("@page { @top-center { content: 'Header Text'; } @bottom-center { content: 'Page ' counter(page); } }")

        Dim result As Result = pdfReactor.Convert(config)

        File.WriteAllBytes("document.pdf", result.Document)
    End Sub
End Module
$vbLabelText   $csharpLabel

翻訳後(IronPDF):

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

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();

        renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
        {
            CenterText = "Header Text"
        };

        renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
        {
            CenterText = "Page {page}"
        };

        string html = "<html><body><h1>Document with Headers</h1><p>Content here</p></body></html>";

        var pdf = renderer.RenderHtmlAsPdf(html);

        pdf.SaveAs("document.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();

        renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
        {
            CenterText = "Header Text"
        };

        renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
        {
            CenterText = "Page {page}"
        };

        string html = "<html><body><h1>Document with Headers</h1><p>Content here</p></body></html>";

        var pdf = renderer.RenderHtmlAsPdf(html);

        pdf.SaveAs("document.pdf");
    }
}
Imports IronPdf
Imports IronPdf.Rendering
Imports System

Module Program
    Sub Main()
        Dim renderer As New ChromePdfRenderer()

        renderer.RenderingOptions.TextHeader = New TextHeaderFooter() With {
            .CenterText = "Header Text"
        }

        renderer.RenderingOptions.TextFooter = New TextHeaderFooter() With {
            .CenterText = "Page {page}"
        }

        Dim html As String = "<html><body><h1>Document with Headers</h1><p>Content here</p></body></html>"

        Dim pdf = renderer.RenderHtmlAsPdf(html)

        pdf.SaveAs("document.pdf")
    End Sub
End Module
$vbLabelText   $csharpLabel

この例は、最も重要な構文の違いを示しています。PDFreactorは、@page ルール、@bottom-center 領域、および AddUserStyleSheet() を介して挿入されたページ番号用の counter(page) を含むCSSページングメディア構文を使用します。

IronPDF は、TextHeaderFooter オブジェクトが RenderingOptions.TextHeader および RenderingOptions.TextFooter に割り当てられたネイティブ.NET API を使用します。 ページ番号では、CSS counter(page) ではなく、{page} プレースホルダーが使用されます。 IronPDF、ヘッダー/フッター クラス用に IronPdf.Rendering 名前空間もインポートする必要があることに注意してください。


重要な移行に関する注意事項

サーバーは必要ありません

IronPdfはインプロセスで動作します。Javaサーバーを設定する必要はありません:

// PDFreactor: Requires server connection
var pdfReactor = new PDFreactor("http://localhost:9423");

// IronPDF: No server URL needed
var renderer = new ChromePdfRenderer();
// PDFreactor: Requires server connection
var pdfReactor = new PDFreactor("http://localhost:9423");

// IronPDF: No server URL needed
var renderer = new ChromePdfRenderer();
' PDFreactor: Requires server connection
Dim pdfReactor = New PDFreactor("http://localhost:9423")

' IronPDF: No server URL needed
Dim renderer = New ChromePdfRenderer()
$vbLabelText   $csharpLabel

CSSページドメディアからIronPDF APIへ

CSS @page ルールを RenderingOptions に置き換えます。

//PDFreactorCSS: @page { @bottom-center { content: 'Page ' counter(page); } }
//IronPDFequivalent:
renderer.RenderingOptions.TextFooter = new TextHeaderFooter 
{ 
    CenterText = "Page {page}" 
};
//PDFreactorCSS: @page { @bottom-center { content: 'Page ' counter(page); } }
//IronPDFequivalent:
renderer.RenderingOptions.TextFooter = new TextHeaderFooter 
{ 
    CenterText = "Page {page}" 
};
'PDFreactorCSS: @page { @bottom-center { content: 'Page ' counter(page); } }
'IronPDFequivalent:
renderer.RenderingOptions.TextFooter = New TextHeaderFooter With {
    .CenterText = "Page {page}"
}
$vbLabelText   $csharpLabel

ページ番号プレースホルダーの構文

//PDFreactorCSS: counter(page)
// IronPDF: {page}

//PDFreactorCSS: counter(pages)  
// IronPDF: {total-pages}
//PDFreactorCSS: counter(page)
// IronPDF: {page}

//PDFreactorCSS: counter(pages)  
// IronPDF: {total-pages}
'PDFreactorCSS: counter(page)
' IronPDF: {page}

'PDFreactorCSS: counter(pages)  
' IronPDF: {total-pages}
$vbLabelText   $csharpLabel

結果処理の変更

Configuration + Resultのパターンが直接PdfDocumentになります:

// PDFreactor: Configuration → Convert → Result → bytes
Result result = pdfReactor.Convert(config);
byte[] bytes = result.Document;
File.WriteAllBytes("output.pdf", bytes);

// IronPDF: Direct PdfDocument with built-in methods
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
// Or: byte[] bytes = pdf.BinaryData;
// PDFreactor: Configuration → Convert → Result → bytes
Result result = pdfReactor.Convert(config);
byte[] bytes = result.Document;
File.WriteAllBytes("output.pdf", bytes);

// IronPDF: Direct PdfDocument with built-in methods
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
// Or: byte[] bytes = pdf.BinaryData;
' PDFreactor: Configuration → Convert → Result → bytes
Dim result As Result = pdfReactor.Convert(config)
Dim bytes As Byte() = result.Document
File.WriteAllBytes("output.pdf", bytes)

' IronPDF: Direct PdfDocument with built-in methods
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("output.pdf")
' Or: Dim bytes As Byte() = pdf.BinaryData
$vbLabelText   $csharpLabel

マージン単位の変更

PDFreactorは文字列を使用します; IronPDFはミリメートルを使用しています:

// PDFreactor: config.PageMargins.Top = "1in"
// IronPDF: renderer.RenderingOptions.MarginTop = 25.4  // 1 inch in mm
// PDFreactor: config.PageMargins.Top = "1in"
// IronPDF: renderer.RenderingOptions.MarginTop = 25.4  // 1 inch in mm
' PDFreactor: config.PageMargins.Top = "1in"
' IronPDF: renderer.RenderingOptions.MarginTop = 25.4  ' 1 inch in mm
$vbLabelText   $csharpLabel

移行後の新機能

IronPDFに移行すると、PDFreactorでは提供できない機能が得られます:

PDFマージ

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

ウォーターマーク

pdf.ApplyWatermark("<h2 style='color:red;'>CONFIDENTIAL</h2>");
pdf.ApplyWatermark("<h2 style='color:red;'>CONFIDENTIAL</h2>");
pdf.ApplyWatermark("<h2 style='color:red;'>CONFIDENTIAL</h2>")
$vbLabelText   $csharpLabel

テキスト抽出

string text = pdf.ExtractAllText();
string text = pdf.ExtractAllText();
Dim text As String = pdf.ExtractAllText()
$vbLabelText   $csharpLabel

パスワード保護

pdf.SecuritySettings.UserPassword = "userpassword";
pdf.SecuritySettings.OwnerPassword = "ownerpassword";
pdf.SecuritySettings.UserPassword = "userpassword";
pdf.SecuritySettings.OwnerPassword = "ownerpassword";
pdf.SecuritySettings.UserPassword = "userpassword"
pdf.SecuritySettings.OwnerPassword = "ownerpassword"
$vbLabelText   $csharpLabel

機能比較の概要

フィーチャー PDFreactor IronPDF
HTMLからPDFへ
URLからPDFへ
ヘッダー/フッター CSSページングメディア ネイティブAPI
ページ設定
JavaScriptサポート
.NET ネイティブ
インプロセス
PDFのマージ
PDFの分割
透かし
テキスト抽出
フォーム入力
デジタル署名

移行チェックリスト

移行前

  • コードベース内のすべてのPDFreactorの使用状況を一覧表示する
  • 使用されているすべてのCSSページメディアルールを文書化する
  • すべての構成設定(余白、ページサイズ、 JavaScript)をメモします。
  • IronPDFライセンス キーの保存を計画する (環境変数を推奨)
  • まずはIronPDFの試用ライセンスでテストしてください

パッケージの変更

  • PDFreactor.NET NuGetパッケージを削除します
  • PDFreactor.Native.Windows.x64 NuGetパッケージを削除します
  • IronPdf NuGetパッケージをインストールします: dotnet add package IronPdf

コードの変更

  • 名前空間のインポートを更新します (using RealObjects.PDFreactor;using IronPdf;)
  • ヘッダー/フッタークラスにusing IronPdf.Rendering;を追加します
  • PDFreactor クラスを ChromePdfRenderer に置き換えます
  • Configuration オブジェクトを RenderingOptions プロパティに変換します
  • config.Document = htmlrenderer.RenderHtmlAsPdf(html) に置き換えます
  • config.Document = urlrenderer.RenderUrlAsPdf(url) に置き換えます
  • File.WriteAllBytes(path, result.Document)pdf.SaveAs(path) に置き換えます
  • CSS @page ルールを TextFooter オブジェクトに変換します
  • ページ番号プレースホルダーを更新します (counter(page){page})
  • マージン単位を文字列からミリメートルに変換する

インフラストラクチャの移行

  • Javaランタイム要件を削除
  • PDFreactorサーバーの廃止
  • Docker/デプロイメント構成を更新する
  • CI/CDパイプラインを更新する

移行後

  • PDF出力の品質が期待に沿うかテスト
  • ヘッダー/フッターのレンダリングを確認する
  • JavaScriptが使用されている場合は実行を検証する
  • 必要に応じて新しい機能(結合、透かし、セキュリティ)を追加します

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

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

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

アイアンサポートチーム

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