跳過到頁腳內容
遷移指南

如何在 C# 中從 TextControl 轉移到 IronPDF

TX Text Control 已經成為 .NET 生態系統中的全面性文件編輯元件,提供內嵌 UI 控制的強大 DOCX 編輯功能。 然而,對於主要需求為 PDF 產生而非完整文件編輯的開發團隊而言,TextControl 的架構在 License 成本、複雜性和執行時依賴性方面帶來顯著的開銷。

本指南提供了從 TextControl 到IronPDF的完整轉換路徑,為評估此轉換的 .NET 專業開發人員提供了分步說明、程式碼比較以及實用範例。

為何要從 TextControl 遷移?

從 TextControl 遷移的決定通常是以將您的工具與實際需求相匹配為中心。TX 文字控制基本上是一個文件編輯器,將 PDF 生成視為次要功能。 開發團隊考慮遷移的主要原因包括

昂貴的授權費用: TextControl 採用商業許可,每位開發者每年最低收費 3,398 美元。 一個四人團隊預計每年投資約 6,749 美元,伺服器部署運行時 License 需額外支付費用。 每年的續約費用為 40%,這是維持更新存取權的必要條件。

PDF 是事後新增的:核心架構是文字處理,而不是 PDF。 雖然可以產生 PDF,但這只是附加功能,而非核心重點,導致輸出品質未達最佳。

硬體漏洞: Intel Iris Xe 顯示卡漏洞會影響較新的 Intel 處理器(第 11 代)中的文件渲染,需要透過登錄變通方法來解決。

臃腫的依賴項: TextControl 包含文件編輯 UI 元件,如果您只專注於產生 PDF,則可能不需要這些元件。

文字處理器架構:未針對現代 Web 應用程式所需的 HTML 到 PDF 工作流程進行最佳化。

複雜的 API: ServerTextControl 上下文管理和選擇模型為簡單的 PDF 生成任務增加了不必要的複雜性。

成本比較

範疇 TX 文字控制 IronPDF
基本授權 $3,398+ 大幅降低
年度續約 必須達到 40 可選支援
每位開發人員
UI 元件 捆綁式(臃腫) 以 PDF 為主
3 年總成本 $5,750+ 低很多

IronPDFvs TextControl:功能比較

了解架構上的差異有助於技術決策者評估遷移投資:

特點 TX 文字控制 IronPDF
主要焦點 DOCX 編輯 生成 PDF
授權費用 每位開發人員每年 3,398 美元 每位開發人員一次性 749 美元
PDF 品質 基本、附加功能 高、核心功能
硬體相容性 Intel Iris 的已知問題 在所有裝置上都能保持穩定
與 UI 整合 需要 UI 元件 沒有臃腫的 UI 元件
HTML/CSS 渲染 使用 HTML 的錯誤 現代 HTML5/CSS3
HTML 至 PDF 是 (次要) 是 (主要)
CSS 支援 限額 完整的 CSS3
JavaScript 限額 完整的 ES2024
URL 至 PDF 複雜的設定 原生語言
頁首/頁尾 複雜的 API 簡單的 HTML
郵件合併 專屬 HTML 範本
PDF/A
密碼保護
數位簽名
合併 PDF 限額
分割 PDF 限額
上下文管理 要求 不需要
跨平台 以 Windows 為重點

快速入門:TextControl 到IronPDF的遷移。

只要完成這些基本步驟,就可以立即開始遷移。

步驟 1:取代 NuGet 套件

移除所有 TextControl 套件:

# Remove TX Text Control
dotnet remove package TXTextControl.TextControl
dotnet remove package TXTextControl.DocumentServer
# Remove TX Text Control
dotnet remove package TXTextControl.TextControl
dotnet remove package TXTextControl.DocumentServer
SHELL

安裝 IronPDF:

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

步驟 2:更新命名空間

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

// Before (TextControl)
using TXTextControl;
using TXTextControl.DocumentServer;

// After (IronPDF)
using IronPdf;
// Before (TextControl)
using TXTextControl;
using TXTextControl.DocumentServer;

// After (IronPDF)
using IronPdf;
Imports TXTextControl
Imports TXTextControl.DocumentServer

' After (IronPDF)
Imports IronPdf
$vbLabelText   $csharpLabel

步驟 3:初始化授權

在應用程式啟動時加入授權初始化:

IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
$vbLabelText   $csharpLabel

程式碼遷移範例

將 HTML 轉換為 PDF

最常見的使用案例展示了這些 .NET PDF 函式庫之間的架構差異。

TextControl 方法:

