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

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

WinnovativeからIronPDFへの移行:完全なC#開発者ガイド

Winnovative は、.NET PDF 生成の分野では、C# アプリケーションの HTML から PDF への変換機能を提供することで知られています。 しかし、ライブラリが2016年のWebKitエンジンに依存しているため、現代のウェブ開発には大きな課題があります。 グリッドレイアウト、最新のJavaScript構文、Bootstrap 5やTailwind CSSのような人気のフレームワークのような現代的なCSS機能は、しばしば正しく、あるいはまったくレンダリングされません。

このガイドでは、WinnovativeからIronPDFへの完全な移行経路を、移行を検討しているプロの.NET開発者のために、ステップバイステップの説明、コード比較、実用的な例とともに提供します。

なぜWinnovativeから移行するのですか?

Winnovativeは2016年のWebKitエンジンに依存しているため、最新のWebアプリケーションには深刻な問題があります:

CSSグリッドのサポートなし: Bootstrap 5、Tailwind CSS、モダンレイアウトは完全に壊れています。 CSS Gridを使用したページは、期待通りにレンダリングされません。

バグだらけのFlexbox実装:モダンブラウザと比較して一貫性のないレンダリング。 開発者は、Winnovativeにしか存在しないレイアウトの問題のデバッグに何時間も費やすことがよくあります。

ES5 JavaScriptのみ:最新のES6+ JavaScriptの機能(矢印関数、async/await、クラス)は無言で失敗します。 つまり、React、Vue、その他の最新のフレームワークは、しばしば壊れた出力を生成します。

停滞する開発:Winnovative"は革新を示唆しているにもかかわらず、この製品はここ数年、最小限のアップデートしか行われていません。

フォントレンダリングの問題:ウェブフォントやカスタムタイポグラフィは、しばしば正しくレンダリングされなかったり、まったくレンダリングされなかったりします。

セキュリティの懸念:2016 年代の WebKit エンジンには、長年のセキュリティ パッチと脆弱性の修正がありません。

実世界への影響

最新のCSSとJavaScriptは、Winnovativeでは動作しません:

<!-- This modern CSS breaks inウィノベイティブ-->
<div style="display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px;">
  <div>Column 1</div>
  <div>Column 2</div>
  <div>Column 3</div>
</div>

<!-- Modern JavaScript fails silently -->
<script>
const items = data.map(item => item.name); // Arrow functions: FAIL
const result = await fetchData(); // Async/await: FAIL
class Report { } // Classes: FAIL
</script>
<!-- This modern CSS breaks inウィノベイティブ-->
<div style="display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px;">
  <div>Column 1</div>
  <div>Column 2</div>
  <div>Column 3</div>
</div>

<!-- Modern JavaScript fails silently -->
<script>
const items = data.map(item => item.name); // Arrow functions: FAIL
const result = await fetchData(); // Async/await: FAIL
class Report { } // Classes: FAIL
</script>
HTML

IronPDFとWinnovativeの比較:機能の比較

アーキテクチャの違いを理解することは、技術的な意思決定者が移行への投資を評価するのに役立ちます:

