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を中間的な"フロー文書"モデルに変換します。 このアーキテクチャの決定は、連鎖的な問題を引き起こします:
- 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>
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
IronPDFをインストールします:
# Install IronPDF
dotnet add package IronPdf
# Install IronPDF
dotnet add package IronPdf
ステップ 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
ステップ 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"
ステップ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)
翻訳後(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")
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
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")
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
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")
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
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")
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")
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
}
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)
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" .
使用されているフォーマットプロバイダー、ヘッダー/フッター設定、カスタムページ設定、Flow Documentモデルの変更など、既存の実装を文書化すること。
移行について
1.Telerik NuGetパッケージの削除 2.IronPdf NuGetパッケージをインストールする
- ステートメントを使用して、
Telerik.Windows.DocumentsからIronPdfに更新します。 4.起動時のライセンスキー初期化の追加 HtmlFormatProviderをChromePdfRendererに置き換えます。- 中間ステップを削除します
PdfFormatProviderエクスポートを直接のSaveAs()呼び出しに置き換えます- ヘッダー/フッターを更新して、
HtmlHeaderFooterを使用します。 - ページ設定を
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バージョン、セキュリティ パッチ、機能強化との互換性が確保されます。

