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

C#でTelerik Document ProcessingからIronPDFに移行する方法

Telerik Document Processingは、DevCraftスイートの一部として.NETエコシステムに貢献しており、Word、Excel、PowerPointの処理と並んでPDF生成機能を開発者に提供しています。 しかし、最新のWeb標準が進化し、プロジェクトでCSS3、Flexbox、Bootstrapの完全なサポートが求められるようになるにつれ、多くの開発チームがTelerikのHTML-to-PDFレンダリングアーキテクチャの根本的な限界を発見しています。

このガイドでは、Telerik Document ProcessingからIronPDFへの完全な移行経路を、ステップバイステップの手順、コードの比較、実際の移行シナリオから直接抽出した実用的な例で説明します。

なぜ Telerik ドキュメント処理から移行するのか

Telerik Document Processingからの移行は、通常、最新のウェブコンテンツを扱う際に明らかになる技術的な制約に起因します。 これらの制限を理解することで、移行作業を正当化し、IronPDFが解決することへの期待を設定することができます。

重要な技術的制限事項

Telerik Document Processingは、最新のHTMLとCSSを扱う際に基本的な問題があります:

問題 インパクト IronPDF ソリューション
CSS解析の限界 Bootstrapのような最新のCSSフレームワークは失敗する Chromium CSSの完全サポート
divから段落への変換 HTML構造が平坦化され、レイアウトが崩れる 直接HTMLレンダリング
フロー文書モデル 強制中間変換 ネイティブHTMLからPDFへ
外部CSSの問題 複雑なセレクタは無視 CSSファイルのフルサポート
メモリの問題 大きなドキュメントでの OutOfMemoryException 効率的なストリーミング

核心的な問題: HTML が正しくレンダリングされない

Telerik Document Processingは、PDFを生成する前に、HTMLを中間的な"フロー文書"モデルに変換します。 このアーキテクチャの決定は、連鎖的な問題を引き起こします:

  1. HTML構造をフラット化<div> 要素が段落になる 2.Ignores modern CSS - FlexboxとGridレイアウトは完全に失敗します。 3.Bootstrapを破る - 列システムが列としてレンダリングされない 4.フォーマットを失う - 複雑なCSSセレクタは無視されます。

標準的なCSSレイアウトを使用したモダンなHTMLを考えてみましょう:


<div class="container">
    <div class="row">
        <div class="col-md-6">Column 1</div>
        <div class="col-md-6">Column 2</div>
    </div>
</div>

<div style="display: flex; gap: 20px;">
    <div style="flex: 1;">Flex Item 1</div>
    <div style="flex: 1;">Flex Item 2</div>
</div>

<div style="display: grid; grid-template-columns: repeat(3, 1fr);">
    <div>Grid Item 1</div>
    <div>Grid Item 2</div>
    <div>Grid Item 3</div>
</div>

<div class="container">
    <div class="row">
        <div class="col-md-6">Column 1</div>
        <div class="col-md-6">Column 2</div>
    </div>
</div>

<div style="display: flex; gap: 20px;">
    <div style="flex: 1;">Flex Item 1</div>
    <div style="flex: 1;">Flex Item 2</div>
</div>

<div style="display: grid; grid-template-columns: repeat(3, 1fr);">
    <div>Grid Item 1</div>
    <div>Grid Item 2</div>
    <div>Grid Item 3</div>
</div>
HTML

Telerik Document Processingでは、これらのレイアウトはすべて連続した段落としてレンダリングされます。2列のBootstrapレイアウトは、2行のテキストになります。 フレックスボックスのアイテムは縦に積み重ねられます。 CSSグリッドの項目は、次々と現れます。

Telerikドキュメント処理で失敗するCSS機能

開発者は、CSSの互換性に関する広範な問題を文書化しています:

/* ❌ These CSS features DON'T WORK inTelerik ドキュメント処理*/

/* Flexbox - サポートされていません */
.container { display: flex; }
.item { flex: 1; }