アスペクトウィノベイティブIronPDF
レンダリングエンジンウェブキット(2016年)クロミウム(現在)
CSSグリッドサポート対象外フルサポート
Flexbox(フレックスボックスバギーフルサポート
JavaScript(ジャバスクリプトES5のみES2024
ブートストラップ 5ブロークンフルサポート
追い風CSSサポート対象外フルサポート
リアクト/ビューSSR問題点完璧に動作
ウェブフォント信頼できないフルサポート
更新情報頻度月次
価格$750-$1,600競争力

クイックスタートWinnovativeからIronPDFへの移行

これらの基本的なステップを踏めば、すぐにでも移行を開始できます。

ステップ 1: NuGet パッケージを置き換える。

Winnovative パッケージをすべて削除してください:

# Remove Winnovative
dotnet remove package Winnovative.WebKitHtmlToPdf
dotnet remove package Winnovative.HtmlToPdf
dotnet remove package Winnovative.WebToPdfConverter
# Remove Winnovative
dotnet remove package Winnovative.WebKitHtmlToPdf
dotnet remove package Winnovative.HtmlToPdf
dotnet remove package Winnovative.WebToPdfConverter
SHELL

IronPDFをインストールします:

# Install IronPDF
dotnet add package IronPdf
# Install IronPDF
dotnet add package IronPdf
SHELL

ステップ 2: 名前空間の更新

Winnovative名前空間をIronPdf名前空間に置き換えてください:

// Before (Winnovative)
using Winnovative;
using Winnovative.WebKit;

// After (IronPDF)
using IronPdf;
// Before (Winnovative)
using Winnovative;
using Winnovative.WebKit;

// After (IronPDF)
using IronPdf;
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

ステップ 3: ライセンスの初期化

アプリケーション起動時のライセンス初期化を追加します:

IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
$vbLabelText   $csharpLabel

コード移行の例

HTML を PDF に変換する

最も一般的な使用例は、これらの.NET PDFライブラリのAPIの違いを示すものです。

革新的なアプローチ:

// NuGet: Install-Package Winnovative.WebToPdfConverter
using Winnovative;
using System;

class Program
{
    static void Main()
    {
        // Create the HTML to PDF converter
        HtmlToPdfConverter htmlToPdfConverter = new HtmlToPdfConverter();

        // Set license key
        htmlToPdfConverter.LicenseKey = "your-license-key";

        // Convert HTML string to PDF
        string htmlString = "<html><body><h1>Hello World</h1></body></html>";
        byte[] pdfBytes = htmlToPdfConverter.ConvertHtml(htmlString, "");

        // Save to file
        System.IO.File.WriteAllBytes("output.pdf", pdfBytes);

        Console.WriteLine("PDF created successfully");
    }
}
// NuGet: Install-Package Winnovative.WebToPdfConverter
using Winnovative;
using System;

class Program
{
    static void Main()
    {
        // Create the HTML to PDF converter
        HtmlToPdfConverter htmlToPdfConverter = new HtmlToPdfConverter();

        // Set license key
        htmlToPdfConverter.LicenseKey = "your-license-key";

        // Convert HTML string to PDF
        string htmlString = "<html><body><h1>Hello World</h1></body></html>";
        byte[] pdfBytes = htmlToPdfConverter.ConvertHtml(htmlString, "");

        // Save to file
        System.IO.File.WriteAllBytes("output.pdf", pdfBytes);

        Console.WriteLine("PDF created successfully");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

IronPDFのアプローチ:

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

class Program
{
    static void Main()
    {
        // Create a PDF renderer
        var renderer = new ChromePdfRenderer();

        // Convert HTML string to PDF
        string htmlString = "<html><body><h1>Hello World</h1></body></html>";
        var pdf = renderer.RenderHtmlAsPdf(htmlString);

        // 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 renderer
        var renderer = new ChromePdfRenderer();

        // Convert HTML string to PDF
        string htmlString = "<html><body><h1>Hello World</h1></body></html>";
        var pdf = renderer.RenderHtmlAsPdf(htmlString);

        // Save to file
        pdf.SaveAs("output.pdf");

        Console.WriteLine("PDF created successfully");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Winnovativeでは、HtmlToPdfConverterを作成し、インスタンスにライセンスキーを設定し、空のベースURLパラメータでConvertHtml()を呼び出し、生のバイトを受け取り、手動でファイルに書き込む必要があります。IronPDFはこれを単純化します: ChromePdfRendererを作成し、RenderHtmlAsPdf()を呼び出し、組み込みのSaveAs()メソッドを使用します。

高度なHTMLからPDFへのシナリオについては、HTMLからPDFへの変換ガイドをご覧ください。

URLをPDFに変換する

URLからPDFへの変換も同様のパターンがあります。

革新的なアプローチ:

// NuGet: Install-Package Winnovative.WebToPdfConverter
using Winnovative;
using System;

class Program
{
    static void Main()
    {
        // Create the HTML to PDF converter
        HtmlToPdfConverter htmlToPdfConverter = new HtmlToPdfConverter();

        // Set license key
        htmlToPdfConverter.LicenseKey = "your-license-key";

        // Convert URL to PDF
        string url = "https://www.example.com";
        byte[] pdfBytes = htmlToPdfConverter.ConvertUrl(url);

        // Save to file
        System.IO.File.WriteAllBytes("webpage.pdf", pdfBytes);

        Console.WriteLine("PDF from URL created successfully");
    }
}
// NuGet: Install-Package Winnovative.WebToPdfConverter
using Winnovative;
using System;

class Program
{
    static void Main()
    {
        // Create the HTML to PDF converter
        HtmlToPdfConverter htmlToPdfConverter = new HtmlToPdfConverter();

        // Set license key
        htmlToPdfConverter.LicenseKey = "your-license-key";

        // Convert URL to PDF
        string url = "https://www.example.com";
        byte[] pdfBytes = htmlToPdfConverter.ConvertUrl(url);

        // Save to file
        System.IO.File.WriteAllBytes("webpage.pdf", pdfBytes);

        Console.WriteLine("PDF from URL created successfully");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

IronPDFのアプローチ:

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

class Program
{
    static void Main()
    {
        // Create a PDF renderer
        var renderer = new ChromePdfRenderer();

        // Convert URL to PDF
        string url = "https://www.example.com";
        var pdf = renderer.RenderUrlAsPdf(url);

        // 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();

        // Convert URL to PDF
        string url = "https://www.example.com";
        var pdf = renderer.RenderUrlAsPdf(url);

        // Save to file
        pdf.SaveAs("webpage.pdf");

        Console.WriteLine("PDF from URL created successfully");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Winnovative は、手動で保存しなければならないバイトを返す ConvertUrl() を使用しています。 IronPDFはRenderUrlAsPdf()PdfDocumentオブジェクトを提供し、便利なようにSaveAs()を含んでいます。

認証とカスタムヘッダーオプションについては、URL to PDF documentationを参照してください。

ヘッダーとフッターの追加

ヘッダーとフッターには、アーキテクチャ上の大きな違いがあります。 WinnovativeはTextElementオブジェクトを使ったプログラム要素ベースのアプローチを使い、IronPDFはプレースホルダートークンを使ったHTMLベースのヘッダーを使います。

革新的なアプローチ:

// NuGet: Install-Package Winnovative.WebToPdfConverter
using Winnovative;
using System;
using System.Drawing;

class Program
{
    static void Main()
    {
        // Create the HTML to PDF converter
        HtmlToPdfConverter htmlToPdfConverter = new HtmlToPdfConverter();

        // Set license key
        htmlToPdfConverter.LicenseKey = "your-license-key";

        // Enable header
        htmlToPdfConverter.PdfDocumentOptions.ShowHeader = true;
        htmlToPdfConverter.PdfHeaderOptions.HeaderHeight = 60;

        // Add header text
        TextElement headerText = new TextElement(0, 0, "Document Header", new Font("Arial", 12));
        htmlToPdfConverter.PdfHeaderOptions.AddElement(headerText);

        // Enable footer
        htmlToPdfConverter.PdfDocumentOptions.ShowFooter = true;
        htmlToPdfConverter.PdfFooterOptions.FooterHeight = 60;

        // Add footer with page number
        TextElement footerText = new TextElement(0, 0, "Page &p; of &P;", new Font("Arial", 10));
        htmlToPdfConverter.PdfFooterOptions.AddElement(footerText);

        // Convert HTML to PDF
        string htmlString = "<html><body><h1>Document with Header and Footer</h1><p>Content goes here</p></body></html>";
        byte[] pdfBytes = htmlToPdfConverter.ConvertHtml(htmlString, "");

        // Save to file
        System.IO.File.WriteAllBytes("document.pdf", pdfBytes);

        Console.WriteLine("PDF with header and footer created successfully");
    }
}
// NuGet: Install-Package Winnovative.WebToPdfConverter
using Winnovative;
using System;
using System.Drawing;

class Program
{
    static void Main()
    {
        // Create the HTML to PDF converter
        HtmlToPdfConverter htmlToPdfConverter = new HtmlToPdfConverter();

        // Set license key
        htmlToPdfConverter.LicenseKey = "your-license-key";

        // Enable header
        htmlToPdfConverter.PdfDocumentOptions.ShowHeader = true;
        htmlToPdfConverter.PdfHeaderOptions.HeaderHeight = 60;

        // Add header text
        TextElement headerText = new TextElement(0, 0, "Document Header", new Font("Arial", 12));
        htmlToPdfConverter.PdfHeaderOptions.AddElement(headerText);

        // Enable footer
        htmlToPdfConverter.PdfDocumentOptions.ShowFooter = true;
        htmlToPdfConverter.PdfFooterOptions.FooterHeight = 60;

        // Add footer with page number
        TextElement footerText = new TextElement(0, 0, "Page &p; of &P;", new Font("Arial", 10));
        htmlToPdfConverter.PdfFooterOptions.AddElement(footerText);

        // Convert HTML to PDF
        string htmlString = "<html><body><h1>Document with Header and Footer</h1><p>Content goes here</p></body></html>";
        byte[] pdfBytes = htmlToPdfConverter.ConvertHtml(htmlString, "");

        // Save to file
        System.IO.File.WriteAllBytes("document.pdf", pdfBytes);

        Console.WriteLine("PDF with header and footer created successfully");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

IronPDFのアプローチ:

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

class Program
{
    static void Main()
    {
        // Create a PDF renderer
        var renderer = new ChromePdfRenderer();

        // Configure header and footer
        renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
        {
            CenterText = "Document Header",
            FontSize = 12
        };

        renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
        {
            CenterText = "Page {page} of {total-pages}",
            FontSize = 10
        };

        // Convert HTML to PDF
        string htmlString = "<html><body><h1>Document with Header and Footer</h1><p>Content goes here</p></body></html>";
        var pdf = renderer.RenderHtmlAsPdf(htmlString);

        // Save to file
        pdf.SaveAs("document.pdf");

        Console.WriteLine("PDF with header and footer created successfully");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
using System;

class Program
{
    static void Main()
    {
        // Create a PDF renderer
        var renderer = new ChromePdfRenderer();

        // Configure header and footer
        renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
        {
            CenterText = "Document Header",
            FontSize = 12
        };

        renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
        {
            CenterText = "Page {page} of {total-pages}",
            FontSize = 10
        };

        // Convert HTML to PDF
        string htmlString = "<html><body><h1>Document with Header and Footer</h1><p>Content goes here</p></body></html>";
        var pdf = renderer.RenderHtmlAsPdf(htmlString);

        // Save to file
        pdf.SaveAs("document.pdf");

        Console.WriteLine("PDF with header and footer created successfully");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Winnovative では、PdfDocumentOptions.ShowHeader によってヘッダー/フッターを有効にし、高さを設定し、座標位置と System.Drawing.Font オブジェクトを持つ<コード>テキスト要素</コードオブジェクトを作成し、&p;&P; プレースホルダーを使用する必要があります。 IronPDFはCenterTextFontSizeのようなシンプルなプロパティと、{page}{total-pages}のような直感的なプレースホルダーを持つTextHeaderFooterオブジェクトを使用します。

完全なCSSスタイルを持つHTMLベースのヘッダーについては、headers and footers documentationを参照してください。

革新的なAPIからIronPDFへのマッピングリファレンス

このマッピングは、APIと同等のものを直接示すことで、移行を加速します:

ウィノベイティブクラスIronPDF 同等物ノート
<コード>HtmlToPdfConverter</コード<コード>ChromePdfRenderer</コード主な変換クラス
<コード>PdfDocument</コード<コード>PdfDocument</コードPDF操作
<コード>PdfDocumentOptions</コード<コード>レンダリングオプション</コード構成
<コード>PdfHeaderOptions</コード<コード>HtmlHeaderFooter</コードヘッダー
<コード>PdfFooterOptions</コード<コード>HtmlHeaderFooter</コードフッター
<コード>テキスト要素</コードHtmlFragmentのHTMLテキストの位置
<コード>イメージ要素</コードHTML <img>画像の配置

メソッドマッピング

ウィノベイティブメソッドIronPDF メソッド
ConvertUrl(url)を使用してください。RenderUrlAsPdf(url)を使用してください。
<コード>ConvertUrlToFile(url, path)RenderUrlAsPdf(url).SaveAs(path)を実行してください。
ConvertHtml(html、baseUrl)RenderHtmlAsPdf(html)を使用してください。
<コード>ConvertHtmlToFile(html, path)RenderHtmlAsPdf(html).SaveAs(path)を実行してください。
ConvertHtmlFile(パス)RenderHtmlFileAsPdf(path)を実行してください。
<コード>MergePdf(ストリーム)</コードPdfDocument.Merge(pdfs).
<コード>AppendPdf(pdf)</コードpdf1.AppendPdf(pdf2).

オプション マッピング

ウィノベイティブオプションIronPDF オプション
PdfPageSize.A4PaperSize = PdfPaperSize.A4.
<コード>PdfPageSize.Letter</コードPaperSize = PdfPaperSize.Letter.
<コード>PdfPageOrientation.Portrait</コードPaperOrientation = PdfPaperOrientation.Portrait です。
<コード>PdfPageOrientation.Landscape</コードPaperOrientation = PdfPaperOrientation.Landscape です。
トップマージン = 20マージントップ = 20
BottomMargin = 20.MarginBottom = 20.
左マージン = 15MarginLeft = 15.
<コード>RightMargin = 15MarginRight = 15.
ShowHeader = true.HtmlHeaderプロパティを設定する
ShowFooter = true です。HtmlFooterプロパティを設定する
JavaScriptEnabled = true.EnableJavaScript = true です。
ページ番号 &p;ページ番号 {page}<//code>
総ページ数 &P;総ページ数 {total-pages}<//code>

一般的な移行の問題と解決策

課題1: CSSレイアウトが違って見える

症状: Winnovativeでは問題なく見えたレイアウトが、IronPdfでは異なって見えます。

原因: Winnovativeの2016年のWebKitには、開発者が回避できるレンダリングのバグがありました。 IronPdfは最新の標準に従って正しくレンダリングします。

解決策: Winnovative特有のCSSハックを削除し、標準的なCSSを使用する:

// Clean up legacy CSS
string cleanedHtml = html
    .Replace("-webkit-flex", "flex")
    .Replace("display: -webkit-box", "display: flex");
// Clean up legacy CSS
string cleanedHtml = html
    .Replace("-webkit-flex", "flex")
    .Replace("display: -webkit-box", "display: flex");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

課題 2: JavaScript が実行されない

症状: PDFに動的コンテンツが表示されない。

原因: JavaScriptの待機オプションを明示的に設定する必要がある。

ソリューション:

renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.WaitFor.JavaScript(5000);
// Or wait for specific element
renderer.RenderingOptions.WaitFor.HtmlElementById("content-ready", 10000);
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.WaitFor.JavaScript(5000);
// Or wait for specific element
renderer.RenderingOptions.WaitFor.HtmlElementById("content-ready", 10000);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

課題3: ベース URL が機能しない

症状: 画像やCSSの相対URLが解決されない。

原因: IronPDFは明示的なベースURL設定が必要です。

ソリューション:

renderer.RenderingOptions.BaseUrl = new Uri("https://example.com/");
renderer.RenderingOptions.BaseUrl = new Uri("https://example.com/");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

課題4:さまざまな改ページ

症状: Winnovativeとは異なる箇所でコンテンツが壊れる。

原因: レンダリングエンジンによって、改ページの扱いが異なります。

解決策:明示的なCSSの改ページコントロールを使用する:

/* Control page breaks explicitly */
.no-break {
    page-break-inside: avoid;
}
.page-break-before {
    page-break-before: always;
}
.page-break-after {
    page-break-after: always;
}

課題5:フォントが違って見える

症状:テキストが予想と異なるフォントで表示される。

原因: IronPDFはシステムフォントを使用しています; ウェブフォントは明示的な読み込みが必要です。

ソリューション:

<style>
@import url('https://fonts.googleapis.com/css2?family=Roboto&display=swap');

body {
    font-family: 'Roboto', Arial, sans-serif;
}
</style>
<style>
@import url('https://fonts.googleapis.com/css2?family=Roboto&display=swap');

body {
    font-family: 'Roboto', Arial, sans-serif;
}
</style>
HTML

革新的な移行チェックリスト

マイグレーション前のタスク

コードベースを監査し、Winnovative の使用法をすべて特定します:

# Find allウィノベイティブreferences
grep -r "Winnovative" --include="*.cs" .
grep -r "HtmlToPdfConverter" --include="*.cs" .
grep -r "PdfDocumentOptions" --include="*.cs" .
grep -r "ConvertUrl\|ConvertHtml" --include="*.cs" .
# Find allウィノベイティブreferences
grep -r "Winnovative" --include="*.cs" .
grep -r "HtmlToPdfConverter" --include="*.cs" .
grep -r "PdfDocumentOptions" --include="*.cs" .
grep -r "ConvertUrl\|ConvertHtml" --include="*.cs" .
SHELL

ページサイズ、マージン、ヘッダー/フッター設定など、現在の設定を文書化すること。 削除可能なCSS回避策(webkit接頭辞、フロートベースのグリッド)を特定すること。 JavaScriptの互換性要件に注意してください。

コード更新タスク

1.NuGetパッケージの削除 2.IronPdf NuGetパッケージをインストールする 3.すべての名前空間のインポートをWinnovativeからIronPdfに更新してください。 4.HtmlToPdfConverterChromePdfRendererに置き換えてください。 5.ConvertHtml()コールをRenderHtmlAsPdf()に変換する。 6.ConvertUrl()コールをRenderUrlAsPdf()に変換する。 7.RenderingOptionsにページ・サイズ/方向設定を更新してください。 8.マージン設定の変換 9.TextElement ベースのヘッダー/フッターを HTML ベースの TextHeaderFooter に移行する。 10.&p;/&P;から{page}/{total-pages}にページ番号プレースホルダを更新してください。 11.起動時にIronPDFライセンスの初期化を追加する

移行後のテスト

移行後、これらの点を検証してください:

  • 基本的なHTMLからPDFへの変換テスト
  • URLからPDFへの変換テスト
  • CSS Gridレイアウトが正しくレンダリングされることを確認する。
  • Flexboxレイアウトが正しくレンダリングされることを確認する(これで動作します)
  • JavaScriptを多用するページを最新のES6+構文でテストする。
  • Bootstrap 5との互換性の確認
  • ヘッダー/フッターレンダリングのテスト
  • 改ページの確認
  • PDF出力品質の比較

クリーンアップタスク

-ウィノベイティブCSSの回避策(webkit接頭辞)の削除

  • ES5 JavaScriptを最新の構文に更新
  • フロートベースのグリッドのフォールバックを削除
  • ドキュメントの更新

IronPDFに移行する主な利点

WinnovativeからIronPDFに移行することで、いくつかの重要な利点が得られました:

最新のレンダリングエンジン: IronPDFは最新のChromiumエンジンを使用しており、CSS3、CSS Grid、Flexbox、ES2024 JavaScriptを完全にサポートしています。 Bootstrap 5、Tailwind CSS、React/Vueなどの最新のフレームワークが正しくレンダリングされること。

簡略化されたAPI:HTMLベースのヘッダーとフッターは、プログラム的なTextElementポジショニングに取って代わります。 {page}のような直感的なプレースホルダは、わかりにくい&p;構文に取って代わります。 組み込みのSaveAs()メソッドにより、手動でのバイト処理が不要になります。

アクティブ開発:2026年まで.NET 10とC# 14の採用が増加する中、IronPDFの毎月のアップデートは現在と将来の.NETバージョンとの互換性を保証します。

回避策のないモダンなCSS:CSS Grid、Flexbox、モダンなタイポグラフィは、webkit プレフィックスやフロートベースのフォールバックなしで動作します。

モダンJavaScript:アロー関数、async/await、クラス、モジュールを含むES6+の機能が正しく実行されます。

結論

Winnovativeは、HTMLからPDFへのコンバータとして.NETコミュニティに貢献してきましたが、2016年のWebKitエンジンに依存しているため、現代のWeb開発には乗り越えられない課題があります。 CSSグリッドが機能しません。 最近のJavaScriptは無言で失敗します。 Bootstrap 5とTailwind CSSは、壊れたレイアウトを作成します。

IronPDFは最新のChromiumレンダリングエンジンを使って最新のHTMLからPDFへの変換を提供します。移行パスは簡単です: NuGetパッケージの置き換え、名前空間の更新、マッピングリファレンスを使用したAPIコールの変換、要素ベースのヘッダーをHTMLベースの同等物に移行します。

IronPDFの無料トライアルで今すぐ移行を開始し、PDF生成における最新のCSSとJavaScriptサポートを体験してください。

包括的な実装ガイダンスについては、IronPdfドキュメントチュートリアルAPIリファレンスをご覧ください。

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

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

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