// NuGet: Install-Package TXTextControl.Server
using TXTextControl;
using System.IO;

namespace TextControlExample
{
    class Program
    {
        static void Main(string[] args)
        {
            using (ServerTextControl textControl = new ServerTextControl())
            {
                textControl.Create();

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

                textControl.Load(html, StreamType.HTMLFormat);
                textControl.Save("output.pdf", StreamType.AdobePDF);
            }
        }
    }
}
// NuGet: Install-Package TXTextControl.Server
using TXTextControl;
using System.IO;

namespace TextControlExample
{
    class Program
    {
        static void Main(string[] args)
        {
            using (ServerTextControl textControl = new ServerTextControl())
            {
                textControl.Create();

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

                textControl.Load(html, StreamType.HTMLFormat);
                textControl.Save("output.pdf", StreamType.AdobePDF);
            }
        }
    }
}
Imports TXTextControl
Imports System.IO

Namespace TextControlExample
    Class Program
        Shared Sub Main(ByVal args As String())
            Using textControl As New ServerTextControl()
                textControl.Create()

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

                textControl.Load(html, StreamType.HTMLFormat)
                textControl.Save("output.pdf", StreamType.AdobePDF)
            End Using
        End Sub
    End Class
End Namespace
$vbLabelText   $csharpLabel

IronPDF 方法:

// NuGet: Install-Package IronPdf
using IronPdf;