/* CSS Grid - サポートされていません */
.grid { display: grid; grid-template-columns: repeat(3, 1fr); }

/* Bootstrap columns - Converted to paragraphs */
.col-md-6 { /* Ignored, becomes linear text */ }

/* CSS Variables - サポートされていません */
:root { --primary: #007bff; }
.btn { color: var(--primary); }

/* Complex selectors - Often ignored */
.container > .row:first-child { }
.item:hover { }
.content::before { }

/* Modern units - Limited support */
.box { width: calc(100% - 20px); }
.text { font-size: 1.2rem; }

大きなドキュメントのパフォーマンスの問題

CSS の制限を超えて、Telerik Document Processing では、大きなファイルを処理するときに OutOfMemoryException エラーが発生することが文書化されています。 大量のドキュメント生成に取り組んでいる開発チームは、他のライブラリがより効率的に処理する安定性の問題に遭遇しています。

IronPDFとTelerik Document Processingの比較:機能比較

機能の違いを理解することは、技術的な意思決定者が移行への投資を評価するのに役立ちます:

フィーチャー Telerik ドキュメント処理 IronPDF
HTMLレンダリング フロー ドキュメント変換 直接Chromiumレンダリング
CSS3のサポート 限られた多くの機能で失敗 完全なCSS3
Flexbox(フレックスボックス サポートされていません サポート対象
CSSグリッド サポートされていません サポート対象
Bootstrap(ブートストラップ ブロークン(divの平坦化) Bootstrap 5を含むサポート
外部CSS 部分的 サポート対象
JavaScript(JavaScript サポートされていません ES2024完全サポート
大型文書 メモリの問題 効率的なストリーミング
APIの複雑さ 複雑な(プロバイダ、モデル) シンプル(1クラス)
ライセンスモデル 商用、DevCraftの一部 シンプルなスタンドアロンライセンス

クイック・スタート・マイグレーション:最初のPDFを5分で

Telerik Document ProcessingからIronPDFへの移行はすぐに開始できます。 IronPDFで最初のPDFを作成する最短の方法はこちらです。

ステップ 1: NuGet パッケージを更新する

すべての Telerik ドキュメント処理パッケージを削除してください:

# Remove Telerik packages
dotnet remove package Telerik.Documents.Core
dotnet remove package Telerik.Documents.Flow
dotnet remove package Telerik.Documents.Flow.FormatProviders.Pdf
dotnet remove package Telerik.Documents.Fixed
# Remove Telerik packages
dotnet remove package Telerik.Documents.Core
dotnet remove package Telerik.Documents.Flow
dotnet remove package Telerik.Documents.Flow.FormatProviders.Pdf
dotnet remove package Telerik.Documents.Fixed
SHELL

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

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

ステップ 2: ステートメントを使用して更新する

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

// Before (Telerik Document Processing)
using Telerik.Windows.Documents.Flow.FormatProviders.Html;
using Telerik.Windows.Documents.Flow.FormatProviders.Pdf;
using Telerik.Windows.Documents.Flow.Model;
using Telerik.Documents.Primitives;

// After (IronPDF)
using IronPdf;
// Before (Telerik Document Processing)
using Telerik.Windows.Documents.Flow.FormatProviders.Html;
using Telerik.Windows.Documents.Flow.FormatProviders.Pdf;
using Telerik.Windows.Documents.Flow.Model;
using Telerik.Documents.Primitives;

// After (IronPDF)
using IronPdf;
Imports Telerik.Windows.Documents.Flow.FormatProviders.Html
Imports Telerik.Windows.Documents.Flow.FormatProviders.Pdf
Imports Telerik.Windows.Documents.Flow.Model
Imports Telerik.Documents.Primitives

' After (IronPDF)
Imports IronPdf
$vbLabelText   $csharpLabel

ステップ 3: ライセンスキーの追加

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

// 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

ステップ4: PDF生成コードを更新する

Telerik Document ProcessingからIronPDFへの変換はコードベースを劇的にシンプルにします。

ビフォア(Telerik Document Processing):

using Telerik.Windows.Documents.Flow.FormatProviders.Html;
using Telerik.Windows.Documents.Flow.FormatProviders.Pdf;
using Telerik.Windows.Documents.Flow.Model;

HtmlFormatProvider htmlProvider = new HtmlFormatProvider();
RadFlowDocument document = htmlProvider.Import(htmlContent);

PdfFormatProvider pdfProvider = new PdfFormatProvider();
byte[] pdfBytes = pdfProvider.Export(document);

File.WriteAllBytes("output.pdf", pdfBytes);
using Telerik.Windows.Documents.Flow.FormatProviders.Html;
using Telerik.Windows.Documents.Flow.FormatProviders.Pdf;
using Telerik.Windows.Documents.Flow.Model;

HtmlFormatProvider htmlProvider = new HtmlFormatProvider();
RadFlowDocument document = htmlProvider.Import(htmlContent);

PdfFormatProvider pdfProvider = new PdfFormatProvider();
byte[] pdfBytes = pdfProvider.Export(document);

File.WriteAllBytes("output.pdf", pdfBytes);
Imports Telerik.Windows.Documents.Flow.FormatProviders.Html
Imports Telerik.Windows.Documents.Flow.FormatProviders.Pdf
Imports Telerik.Windows.Documents.Flow.Model

Dim htmlProvider As New HtmlFormatProvider()
Dim document As RadFlowDocument = htmlProvider.Import(htmlContent)

Dim pdfProvider As New PdfFormatProvider()
Dim pdfBytes As Byte() = pdfProvider.Export(document)

File.WriteAllBytes("output.pdf", pdfBytes)
$vbLabelText   $csharpLabel

翻訳後(IronPDF):

using IronPdf;

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("output.pdf");
using IronPdf;

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("output.pdf");
Imports IronPdf

Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
pdf.SaveAs("output.pdf")
$vbLabelText   $csharpLabel

3行のIronPDFコードが15行以上のTelerik Document Processingコードを置き換えています。 さらに重要なことは、IronPDFバージョンはTelerikのFlow Documentモデルでは扱えないモダンなCSSを正しくレンダリングすることです。

コード移行の例

HTML を PDF に変換する

これは、PDF生成の最も一般的な使用例です。 Telerik Document ProcessingとIronPDFのアーキテクチャの違いはこの比較で明らかになります。

Telerik ドキュメント処理アプローチ:

// NuGet: Install-Package Telerik.Documents.Flow
// NuGet: Install-Package Telerik.Documents.Flow.FormatProviders.Pdf
using Telerik.Windows.Documents.Flow.FormatProviders.Html;
using Telerik.Windows.Documents.Flow.FormatProviders.Pdf;
using Telerik.Windows.Documents.Flow.Model;
using System.IO;

string html = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";

HtmlFormatProvider htmlProvider = new HtmlFormatProvider();
RadFlowDocument document = htmlProvider.Import(html);

PdfFormatProvider pdfProvider = new PdfFormatProvider();
using (FileStream output = File.OpenWrite("output.pdf"))
{
    pdfProvider.Export(document, output);
}
// NuGet: Install-Package Telerik.Documents.Flow
// NuGet: Install-Package Telerik.Documents.Flow.FormatProviders.Pdf
using Telerik.Windows.Documents.Flow.FormatProviders.Html;
using Telerik.Windows.Documents.Flow.FormatProviders.Pdf;
using Telerik.Windows.Documents.Flow.Model;
using System.IO;

string html = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";

HtmlFormatProvider htmlProvider = new HtmlFormatProvider();
RadFlowDocument document = htmlProvider.Import(html);

PdfFormatProvider pdfProvider = new PdfFormatProvider();
using (FileStream output = File.OpenWrite("output.pdf"))
{
    pdfProvider.Export(document, output);
}
Imports Telerik.Windows.Documents.Flow.FormatProviders.Html
Imports Telerik.Windows.Documents.Flow.FormatProviders.Pdf
Imports Telerik.Windows.Documents.Flow.Model
Imports System.IO

Dim html As String = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>"

Dim htmlProvider As New HtmlFormatProvider()
Dim document As RadFlowDocument = htmlProvider.Import(html)

Dim pdfProvider As New PdfFormatProvider()
Using output As FileStream = File.OpenWrite("output.pdf")
    pdfProvider.Export(document, output)
End Using
$vbLabelText   $csharpLabel

IronPDFのアプローチ:

// NuGet: Install-Package IronPdf
using IronPdf;

string html = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
// NuGet: Install-Package IronPdf
using IronPdf;

string html = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
Imports IronPdf

Dim html As String = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>"

Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("output.pdf")
$vbLabelText   $csharpLabel

Telerik バージョンでは、HtmlFormatProvider を作成し、RadFlowDocument にインポートし、PdfFormatProvider を作成し、ファイル ストリームを手動で管理する必要があります。IronPDFの ChromePdfRenderer は、単一のメソッド呼び出しでプロセス全体を処理します。

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

URLをPDFに変換する

ウェブページをPDFとしてキャプチャすると、ライブラリ間のもう1つの大きな違いが明らかになります。

Telerik ドキュメント処理アプローチ:

// NuGet: Install-Package Telerik.Documents.Flow
// NuGet: Install-Package Telerik.Documents.Flow.FormatProviders.Pdf
using Telerik.Windows.Documents.Flow.FormatProviders.Html;
using Telerik.Windows.Documents.Flow.FormatProviders.Pdf;
using Telerik.Windows.Documents.Flow.Model;
using System.IO;
using System.Net.Http;
using System.Threading.Tasks;

string url = "https://example.com";

using HttpClient client = new HttpClient();
string html = await client.GetStringAsync(url);

HtmlFormatProvider htmlProvider = new HtmlFormatProvider();
RadFlowDocument document = htmlProvider.Import(html);

PdfFormatProvider pdfProvider = new PdfFormatProvider();
using (FileStream output = File.OpenWrite("webpage.pdf"))
{
    pdfProvider.Export(document, output);
}
// NuGet: Install-Package Telerik.Documents.Flow
// NuGet: Install-Package Telerik.Documents.Flow.FormatProviders.Pdf
using Telerik.Windows.Documents.Flow.FormatProviders.Html;
using Telerik.Windows.Documents.Flow.FormatProviders.Pdf;
using Telerik.Windows.Documents.Flow.Model;
using System.IO;
using System.Net.Http;
using System.Threading.Tasks;

string url = "https://example.com";

using HttpClient client = new HttpClient();
string html = await client.GetStringAsync(url);

HtmlFormatProvider htmlProvider = new HtmlFormatProvider();
RadFlowDocument document = htmlProvider.Import(html);

PdfFormatProvider pdfProvider = new PdfFormatProvider();
using (FileStream output = File.OpenWrite("webpage.pdf"))
{
    pdfProvider.Export(document, output);
}
Imports Telerik.Windows.Documents.Flow.FormatProviders.Html
Imports Telerik.Windows.Documents.Flow.FormatProviders.Pdf
Imports Telerik.Windows.Documents.Flow.Model
Imports System.IO
Imports System.Net.Http
Imports System.Threading.Tasks

Module Module1
    Sub Main()
        Dim url As String = "https://example.com"

        Using client As New HttpClient()
            Dim html As String = Await client.GetStringAsync(url)

            Dim htmlProvider As New HtmlFormatProvider()
            Dim document As RadFlowDocument = htmlProvider.Import(html)

            Dim pdfProvider As New PdfFormatProvider()
            Using output As FileStream = File.OpenWrite("webpage.pdf")
                pdfProvider.Export(document, output)
            End Using
        End Using
    End Sub
End Module
$vbLabelText   $csharpLabel

IronPDFのアプローチ:

// NuGet: Install-Package IronPdf
using IronPdf;

string url = "https://example.com";

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf(url);
pdf.SaveAs("webpage.pdf");
// NuGet: Install-Package IronPdf
using IronPdf;

string url = "https://example.com";

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf(url);
pdf.SaveAs("webpage.pdf");
Imports IronPdf

Dim url As String = "https://example.com"

Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderUrlAsPdf(url)
pdf.SaveAs("webpage.pdf")
$vbLabelText   $csharpLabel

Telerik Document Processingには、ネイティブのURL-to-PDF機能はありません。 HttpClient を使用して HTML コンテンツを手動で取得する必要がありますが、その過程で外部 CSS、 JavaScript実行、および動的コンテンツが失われます。IronPDFの RenderUrlAsPdf メソッドは、ブラウザに表示されるとおりにレンダリングされた完全なページをキャプチャします。

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

複数のPDFをマージする

PDFマージは、これら for .NET PDFライブラリの冗長性の違いを示しています。

Telerik ドキュメント処理アプローチ:

// NuGet: Install-Package Telerik.Documents.Fixed
using Telerik.Windows.Documents.Fixed.FormatProviders.Pdf;
using Telerik.Windows.Documents.Fixed.Model;
using System.IO;

PdfFormatProvider provider = new PdfFormatProvider();

RadFixedDocument document1;
using (FileStream input = File.OpenRead("document1.pdf"))
{
    document1 = provider.Import(input);
}

RadFixedDocument document2;
using (FileStream input = File.OpenRead("document2.pdf"))
{
    document2 = provider.Import(input);
}

RadFixedDocument mergedDocument = new RadFixedDocument();
foreach (var page in document1.Pages)
{
    mergedDocument.Pages.Add(page);
}
foreach (var page in document2.Pages)
{
    mergedDocument.Pages.Add(page);
}

using (FileStream output = File.OpenWrite("merged.pdf"))
{
    provider.Export(mergedDocument, output);
}
// NuGet: Install-Package Telerik.Documents.Fixed
using Telerik.Windows.Documents.Fixed.FormatProviders.Pdf;
using Telerik.Windows.Documents.Fixed.Model;
using System.IO;

PdfFormatProvider provider = new PdfFormatProvider();

RadFixedDocument document1;
using (FileStream input = File.OpenRead("document1.pdf"))
{
    document1 = provider.Import(input);
}

RadFixedDocument document2;
using (FileStream input = File.OpenRead("document2.pdf"))
{
    document2 = provider.Import(input);
}

RadFixedDocument mergedDocument = new RadFixedDocument();
foreach (var page in document1.Pages)
{
    mergedDocument.Pages.Add(page);
}
foreach (var page in document2.Pages)
{
    mergedDocument.Pages.Add(page);
}

using (FileStream output = File.OpenWrite("merged.pdf"))
{
    provider.Export(mergedDocument, output);
}
Imports Telerik.Windows.Documents.Fixed.FormatProviders.Pdf
Imports Telerik.Windows.Documents.Fixed.Model
Imports System.IO

Dim provider As New PdfFormatProvider()

Dim document1 As RadFixedDocument
Using input As FileStream = File.OpenRead("document1.pdf")
    document1 = provider.Import(input)
End Using

Dim document2 As RadFixedDocument
Using input As FileStream = File.OpenRead("document2.pdf")
    document2 = provider.Import(input)
End Using

Dim mergedDocument As New RadFixedDocument()
For Each page In document1.Pages
    mergedDocument.Pages.Add(page)
Next
For Each page In document2.Pages
    mergedDocument.Pages.Add(page)
Next

Using output As FileStream = File.OpenWrite("merged.pdf")
    provider.Export(mergedDocument, output)
End Using
$vbLabelText   $csharpLabel

IronPDFのアプローチ:

// NuGet: Install-Package IronPdf
using IronPdf;

var pdf1 = PdfDocument.FromFile("document1.pdf");
var pdf2 = PdfDocument.FromFile("document2.pdf");

var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");
// NuGet: Install-Package IronPdf
using IronPdf;

var pdf1 = PdfDocument.FromFile("document1.pdf");
var pdf2 = PdfDocument.FromFile("document2.pdf");

var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");
Imports IronPdf

Dim pdf1 = PdfDocument.FromFile("document1.pdf")
Dim pdf2 = PdfDocument.FromFile("document2.pdf")

Dim merged = PdfDocument.Merge(pdf1, pdf2)
merged.SaveAs("merged.pdf")
$vbLabelText   $csharpLabel

Telerikバージョンでは、各ドキュメントを個別にインポートし、手作業でページを繰り返し、新しいドキュメントに追加し、複数のファイルストリームを管理する必要があります。IronPDFの PdfDocument.Merge() メソッドは、すべてを 1 回の呼び出しで処理します。

選択的なページ抽出を含む高度なマージシナリオについては、PDFのマージと分割ガイドを参照してください。

Telerikドキュメント処理APIからIronPDFへのマッピング

この参照表は、APIに直接相当するものを示すことで、移行を加速します:

Telerik ドキュメント処理 IronPDF
HtmlFormatProvider ChromePdfRenderer
RadFlowDocument 不要
PdfFormatProvider pdf.SaveAs()
RadFlowDocumentEditor HTML操作
Section HTML <section>
Paragraph HTML <p>
PdfExportSettings RenderingOptions
RadFixedDocument PdfDocument
手作業によるページの反復 PdfDocument.Merge()

ヘッダーとフッターの処理

Telerik Document Processingは、ヘッダーとフッターにプログラムモデルを使用しています。 IronPdfは動的プレースホルダーを持つHTMLベースのヘッダーを提供します。

Telerikドキュメント処理:

section.Headers.Default.Blocks.AddParagraph().Inlines.AddRun("Header Text");
section.Footers.Default.Blocks.AddParagraph().Inlines.AddRun("Footer Text");
section.Headers.Default.Blocks.AddParagraph().Inlines.AddRun("Header Text");
section.Footers.Default.Blocks.AddParagraph().Inlines.AddRun("Footer Text");
section.Headers.Default.Blocks.AddParagraph().Inlines.AddRun("Header Text")
section.Footers.Default.Blocks.AddParagraph().Inlines.AddRun("Footer Text")
$vbLabelText   $csharpLabel

IronPDF:

renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
    HtmlFragment = "<div style='text-align:center;'>Header Text</div>",
    MaxHeight = 25
};
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
    HtmlFragment = "<div style='text-align:center;'>Footer Text</div>",
    MaxHeight = 25
};
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
    HtmlFragment = "<div style='text-align:center;'>Header Text</div>",
    MaxHeight = 25
};
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
    HtmlFragment = "<div style='text-align:center;'>Footer Text</div>",
    MaxHeight = 25
};
Imports System

renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter() With {
    .HtmlFragment = "<div style='text-align:center;'>Header Text</div>",
    .MaxHeight = 25
}
renderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooter() With {
    .HtmlFragment = "<div style='text-align:center;'>Footer Text</div>",
    .MaxHeight = 25
}
$vbLabelText   $csharpLabel

IronPdfのHTMLベースのアプローチにより、ヘッダーとフッターのCSSスタイリング、ページ番号と日付のダイナミックプレースホルダーが可能です。 詳しくは、headers and footers documentationをご覧ください。

単位変換:ディップからミリメートルへ

Telerik Document Processingは、測定にデバイス非依存ピクセル(DIP)を使用します。 IronPDFはミリメートルを使用しています。 このため、移行時に変換が必要となります:

// Telerik uses DIPs (device-independent pixels)
//IronPDFuses millimeters

// 1 inch = 25.4mm
renderer.RenderingOptions.MarginTop = 25.4;    // 1 inch
renderer.RenderingOptions.MarginBottom = 25.4;

// Or use the helper method for paper size
renderer.RenderingOptions.SetCustomPaperSizeInInches(8.5, 11);
// Telerik uses DIPs (device-independent pixels)
//IronPDFuses millimeters

// 1 inch = 25.4mm
renderer.RenderingOptions.MarginTop = 25.4;    // 1 inch
renderer.RenderingOptions.MarginBottom = 25.4;

