如何在 C# | IronPDF 中使用 IronPDF 存取所有 PDF DOM 物件
Telerik Document Processing作為Telerik UI套件和DevCraft捆綁包的一部分,提供開發者PDF生成功能以及Word、Excel和PowerPoint處理能力。 然而,隨著現代網頁標準的演變和專案要求全面支持CSS3、Flexbox和Bootstrap,開發團隊對Telerik的HTML到PDF渲染架構的限制表達了關注。
本指南提供了從Telerik Document Processing到IronPDF的完整遷移路徑,提供逐步指導、程式碼比較以及來自真實遷移場景的實例。
為什麼從Telerik Document Processing遷移
從Telerik Document Processing遷移的決定通常來自與現代網頁內容一起工作時顯而易見的技術限制。 了解這些限制有助於證明遷移工作的合理性並設置對IronPDF解決方案的期望。
報告的技術限制
開發人員報告了使用Telerik Document Processing處理現代HTML和CSS時的問題:
| 問題 | 影響 | IronPDF解決方案 |
|---|---|---|
| CSS解析限制 | 現代CSS框架如Bootstrap未能支持 | 完整的Chromium CSS支持 |
| Div到段落轉換 | HTML結構被扁平化,布局破壞 | 直接 HTML 渲染 |
| 流文件模型 | 強制中間轉換 | 原生HTML到PDF |
| 外部CSS問題 | 複雜選擇器被忽略 | 完整CSS檔支持 |
| 記憶體問題 | OutOfMemoryException報告於處理大型文件時出現 |
高效流媒體 |
核心問題:HTML未正確渲染
Telerik Document Processing在生成PDF之前,將HTML轉換為一個中間"流文件"模型。 這一架構決定創造了一系列問題:
- 扁平化HTML結構 —
<div>元素成為段落 - 忽略現代的CSS — Flexbox和Grid布局完全失敗
- 破壞Bootstrap — 列系統未能作為列渲染
- 丟失格式 — 複雜的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中,所有這些布局渲染為連續段落。兩列Bootstrap布局變為兩行文字。 Flexbox項目垂直堆疊。 CSS Grid項目出現一個接一個。
在Telerik Document Processing中失敗的CSS功能
開發者記錄了擴展的CSS相容性問題:
/* ❌ These CSS features DON'T WORK inTelerik Document Processing*/
/* 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錯誤,以及某些情況下PDF合併的顏色空間不支持和崩潰。 處理高容量文件生成的團隊注意到穩定性問題,需要在長期使用前進行評估。
IronPDF與Telerik Document Processing:功能比較
了解功能差異幫助技術決策者評估遷移投資:
| 功能 | Telerik Document Processing | IronPDF |
|---|---|---|
| HTML渲染 | 流文件轉換 | 直接Chromium渲染 |
| CSS3支援 | 有限的,許多功能失敗 | 完整支持 CSS3 |
| Flexbox | 不支持 | 支援 |
| CSS Grid CSS 網格布局 | 不支持 | 支援 |
| Bootstrap | 破損(div扁平化) | 支持,包括Bootstrap 5 |
| 外部CSS | 部分 | 支援 |
| JavaScript | 不支持 | 全面支持 |
| 大型文件 | 報告記憶體問題 | 高效流媒體 |
| API複雜性 | 複雜(提供程式、模型) | 簡單(一個類) |
| 許可模式 | 商業,DevCraft的一部分 | 簡單的獨立授權 |
快速開始遷移:5分鐘到您的第一個PDF
從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:更新using語句
將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")
差異立刻顯而易見:IronPDF的3行程式碼替換了Telerik Document Processing的15+行程式碼。 更重要的是,IronPDF版本將正確渲染現代CSS,而Telerik的流文件模型則無法處理。
程式碼遷移範例
將HTML轉換為PDF
這是最常見的PDF生成應用場景。 Telerik Document Processing和IronPDF之間的架構差異在這一比較中變得明顯。
Telerik Document Processing方法:
// 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版本要求建立PdfFormatProvider,並手動管理文件流。 IronPDF的ChromePdfRenderer通過單個方法調用處理整個過程。
想了解更多高級HTML到PDF場景,請參閱HTML轉PDF轉換指南。
將 URL 轉換為 PDF
作為PDF捕獲網頁揭示了兩個函式庫之間的另一個顯著差異。
Telerik Document Processing方法:
// 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到PDF功能。 您必須使用HttpClient手動抓取HTML內容,從而丟失外部CSS、JavaScript執行和動態內容。 IronPDF的RenderUrlAsPdf方法以瀏覽器中出現的方式完整捕獲渲染頁面。
請參閱URL到PDF文件以獲取包括身份驗證和自定義標題在內的其他選項。
合併多個 PDF
PDF合併顯示出這些.NET PDF函式庫之間的冗長性差異。
Telerik Document Processing方法:
// 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()方法在一次調用中處理所有事務。
想了解包括選擇性頁面提取在內的高級合併場景,請參閱合併和拆分PDF指南。
Telerik Document ProcessingAPI到IronPDF對照表
此參考表通過顯示直接API對等來加速遷移:
| Telerik Document Processing | 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 Document Processing:
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樣式,還有頁碼和日期的動態佔位符。 了解更多詳情請參閱頁眉和頁腳文件。
單位轉換:DIPs到毫米
Telerik Document Processing使用裝置無關的像素(DIPs)作為測量單位。 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 Document Processing遷移檢查清單
遷移前任務
審核您的程式碼庫以識別所有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" .
紀錄現有實現,包括格式提供者使用,頁眉/頁腳配置,自定義頁面設置,以及任何流文件模型的修改。
遷移中
- 移除Telerik NuGet包
- 安裝IronPDFNuGet 套件
- 將
IronPdf - 在啟動時新增授權金鑰初始化
- 將
ChromePdfRenderer - 刪除
RadFlowDocument中間步驟 - 將
SaveAs()調用 - 更新頁眉/頁腳以使用
HtmlHeaderFooter - 將頁面設置轉換為
RenderingOptions - 將邊距單位從DIPs轉換到毫米
遷移後驗證
遷移後,驗證這些改進:
- CSS渲染應改進顯著
- Bootstrap布局應正確渲染(在Telerik中沒有)
- Flexbox和Grid布局應工作(在Telerik中沒有)
- JavaScript執行應能處理動態內容
- 大型文件生成應完成且無記憶體異常
遷移到IronPDF的關鍵好處
從Telerik Document Processing轉到IronPDF立即提供優勢:
現代Chromium渲染引擎:IronPDF使用與Google Chrome相同的渲染引擎,確保PDF與現代瀏覽器中顯示的內容一致。 這消除了Telerik的流文件模型固有的CSS相容性問題。
完整的CSS3和JavaScript支持:Flexbox、Grid、Bootstrap 5、CSS變數和現代JavaScript均能正常工作,確保與當代網頁標準的相容性。
更簡單的API:更少的程式碼行,無中間文件模型,以及直觀的方法名稱,減少開發時間和維護負擔。
獨立授權:IronPDF提供簡單的授權,不需要購買整套軟體,為只需PDF功能的團隊提供經濟高效的解決方案。
主動開發:定期更新確保與當前和未來.NET版本、安裝補丁及功能增強相容。

