フッターコンテンツにスキップ
ビデオ

C#でIronPDFを使用してすべてのPDF DOMオブジェクトにアクセスする方法|IronPDF

Telerik Document Processingは、Telerik UIスイートおよびDevCraftバンドルの一部として出荷され、開発者にWord、Excel、およびPowerPoint処理を併用してPDF生成機能を提供しています。 しかし、現代のウェブ標準が進化し、プロジェクトが完全なCSS3、Flexbox、Bootstrapサポートを要求する中で、開発チームはTelerikのHTMLからのPDFレンダリングアーキテクチャの制限に関する懸念を表明してきました。

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

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

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

報告された技術的制限

開発者は、最新のHTMLとCSSの処理に関してTelerik Document Processingに問題があると報告しています。

問題 インパクト 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 ドキュメント処理で大きなファイルを処理する際に OutOfMemoryException エラーを報告しており、サポートされていないカラースペースや一部のシナリオでの PDF マージ中のクラッシュも報告されています。 高音量のドキュメント生成を扱うチームは、長期使用を決定する前に評価する価値のある安定性の懸念を注目する。

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

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

フィーチャー Telerik ドキュメント処理 IronPDF
HTMLレンダリング フロー ドキュメント変換 直接Chromiumレンダリング
CSS3のサポート 限られた多くの機能で失敗 完全なCSS3
Flexbox(フレックスボックス サポートされていません サポート対象
CSSグリッド サポートされていません サポート対象
Bootstrap(ブートストラップ ブロークン(divの平坦化) Bootstrap 5を含むサポート
外部CSS 部分的 サポート対象
JavaScript(JavaScript サポートされていません フルサポート
大型文書 報告されたメモリの問題 効率的なストリーミング
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() メソッドは、単一の呼び出しですべてを処理します。

選択的なページ抽出を含む高度なマージシナリオについては、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.IronPDFNuGet パッケージをインストールします

  1. Telerik.Windows.Documents から IronPdf への using ステートメントを更新します 4.起動時のライセンスキー初期化の追加
  2. HtmlFormatProviderChromePdfRenderer に置き換えます
  3. RadFlowDocument の中間ステップを削除します
  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がすべて正常に動作し、現代のウェブ標準との互換性が保証されます。

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

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

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

ご注意Telerikはその所有者の登録商標です。 このサイトはProgress Softwareとは提携しておらず、承認またはスポンサードを受けていません。 すべての製品名、ロゴ、およびブランドは各所有者の所有物です。 比較は情報提供のみを目的としており、執筆時点で公開されている情報を反映しています。

Curtis Chau
テクニカルライター

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

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

アイアンサポートチーム

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