// Or use the helper method for paper size
renderer.RenderingOptions.SetCustomPaperSizeInInches(8.5, 11);
' Telerik uses DIPs (device-independent pixels)
' IronPDF uses millimeters

' 1 inch = 25.4mm
renderer.RenderingOptions.MarginTop = 25.4    ' 1 inch
renderer.RenderingOptions.MarginBottom = 25.4

' Or use the helper method for paper size
renderer.RenderingOptions.SetCustomPaperSizeInInches(8.5, 11)
$vbLabelText   $csharpLabel

Telerikドキュメント処理移行チェックリスト

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

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

grep -r "using Telerik.Windows.Documents" --include="*.cs" .
grep -r "RadFlowDocument\|HtmlFormatProvider\|PdfFormatProvider" --include="*.cs" .
grep -r "using Telerik.Windows.Documents" --include="*.cs" .
grep -r "RadFlowDocument\|HtmlFormatProvider\|PdfFormatProvider" --include="*.cs" .
SHELL

使用されているフォーマットプロバイダー、ヘッダー/フッター設定、カスタムページ設定、Flow Documentモデルの変更など、既存の実装を文書化すること。

移行について

1.Telerik NuGetパッケージの削除 2.IronPdf NuGetパッケージをインストールする

  1. ステートメントを使用して、Telerik.Windows.Documents から IronPdf に更新します。 4.起動時のライセンスキー初期化の追加
  2. HtmlFormatProviderChromePdfRenderer に置き換えます。
  3. 中間ステップを削除します
  4. PdfFormatProvider エクスポートを直接の SaveAs() 呼び出しに置き換えます
  5. ヘッダー/フッターを更新して、HtmlHeaderFooter を使用します。
  6. ページ設定をRenderingOptionsに変換します 10.マージンの単位をDIPからミリメートルに更新する。