namespace IronPdfExample
{
    class Program
    {
        static void Main(string[] args)
        {
            var renderer = new ChromePdfRenderer();

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

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

namespace IronPdfExample
{
    class Program
    {
        static void Main(string[] args)
        {
            var renderer = new ChromePdfRenderer();

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

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

Namespace IronPdfExample
    Class Program
        Shared Sub Main(ByVal args As String())
            Dim renderer = New ChromePdfRenderer()

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

            Dim pdf = renderer.RenderHtmlAsPdf(html)
            pdf.SaveAs("output.pdf")
        End Sub
    End Class
End Namespace
$vbLabelText   $csharpLabel

TextControl 版本需要建立一個 ServerTextControl 實例,呼叫 Create() 初始化上下文,使用 StreamType.HTMLFormat 載入 HTML,並使用 StreamType.AdobePDF 儲存。 using 程式碼區塊是正確處置資源所必需的。

IronPDF 完全消除了上下文管理。 ChromePdfRenderer 不需要初始化儀式-建立它,渲染 HTML,然後儲存。 這種架構上的簡化可減少認知負荷和潛在的資源管理錯誤。

如需進階的 HTML 至IronPDF情境,請參閱 HTML 至 PDF 轉換指南

合併多個 PDF 文件

PDF 合併揭示了這些函式庫在複雜性上的另一個顯著差異。

TextControl 方法:

// NuGet: Install-Package TXTextControl.Server
using TXTextControl;
using System.IO;

namespace TextControlExample
{
    class Program
    {
        static void Main(string[] args)
        {
            using (ServerTextControl textControl = new ServerTextControl())
            {
                textControl.Create();

                byte[] pdf1 = File.ReadAllBytes("document1.pdf");
                textControl.Load(pdf1, StreamType.AdobePDF);

                byte[] pdf2 = File.ReadAllBytes("document2.pdf");
                textControl.Load(pdf2, StreamType.AdobePDF, LoadAppendMode.Append);

                textControl.Save("merged.pdf", StreamType.AdobePDF);
            }
        }
    }
}
// NuGet: Install-Package TXTextControl.Server
using TXTextControl;
using System.IO;

namespace TextControlExample
{
    class Program
    {
        static void Main(string[] args)
        {
            using (ServerTextControl textControl = new ServerTextControl())
            {
                textControl.Create();

                byte[] pdf1 = File.ReadAllBytes("document1.pdf");
                textControl.Load(pdf1, StreamType.AdobePDF);

                byte[] pdf2 = File.ReadAllBytes("document2.pdf");
                textControl.Load(pdf2, StreamType.AdobePDF, LoadAppendMode.Append);

                textControl.Save("merged.pdf", StreamType.AdobePDF);
            }
        }
    }
}
Imports TXTextControl
Imports System.IO

Namespace TextControlExample
    Class Program
        Shared Sub Main(ByVal args As String())
            Using textControl As New ServerTextControl()
                textControl.Create()

                Dim pdf1 As Byte() = File.ReadAllBytes("document1.pdf")
                textControl.Load(pdf1, StreamType.AdobePDF)

                Dim pdf2 As Byte() = File.ReadAllBytes("document2.pdf")
                textControl.Load(pdf2, StreamType.AdobePDF, LoadAppendMode.Append)

                textControl.Save("merged.pdf", StreamType.AdobePDF)
            End Using
        End Sub
    End Class
End Namespace
$vbLabelText   $csharpLabel

IronPDF 方法:

// NuGet: Install-Package IronPdf
using IronPdf;

namespace IronPdfExample
{
    class Program
    {
        static void Main(string[] args)
        {
            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;

namespace IronPdfExample
{
    class Program
    {
        static void Main(string[] args)
        {
            var pdf1 = PdfDocument.FromFile("document1.pdf");
            var pdf2 = PdfDocument.FromFile("document2.pdf");

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

Namespace IronPdfExample
    Class Program
        Shared Sub Main(ByVal args As String())
            Dim pdf1 = PdfDocument.FromFile("document1.pdf")
            Dim pdf2 = PdfDocument.FromFile("document2.pdf")

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

TextControl 需要將檔案讀取到位元組數組中,管理 ServerTextControl 上下文,並使用 LoadAppendMode.Append 合併文件。IronPDF的 PdfDocument.Merge() 方法透過一次明確呼叫即可處理所有事情。

如需進階合併情境,包括選擇性抽取頁面,請參閱 合併與分割 PDF 指南

新增頁首與頁尾

具有動態頁碼的頁首和頁尾會展示 API 複雜性的差異。

TextControl 方法:

// NuGet: Install-Package TXTextControl.Server
using TXTextControl;
using System.IO;

namespace TextControlExample
{
    class Program
    {
        static void Main(string[] args)
        {
            using (ServerTextControl textControl = new ServerTextControl())
            {
                textControl.Create();

                string html = "<html><body><h1>Document Content</h1><p>Main body text.</p></body></html>";
                textControl.Load(html, StreamType.HTMLFormat);

                HeaderFooter header = new HeaderFooter(HeaderFooterType.Header);
                header.Text = "Document Header";
                textControl.Sections[0].HeadersAndFooters.Add(header);

                HeaderFooter footer = new HeaderFooter(HeaderFooterType.Footer);
                footer.Text = "Page {page} of {numpages}";
                textControl.Sections[0].HeadersAndFooters.Add(footer);

                textControl.Save("output.pdf", StreamType.AdobePDF);
            }
        }
    }
}
// NuGet: Install-Package TXTextControl.Server
using TXTextControl;
using System.IO;

namespace TextControlExample
{
    class Program
    {
        static void Main(string[] args)
        {
            using (ServerTextControl textControl = new ServerTextControl())
            {
                textControl.Create();

                string html = "<html><body><h1>Document Content</h1><p>Main body text.</p></body></html>";
                textControl.Load(html, StreamType.HTMLFormat);

                HeaderFooter header = new HeaderFooter(HeaderFooterType.Header);
                header.Text = "Document Header";
                textControl.Sections[0].HeadersAndFooters.Add(header);

                HeaderFooter footer = new HeaderFooter(HeaderFooterType.Footer);
                footer.Text = "Page {page} of {numpages}";
                textControl.Sections[0].HeadersAndFooters.Add(footer);

                textControl.Save("output.pdf", StreamType.AdobePDF);
            }
        }
    }
}
Imports TXTextControl
Imports System.IO

Namespace TextControlExample
    Class Program
        Shared Sub Main(ByVal args As String())
            Using textControl As New ServerTextControl()
                textControl.Create()

                Dim html As String = "<html><body><h1>Document Content</h1><p>Main body text.</p></body></html>"
                textControl.Load(html, StreamType.HTMLFormat)

                Dim header As New HeaderFooter(HeaderFooterType.Header)
                header.Text = "Document Header"
                textControl.Sections(0).HeadersAndFooters.Add(header)

                Dim footer As New HeaderFooter(HeaderFooterType.Footer)
                footer.Text = "Page {page} of {numpages}"
                textControl.Sections(0).HeadersAndFooters.Add(footer)

                textControl.Save("output.pdf", StreamType.AdobePDF)
            End Using
        End Sub
    End Class
End Namespace
$vbLabelText   $csharpLabel

IronPDF 方法:

// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;

namespace IronPdfExample
{
    class Program
    {
        static void Main(string[] args)
        {
            var renderer = new ChromePdfRenderer();

            string html = "<html><body><h1>Document Content</h1><p>Main body text.</p></body></html>";

            var pdf = renderer.RenderHtmlAsPdf(html);

            pdf.AddTextHeader("Document Header");
            pdf.AddTextFooter("Page {page} of {total-pages}");

            pdf.SaveAs("output.pdf");
        }
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;

namespace IronPdfExample
{
    class Program
    {
        static void Main(string[] args)
        {
            var renderer = new ChromePdfRenderer();

            string html = "<html><body><h1>Document Content</h1><p>Main body text.</p></body></html>";

            var pdf = renderer.RenderHtmlAsPdf(html);

            pdf.AddTextHeader("Document Header");
            pdf.AddTextFooter("Page {page} of {total-pages}");

            pdf.SaveAs("output.pdf");
        }
    }
}
Imports IronPdf
Imports IronPdf.Rendering

Namespace IronPdfExample
    Class Program
        Shared Sub Main(args As String())
            Dim renderer As New ChromePdfRenderer()

            Dim html As String = "<html><body><h1>Document Content</h1><p>Main body text.</p></body></html>"

            Dim pdf = renderer.RenderHtmlAsPdf(html)

            pdf.AddTextHeader("Document Header")
            pdf.AddTextFooter("Page {page} of {total-pages}")

            pdf.SaveAs("output.pdf")
        End Sub
    End Class
End Namespace
$vbLabelText   $csharpLabel

TextControl 需要建立具有特定枚舉的 HeaderFooter 對象,透過 HeaderFooterType 枚舉存取文件部分,並新增至 textControl.Sections[0] 集合中。IronPDF提供直接的 AddTextHeaderAddTextFooter 方法,並附有簡單的佔位語法。

對於具有完整樣式控制的基於 HTML 的標頭,IronPDF 也支援 HtmlHeaderFooter:

renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
{
    HtmlFragment = @"
        <div style='width: 100%; text-align: center; font-size: 12pt;'>
            Company Report
        </div>",
    MaxHeight = 30
};

renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
{
    HtmlFragment = @"
        <div style='width: 100%; text-align: right; font-size: 10pt;'>
            Page {page} of {total-pages}
        </div>",
    MaxHeight = 25
};
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
{
    HtmlFragment = @"
        <div style='width: 100%; text-align: center; font-size: 12pt;'>
            Company Report
        </div>",
    MaxHeight = 30
};

renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
{
    HtmlFragment = @"
        <div style='width: 100%; text-align: right; font-size: 10pt;'>
            Page {page} of {total-pages}
        </div>",
    MaxHeight = 25
};
renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter With {
    .HtmlFragment = "
        <div style='width: 100%; text-align: center; font-size: 12pt;'>
            Company Report
        </div>",
    .MaxHeight = 30
}

renderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooter With {
    .HtmlFragment = "
        <div style='width: 100%; text-align: right; font-size: 10pt;'>
            Page {page} of {total-pages}
        </div>",
    .MaxHeight = 25
}
$vbLabelText   $csharpLabel

標頭和頁尾文件中瞭解更多關於標頭和頁尾選項的資訊。

TextControl API 到IronPDF的映射參考。

此對應可透過顯示直接的 API 對應關係來加速遷移:

TX 文字控制 IronPDF
ServerTextControl.Create() new ChromePdfRenderer()
tx.Load(html, StreamType.HTMLFormat) renderer.RenderHtmlAsPdf(html)
tx.Load(url, StreamType.HTMLFormat) renderer.RenderUrlAsPdf(url)
tx.Save(path, StreamType.AdobePDF) pdf.SaveAs(path)
SaveSettings.PDFAConformance RenderingOptions.PdfAFormat
DocumentServer.MailMerge HTML 模板 + Razor
DocumentTarget.HeadersAndFooters HtmlHeaderFooter
LoadSettings RenderingOptions
StreamType.AdobePDF 預設輸出

常見的遷移問題與解決方案

問題 1:ServerTextControl 上下文

TextControl需要 Create()using 程式碼區塊才能執行每個操作。

解決方案:IronPDF沒有上下文管理:

// Just create and use
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
// Just create and use
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
' Just create and use
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(html)
$vbLabelText   $csharpLabel

第 2 期:StreamType 轉換

TextControl載入不同的格式並透過 StreamType 枚舉轉換為 PDF。

解決方案:IronPDF可直接渲染 HTML,無需進行中間格式轉換:

// No format conversion needed
var pdf = renderer.RenderHtmlAsPdf(html);
// No format conversion needed
var pdf = renderer.RenderHtmlAsPdf(html);
Dim pdf = renderer.RenderHtmlAsPdf(html)
$vbLabelText   $csharpLabel

問題 3:DOCX 範本。

TextControl使用 DOCX 檔案製作具有郵件合併功能的範本。

解決方案:使用 C# 字串插值或 Razor 轉換為 HTML 模板:

var data = new { CustomerName = "John Doe", InvoiceNumber = "12345", Total = "$1,500.00" };

var html = $@"
<html>
<head>
    <style>
        body {{ font-family: Arial; padding: 40px; }}
        h1 {{ color: #333; }}
        .total {{ font-size: 24px; color: green; }}
    </style>
</head>
<body>
    <h1>Invoice #{data.InvoiceNumber}</h1>
    <p>Customer: {data.CustomerName}</p>
    <p class='total'>Total: {data.Total}</p>
</body>
</html>";

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("invoice.pdf");
var data = new { CustomerName = "John Doe", InvoiceNumber = "12345", Total = "$1,500.00" };

var html = $@"
<html>
<head>
    <style>
        body {{ font-family: Arial; padding: 40px; }}
        h1 {{ color: #333; }}
        .total {{ font-size: 24px; color: green; }}
    </style>
</head>
<body>
    <h1>Invoice #{data.InvoiceNumber}</h1>
    <p>Customer: {data.CustomerName}</p>
    <p class='total'>Total: {data.Total}</p>
</body>
</html>";

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("invoice.pdf");
Option Strict On



Dim data = New With {Key .CustomerName = "John Doe", Key .InvoiceNumber = "12345", Key .Total = "$1,500.00"}

Dim html = $"
<html>
<head>
    <style>
        body {{ font-family: Arial; padding: 40px; }}
        h1 {{ color: #333; }}
        .total {{ font-size: 24px; color: green; }}
    </style>
</head>
<body>
    <h1>Invoice #{data.InvoiceNumber}</h1>
    <p>Customer: {data.CustomerName}</p>
    <p class='total'>Total: {data.Total}</p>
</body>
</html>"

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

第 4 期:Intel Iris Xe 顯示錯誤

TextControl已記錄第 11 代 Intel 處理器的呈現問題,需要註冊表變通。

解決方案:IronPDF使用 Chromium 演算法 - 不需要硬體加速 bug 或修改註冊表。

TextControl 移轉清單

遷移前的任務

審核您的程式碼庫,以辨識所有 TextControl 的用法:

grep -r "using TXTextControl" --include="*.cs" .
grep -r "ServerTextControl\|Load\|Save" --include="*.cs" .
grep -r "using TXTextControl" --include="*.cs" .
grep -r "ServerTextControl\|Load\|Save" --include="*.cs" .
SHELL

文件郵件合併範本轉換為 HTML。 請注意頁首/頁尾的實作要求,HtmlHeaderFooter。 找出任何可能需要替代解決方案的 DOCX 編輯功能。

程式碼更新任務

1.移除TX 文字控制NuGet 套件 2.安裝IronPDFNuGet 套件

  1. 移除 ServerTextControl 上下文管理(不再呼叫 Create()
  2. StreamType.HTMLFormat 載入轉換為 RenderHtmlAsPdf 5.使用字串插值或 Razor 將郵件合併轉換為 HTML 模板
  3. 更新頁首/頁腳,使用 HtmlHeaderFooterAddTextHeader/AddTextFooter
  4. 使用 RenderingOptions 簡化頁面設置 8.在啟動時加入授權初始化

後遷移測試

轉移後,驗證這些方面:

  • 測試所有文件範本是否能正確呈現
  • 必要時驗證PDF/A合規性
  • 測試密碼保護功能
  • 確認頁首/頁腳出現在所有頁面上
  • 在 Intel 第 11 代硬體上檢查-使用IronPDF不再需要註冊表變通程式

遷移到IronPDF的主要優點。

從 TextControl 轉移到IronPDF為專注於 PDF 產生的團隊提供了多項優勢:

PDF優先架構: IronPDF專為PDF生成而設計,利用現代HTML5和CSS3標準,提供強大的文件建立和渲染功能。

成本效益:IronPDF的一次性定價使其長期成本顯著降低,尤其是與 TextControl 的訂閱服務(強制每年續費 40%)相比。

穩定性已驗證:在各種硬體上都有可靠性記錄,避免了像 TextControl 使用 Intel 顯示卡時遇到的問題。

無上下文管理:消除 ServerTextControl 創建儀式和資源處置模式。IronPDF的無狀態渲染簡化了程式碼,並減少了潛在的記憶體洩漏。

現代渲染引擎:隨著 .NET 10 和 C# 14 的普及,IronPDF 基於 Chromium 的渲染技術確保了與當前和未來 Web 標準的兼容性。

Curtis Chau
技術作家

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

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

鋼鐵支援團隊

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