跳過到頁腳內容
遷移指南

如何在 C# 中從 Telerik Document Processing 遷移到 IronPDF

Telerik Document Processing 作為 DevCraft 套件的一部分,為 .NET 生態系統提供服務,除了 Word、Excel 和 PowerPoint 處理之外,還為開發人員提供 PDF 生成功能。 然而,隨著現代網頁標準的演進,以及專案需要完整的 CSS3、Flexbox 和 Bootstrap 支援,許多開發團隊發現 Telerik 的 HTML-to-PDF 渲染架構存在基本限制。

本指南提供了從Telerik 文件處理到IronPDF的完整遷移路徑,包括逐步說明、程式碼比較,以及直接取自真實遷移情境的實用範例。

為何要從 Telerik 文件處理轉移過來?

從Telerik 文件處理遷移的決定通常來自於在處理現代網頁內容時所顯現的技術限制。 瞭解這些限制有助於證明轉移工作的合理性,並為IronPDF所解決的問題設定期望值。

關鍵技術限制

Telerik Document Processing 在處理現代 HTML 和 CSS 時有一些基本問題:

問題 影響力 IronPDF 解決方案
CSS 解析限制 現代 CSS 框架(如 Bootstrap)失效 完整的 Chromium CSS 支援
分段轉換 HTML 結構扁平化,佈局破裂 直接 HTML 渲染
流程文件模型 強制中間轉換 原生 HTML 至 PDF
外部 CSS 問題 忽略複雜的選擇器 完整的 CSS 檔案支援
記憶體問題 大型文件上的 OutOfMemoryException 高效率的串流

核心問題:HTML 未正確渲染

Telerik Document Processing 在產生 PDF 之前會將 HTML 轉換為中間的"Flow Document"模型。 此架構決定會產生連鎖問題:

1.扁平化 HTML 結構-元素變成段落 2.忽略現代 CSS - Flexbox 和 Grid 佈局完全失敗 3.Breaks 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 文件處理中,所有這些版面都會呈現為連續的段落。兩欄式的 Bootstrap 排版會變成兩行文字。 flexbox 項目垂直堆疊。 CSS Grid 項目一個接一個地出現。

在 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 錯誤。 開發團隊在處理大量文件產生時,會遇到其他程式庫能更有效率處理的穩定性問題。

IronPDFvs Telerik Document Processing:功能比較

瞭解功能差異有助於技術決策者評估遷移投資:

特點 Telerik 文件處理 IronPDF
HTML 渲染 流程文件轉換 直接 Chromium 渲染
CSS3 支援 功能有限,許多功能失敗 完整的 CSS3
<強>Flexbox</強 不支援 支援
CSS 網格 不支援 支援
Bootstrap 破損(div 平面化) 支持 Bootstrap 5
外部 CSS 部分的 支援
JavaScript 不支援 完全支援 ES2024
大型文件 記憶體問題 高效率的串流
API複雜性 複雜(提供者、模型) 簡單(一級)
授權模式 商業,DevCraft 的一部分 簡單的獨立授權

快速開始遷移:5 分鐘完成您的第一份 PDF。

從Telerik 文件處理遷移到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:更新 Using 語句

用IronPDF命名空間取代 Telerik 命名空間:

// 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 文件處理到IronPDF的轉換可大幅簡化您的程式碼庫。

之前 (Telerik 文件處理):

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

After (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 文件處理程式碼。 更重要的是,IronPDF 版本將正確呈現 Telerik 的 Flow Document 模型無法處理的現代 CSS。

程式碼遷移範例

將 HTML 轉換為 PDF

這是 PDF 生成最常見的用例。Telerik 文件處理和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 至IronPDF方案,請參閱 HTML 至 PDF 轉換指南

將 URL 轉換為 PDF

將網頁擷取成 PDF 會顯示出兩個資料庫的另一個重大差異。

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 至 PDF 文件 以獲得其他選項,包括驗證和自訂標頭。

合併多個 PDF 文件

PDF 合併展示了這些 .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 文件處理使用程式化模式來處理頁眉、頁腳。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 設定,Plus 動態頁碼和日期占位符。 在 headers and footers 文件中瞭解更多資訊。

單位轉換:DIP 至毫米。

Telerik 文件處理使用裝置獨立像素 (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 文件處理的用法:

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 4.在啟動時加入授權金鑰初始化
  2. HtmlFormatProvider 替換為 ChromePdfRenderer
  3. 刪除 RadFlowDocument 中間步驟
  4. PdfFormatProvider 匯出替換為直接調用 SaveAs() 調用
  5. 更新頁首/頁腳,使用 HtmlHeaderFooter
  6. 將頁面設定轉換為 RenderingOptions 10.將邊界單位從 DIP 更新為毫米

後遷移驗證

轉移後,驗證這些改進:

  • CSS 渲染應大幅改善
  • Bootstrap 佈局應正確呈現 (在 Telerik 中不會)
  • Flexbox 與 Grid 佈局應該可以運作 (在 Telerik 中無法運作)
  • JavaScript 執行功能應適用於動態內容
  • 大型文件生成應在無記憶體異常的情況下完成

遷移到IronPDF的主要優點。

從Telerik 文件處理轉移到IronPDF可立即提供優勢:

現代 Chromium 渲染引擎:IronPDF使用與 Google Chrome 相同的渲染引擎,確保 PDF 檔案能夠像在現代瀏覽器中一樣準確地渲染。 這可以消除 Telerik 的流程文件模型固有的 CSS 相容性問題。

完全支援 CSS3 和 JavaScript: Flexbox、Grid、Bootstrap 5、CSS 變數和現代 JavaScript 均可正常運作。IronPDFfor .NET 10 和 C# 14 在 2026 年之前的採用率將會增加,IronPDF 的現代化渲染可確保與當代網路標準相容。

更簡單的 API:更少的程式碼行數、沒有中間文件模型以及直覺的方法名稱,可減少開發時間和維護負擔。

獨立許可:IronPDF提供簡單的許可方式,無需購買完整的套件,為只需要 PDF 功能的團隊提供了經濟高效的解決方案。

積極開發:定期更新確保與目前和未來的 .NET 版本、安全性修補程式和功能增強功能相容。

Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。

鋼鐵支援團隊

我們每週 5 天,每天 24 小時在線上。
聊天
電子郵件
打電話給我