移行後の検証

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

  • CSSレンダリングが大幅に改善されること。
  • Bootstrapレイアウトが正しくレンダリングされること(Telerikではレンダリングされません)。
  • FlexboxとGridレイアウトが動作すること(Telerikでは動作しません)。
  • JavaScriptの実行は、動的コンテンツのために機能する必要があります。
  • 大規模なドキュメントの生成は、メモリ例外なしで完了する必要があります。

IronPDFに移行する主な利点

Telerik Document ProcessingからIronPDFに移行することで、すぐにメリットが得られます:

最新の Chromium レンダリング エンジン:IronPDFはGoogle Chrome と同じレンダリング エンジンを使用しているため、PDF は最新のブラウザーに表示されるコンテンツとまったく同じようにレンダリングされます。 これにより、TelerikのFlow Documentモデル特有のCSS互換性の問題が解消されます。

完全な CSS3 およびJavaScriptサポート: Flexbox、Grid、Bootstrap 5、CSS 変数、最新 for JavaScript はすべて正常に動作します。 .NET 10とC# 14の採用が2026年まで増加する中、IronPDFのモダンレンダリングは現代のウェブ標準との互換性を保証します。

よりシンプルな API:コード行数が少なく、中間ドキュメント モデルが不要で、メソッド名が直感的であるため、開発時間とメンテナンスの負担が軽減されます。

スタンドアロン ライセンス:IronPDFは、包括的なスイートを購入する必要がなく、簡単なライセンスを提供しており、PDF 機能のみを必要とするチームにコスト効率の高いソリューションを提供します。

アクティブな開発:定期的な更新により、現在のおよび将来 for .NETバージョン、セキュリティ パッチ、機能強化との互換性が確保されます。

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

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

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

アイアンサポートチーム

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