跳至页脚内容
迁移指南

如何用 C# 从 HiQPdf 迁移到 IronPDF

从HiQPdf迁移到 IronPDF:完整的 C# 迁移指南。

从HiQPdf迁移到IronPDF可将您的 .NET PDF 工作流程从基于 WebKit 的旧式渲染引擎(具有限制性页面限制)转换为完全支持 JavaScript Framework 的现代 Chromium 驱动的库。 本指南为专业的 .NET 开发人员提供了一个全面的、循序渐进的迁移路径,消除了 3 页的限制和零散的软件包结构。

为什么要从HiQPdf迁移到 IronPDF.

HiQPdf的限制

HiQPdf 是一种商用 HTML 转 PDF 库,存在一些影响生产应用的局限性:

1.限制性的 "免费 "版本:免费版本的页数限制为 3 页,并带有干扰性水印--对于需要生成完整文档的生产工作负载而言,基本上无法使用。

2.较旧的 WebKit 引擎:HiQPdf 使用的是较旧的基于 WebKit 的呈现引擎,与 React、Angular 和 Vue 等现代 JavaScript 框架难以兼容。

3.不明确的 .NET Core 支持:文档没有明确说明 .NET Core / .NET 5+ 支持,给现代应用程序开发带来了不确定性。

4.碎片化软件包:适用于不同平台的多个 NuGet 软件包(HiQPdf、HiQPdf.Free、HiQPdf.NetCore、HiQPdf.NetCore.x64、HiQPdf.Client)使依赖关系管理变得复杂。

5.复杂 API:需要通过 Document, Header, Footer 属性链进行冗长的配置,而不是采用流畅、直观的方法。

6.有限的 JavaScript 支持:WebKit 引擎在呈现由现代 JavaScript 框架和复杂动态布局生成的内容时面临挑战。

HiQPdf与IronPDF对比

方面HiQPdfIronPDF
渲染引擎基于 WebKit(较旧)现代 Chromium
免费级别3 页限制 + 水印30 天全面试用
现代 JS 支持有限的完整(React、Angular、Vue)
支持 .NET Core/5+需要多个软件包单一的统一软件包
应用程序接口设计复杂的属性链简洁流畅的 API
CSS3 支持部分翻译全面支持
文档支离破碎综合性
NuGet 软件包多种变体单个软件包

对于计划在 2025 年和 2026 年之前采用 .NET 10 和 C# 14 的团队,IronPDF 提供了一个面向未来的基础,对最新的 .NET 版本和现代 Chromium 渲染引擎提供了文档支持。


迁移复杂性评估

按功能估算的工作量

特征迁移复杂性备注
HTML 至 PDF极低直接方法替换
URL 至 PDF极低直接方法替换
合并 PDF不同的合并方法
页眉/页脚语言占位符语法更改
页面大小/页边距单位相同(毫米)
触发器模式/延迟属性映射

范式转换

此次HiQPdf迁移的基本转变是从 属性链配置流畅渲染选项

HiQPdf:converter.Document.Header.Height = 50;
          converter.Document.Header.Add(new HtmlToPdfVariableElement(...));

IronPdf: renderer.RenderingOptions.TextHeader = new TextHeaderFooter() { ... };

开始之前

前提条件

1..NET版本:IronPDF支持.NET Framework 4.6.2+ 和 .NET Core 3.1+ / .NET 5/6/7/8/9+ 。 2.许可证密钥:从 ironpdf.com 获取IronPDF许可证密钥。 3.移除 HiQPdf:计划移除所有HiQPdfNuGet 软件包变体

识别所有HiQPdf使用情况

# FindHiQPdfnamespace usage
grep -r "using HiQPdf\|HtmlToPdf\|PdfDocument" --include="*.cs" .

# Find header/footer usage
grep -r "\.Header\.\|\.Footer\.\|HtmlToPdfVariableElement" --include="*.cs" .

# Find placeholder syntax
grep -r "CrtPage\|PageCount" --include="*.cs" .

# Find NuGet references
grep -r "HiQPdf" --include="*.csproj" .
# FindHiQPdfnamespace usage
grep -r "using HiQPdf\|HtmlToPdf\|PdfDocument" --include="*.cs" .

# Find header/footer usage
grep -r "\.Header\.\|\.Footer\.\|HtmlToPdfVariableElement" --include="*.cs" .

# Find placeholder syntax
grep -r "CrtPage\|PageCount" --include="*.cs" .

# Find NuGet references
grep -r "HiQPdf" --include="*.csproj" .
SHELL

NuGet 软件包变更

# Remove allHiQPdfvariants
dotnet remove package HiQPdf
dotnet remove package HiQPdf.Free
dotnet remove package HiQPdf.NetCore
dotnet remove package HiQPdf.NetCore.x64
dotnet remove package HiQPdf.Client

# InstallIronPDF(single package for all platforms)
dotnet add package IronPdf
# Remove allHiQPdfvariants
dotnet remove package HiQPdf
dotnet remove package HiQPdf.Free
dotnet remove package HiQPdf.NetCore
dotnet remove package HiQPdf.NetCore.x64
dotnet remove package HiQPdf.Client

# InstallIronPDF(single package for all platforms)
dotnet add package IronPdf
SHELL

快速启动迁移

步骤 1:更新许可配置

之前 (HiQPdf):

HtmlToPdf converter = new HtmlToPdf();
converter.SerialNumber = "HIQPDF-SERIAL-NUMBER";
HtmlToPdf converter = new HtmlToPdf();
converter.SerialNumber = "HIQPDF-SERIAL-NUMBER";
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

After (IronPDF):

// Set globally at application startup
IronPdf.License.LicenseKey = "YOUR-IRONPDF-LICENSE-KEY";
// Set globally at application startup
IronPdf.License.LicenseKey = "YOUR-IRONPDF-LICENSE-KEY";
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

步骤 2:更新名称空间导入

// Before (HiQPdf)
using HiQPdf;

// After (IronPDF)
using IronPdf;
using IronPdf.Rendering;
// Before (HiQPdf)
using HiQPdf;

// After (IronPDF)
using IronPdf;
using IronPdf.Rendering;
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

完整的 API 参考

主类映射

HiQPdf 类IronPdf 类备注
<代码>HtmlToPdf</代码<代码>ChromePdfRenderer</代码主转换器类
<代码>PDF 文档</代码<代码>PDF 文档</代码名称相同,命名空间不同
<代码>HtmlToPdfVariableElement</代码<代码>TextHeaderFooter</代码> 或 <代码>HtmlHeaderFooter</代码页眉/页脚内容

转换方法映射

HiQPdf 方法IronPdf 方法备注
<代码>ConvertHtmlToMemory(html,baseUrl)</代码<代码>RenderHtmlAsPdf(html)</代码返回 PdfDocument
<代码>ConvertUrlToMemory(url)</代码<代码>RenderUrlAsPdf(url)</代码返回 PdfDocument
<代码>File.WriteAllBytes(path,字节)</代码<代码>pdf.SaveAs(路径)</代码直接保存法

PDF 文档方法映射

HiQPdf 方法IronPdf 方法备注
<代码>PdfDocument.FromFile(路径)</代码<代码>PdfDocument.FromFile(路径)</代码相同的方法名称
<代码>document1.AddDocument(document2)</代码<代码>PdfDocument.Merge(pdf1, pdf2)</ 代码静态合并法
<代码>document.WriteToFile(路径)</代码<代码>pdf.SaveAs(路径)</代码不同的方法名称

页眉/页脚占位符映射

HiQPdf 占位符IronPdf 占位符说明
<代码>{CrtPage}</代码{page}当前页码
<代码>{页数}</代码<代码>{总页数}</代码总页数

代码迁移示例

示例 1:HTML 到 PDF 的转换

之前 (HiQPdf):

// NuGet: Install-Package HiQPdf
using HiQPdf;
using System;

class Program
{
    static void Main()
    {
        HtmlToPdf htmlToPdfConverter = new HtmlToPdf();
        byte[] pdfBuffer = htmlToPdfConverter.ConvertUrlToMemory("https://example.com");
        System.IO.File.WriteAllBytes("output.pdf", pdfBuffer);

        // Convert HTML string
        string html = "<h1>Hello World</h1><p>This is a PDF document.</p>";
        byte[] pdfFromHtml = htmlToPdfConverter.ConvertHtmlToMemory(html, "");
        System.IO.File.WriteAllBytes("fromhtml.pdf", pdfFromHtml);
    }
}
// NuGet: Install-Package HiQPdf
using HiQPdf;
using System;

class Program
{
    static void Main()
    {
        HtmlToPdf htmlToPdfConverter = new HtmlToPdf();
        byte[] pdfBuffer = htmlToPdfConverter.ConvertUrlToMemory("https://example.com");
        System.IO.File.WriteAllBytes("output.pdf", pdfBuffer);

        // Convert HTML string
        string html = "<h1>Hello World</h1><p>This is a PDF document.</p>";
        byte[] pdfFromHtml = htmlToPdfConverter.ConvertHtmlToMemory(html, "");
        System.IO.File.WriteAllBytes("fromhtml.pdf", pdfFromHtml);
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

After (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderUrlAsPdf("https://example.com");
        pdf.SaveAs("output.pdf");

        // Convert HTML string
        string html = "<h1>Hello World</h1><p>This is a PDF document.</p>";
        var pdfFromHtml = renderer.RenderHtmlAsPdf(html);
        pdfFromHtml.SaveAs("fromhtml.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderUrlAsPdf("https://example.com");
        pdf.SaveAs("output.pdf");

        // Convert HTML string
        string html = "<h1>Hello World</h1><p>This is a PDF document.</p>";
        var pdfFromHtml = renderer.RenderHtmlAsPdf(html);
        pdfFromHtml.SaveAs("fromhtml.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

HiQPdf 方法需要创建一个<代码>HtmlToPdf</代码实例,调用 ConvertUrlToMemory()ConvertHtmlToMemory() 获得一个字节数组,然后手动将字节写入文件。IronPDF 的<代码>ChromePdfRenderer</代码返回一个<代码>PDF 文档</代码对象,并直接提供 SaveAs() 方法,从而省去了手动写入文件的步骤。现代 Chromium 引擎还能更好地呈现复杂的 HTML/CSS/JavaScript 内容。 有关其他渲染选项,请参阅 HTML to PDF 文档

示例 2:合并多个 PDF 文件

之前 (HiQPdf):

// NuGet: Install-Package HiQPdf
using HiQPdf;
using System;

class Program
{
    static void Main()
    {
        // Create first PDF
        HtmlToPdf converter1 = new HtmlToPdf();
        byte[] pdf1 = converter1.ConvertHtmlToMemory("<h1>First Document</h1>", "");
        System.IO.File.WriteAllBytes("doc1.pdf", pdf1);

        // Create second PDF
        HtmlToPdf converter2 = new HtmlToPdf();
        byte[] pdf2 = converter2.ConvertHtmlToMemory("<h1>Second Document</h1>", "");
        System.IO.File.WriteAllBytes("doc2.pdf", pdf2);

        // Merge PDFs
        PdfDocument document1 = PdfDocument.FromFile("doc1.pdf");
        PdfDocument document2 = PdfDocument.FromFile("doc2.pdf");
        document1.AddDocument(document2);
        document1.WriteToFile("merged.pdf");
    }
}
// NuGet: Install-Package HiQPdf
using HiQPdf;
using System;

class Program
{
    static void Main()
    {
        // Create first PDF
        HtmlToPdf converter1 = new HtmlToPdf();
        byte[] pdf1 = converter1.ConvertHtmlToMemory("<h1>First Document</h1>", "");
        System.IO.File.WriteAllBytes("doc1.pdf", pdf1);

        // Create second PDF
        HtmlToPdf converter2 = new HtmlToPdf();
        byte[] pdf2 = converter2.ConvertHtmlToMemory("<h1>Second Document</h1>", "");
        System.IO.File.WriteAllBytes("doc2.pdf", pdf2);

        // Merge PDFs
        PdfDocument document1 = PdfDocument.FromFile("doc1.pdf");
        PdfDocument document2 = PdfDocument.FromFile("doc2.pdf");
        document1.AddDocument(document2);
        document1.WriteToFile("merged.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

After (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();

        // Create first PDF
        var pdf1 = renderer.RenderHtmlAsPdf("<h1>First Document</h1>");
        pdf1.SaveAs("doc1.pdf");

        // Create second PDF
        var pdf2 = renderer.RenderHtmlAsPdf("<h1>Second Document</h1>");
        pdf2.SaveAs("doc2.pdf");

        // Merge PDFs
        var merged = PdfDocument.Merge(pdf1, pdf2);
        merged.SaveAs("merged.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();

        // Create first PDF
        var pdf1 = renderer.RenderHtmlAsPdf("<h1>First Document</h1>");
        pdf1.SaveAs("doc1.pdf");

        // Create second PDF
        var pdf2 = renderer.RenderHtmlAsPdf("<h1>Second Document</h1>");
        pdf2.SaveAs("doc2.pdf");

        // Merge PDFs
        var merged = PdfDocument.Merge(pdf1, pdf2);
        merged.SaveAs("merged.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

HiQPdf 方法要求使用 PdfDocument.FromFile() 从文件加载文档,在第一个文档上调用 AddDocument() 添加第二个文档,然后使用 WriteToFile() 保存。IronPDF提供了一个更简洁的静态 PdfDocument.Merge() 方法,可直接接受多个<代码>PDF 文档</代码对象--无需中间文件操作。 了解有关 合并和拆分 PDF 的更多信息。

示例 3:带有页码的 PDF 页眉和页脚

之前 (HiQPdf):

// NuGet: Install-Package HiQPdf
using HiQPdf;
using System;

class Program
{
    static void Main()
    {
        HtmlToPdf htmlToPdfConverter = new HtmlToPdf();

        // Add header
        htmlToPdfConverter.Document.Header.Height = 50;
        HtmlToPdfVariableElement headerHtml = new HtmlToPdfVariableElement("<div style='text-align:center'>Page Header</div>", "");
        htmlToPdfConverter.Document.Header.Add(headerHtml);

        // Add footer with page number
        htmlToPdfConverter.Document.Footer.Height = 50;
        HtmlToPdfVariableElement footerHtml = new HtmlToPdfVariableElement("<div style='text-align:center'>Page {CrtPage} of {PageCount}</div>", "");
        htmlToPdfConverter.Document.Footer.Add(footerHtml);

        byte[] pdfBuffer = htmlToPdfConverter.ConvertHtmlToMemory("<h1>Document with Headers and Footers</h1>", "");
        System.IO.File.WriteAllBytes("header-footer.pdf", pdfBuffer);
    }
}
// NuGet: Install-Package HiQPdf
using HiQPdf;
using System;

class Program
{
    static void Main()
    {
        HtmlToPdf htmlToPdfConverter = new HtmlToPdf();

        // Add header
        htmlToPdfConverter.Document.Header.Height = 50;
        HtmlToPdfVariableElement headerHtml = new HtmlToPdfVariableElement("<div style='text-align:center'>Page Header</div>", "");
        htmlToPdfConverter.Document.Header.Add(headerHtml);

        // Add footer with page number
        htmlToPdfConverter.Document.Footer.Height = 50;
        HtmlToPdfVariableElement footerHtml = new HtmlToPdfVariableElement("<div style='text-align:center'>Page {CrtPage} of {PageCount}</div>", "");
        htmlToPdfConverter.Document.Footer.Add(footerHtml);

        byte[] pdfBuffer = htmlToPdfConverter.ConvertHtmlToMemory("<h1>Document with Headers and Footers</h1>", "");
        System.IO.File.WriteAllBytes("header-footer.pdf", pdfBuffer);
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

After (IronPDF):

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

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();

        // Configure header and footer
        renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
        {
            CenterText = "Page Header",
            FontSize = 12
        };

        renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
        {
            CenterText = "Page {page} of {total-pages}",
            FontSize = 10
        };

        var pdf = renderer.RenderHtmlAsPdf("<h1>Document with Headers and Footers</h1>");
        pdf.SaveAs("header-footer.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();

        // Configure header and footer
        renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
        {
            CenterText = "Page Header",
            FontSize = 12
        };

        renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
        {
            CenterText = "Page {page} of {total-pages}",
            FontSize = 10
        };

        var pdf = renderer.RenderHtmlAsPdf("<h1>Document with Headers and Footers</h1>");
        pdf.SaveAs("header-footer.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

HiQPdf 方法要求设置 Document.Header.Height, 创建<代码>HtmlToPdfVariableElement</代码对象,并在页眉/页脚部分调用 Add() 。 页码占位符使用<代码>{CrtPage}</代码和<代码>{页数}</代码语法。 IronPdf 通过 CenterText 属性和不同的占位符语法提供了更简洁的 TextHeaderFooter 配置:{page}{total-pages}. 有关其他选项,包括基于 HTML 的页眉,请参见 页眉和页脚文档


关键迁移说明

替换语法

对于有页码的文档来说,最重要的变化是占位符语法:

//HiQPdfplaceholders
"Page {CrtPage} of {PageCount}"

//IronPDFplaceholders
"Page {page} of {total-pages}"
//HiQPdfplaceholders
"Page {CrtPage} of {PageCount}"

//IronPDFplaceholders
"Page {page} of {total-pages}"
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

完整的占位符映射: -<代码>{CrtPage}</代码→ {page} -<代码>{页数}</代码→<代码>{总页数}</代码页码总数

合并方法差异

HiQPdf 将第一个文档修改到位:

// HiQPdf: Modifies document1
document1.AddDocument(document2);
document1.WriteToFile("merged.pdf");
// HiQPdf: Modifies document1
document1.AddDocument(document2);
document1.WriteToFile("merged.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

IronPdf 返回一个新的合并文档:

// IronPDF: Returns new document
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");
// IronPDF: Returns new document
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

无 3 页限制

HiQPdf 的免费版本输出上限为 3 页,并带有水印。IronPDF可生成完整的文档,在试用期内没有人为限制。

重用 ChromePdfRenderer。

与HiQPdf不同的是,您可能会为每次转换创建新的<代码>HtmlToPdf</代码实例,而IronPDF的<代码>ChromePdfRenderer</代码应重复使用:

// IronPDF: Create once, reuse
var renderer = new ChromePdfRenderer();
var pdf1 = renderer.RenderHtmlAsPdf(html1);
var pdf2 = renderer.RenderHtmlAsPdf(html2);
// IronPDF: Create once, reuse
var renderer = new ChromePdfRenderer();
var pdf1 = renderer.RenderHtmlAsPdf(html1);
var pdf2 = renderer.RenderHtmlAsPdf(html2);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

故障排除

问题 1:HtmlToPdf 未找到

问题HtmlToPdf 类在IronPDF中不存在。

解决方案:替换为 ChromePdfRenderer

// HiQPdf
HtmlToPdf htmlToPdfConverter = new HtmlToPdf();

// IronPDF
var renderer = new ChromePdfRenderer();
// HiQPdf
HtmlToPdf htmlToPdfConverter = new HtmlToPdf();

// IronPDF
var renderer = new ChromePdfRenderer();
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

问题 2:未找到 ConvertHtmlToMemory

问题ConvertHtmlToMemory() 方法不存在。

解决方案:使用 RenderHtmlAsPdf()

// HiQPdf
byte[] pdfBytes = converter.ConvertHtmlToMemory(html, "");

// IronPDF
var pdf = renderer.RenderHtmlAsPdf(html);
byte[] pdfBytes = pdf.BinaryData;
// HiQPdf
byte[] pdfBytes = converter.ConvertHtmlToMemory(html, "");

// IronPDF
var pdf = renderer.RenderHtmlAsPdf(html);
byte[] pdfBytes = pdf.BinaryData;
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

问题 3:页码占位符不工作

问题{CrtPage} 和<代码>{页数}</代码按字面意思出现在输出中。

解决方案:更新 IronPdf 占位符语法:

//HiQPdfsyntax (won't work)
"Page {CrtPage} of {PageCount}"

//IronPDFsyntax
"Page {page} of {total-pages}"
//HiQPdfsyntax (won't work)
"Page {CrtPage} of {PageCount}"

//IronPDFsyntax
"Page {page} of {total-pages}"
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

问题 4:未找到 HtmlToPdfVariableElement

问题HtmlToPdfVariableElement 类不存在。

解决方案:使用 TextHeaderFooterHtmlHeaderFooter

// HiQPdf
HtmlToPdfVariableElement headerHtml = new HtmlToPdfVariableElement("<div>Header</div>", "");
converter.Document.Header.Add(headerHtml);

// IronPDF
renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
{
    CenterText = "Header",
    FontSize = 12
};
// HiQPdf
HtmlToPdfVariableElement headerHtml = new HtmlToPdfVariableElement("<div>Header</div>", "");
converter.Document.Header.Add(headerHtml);

// IronPDF
renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
{
    CenterText = "Header",
    FontSize = 12
};
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

迁移清单

迁移前

  • [ ] 清点代码库中所有HiQPdfAPI 调用
  • [文档当前页面大小、页边距和设置
  • [ ] 确定页眉/页脚配置和占位符
  • [ ] 获取 IronPdf 许可证密钥
  • [ ] 在开发环境中测试 IronPdf

代码迁移

  • [ ] 删除所有HiQPdfNuGet 软件包(所有变体)
  • [ ] 安装 IronPdf NuGet 软件包:<代码>dotnet 添加软件包 IronPdf</ 代码
  • [更新命名空间导入
  • [ ] 将<代码>HtmlToPdf</代码替换为 ChromePdfRenderer
  • [ ] 将 ConvertHtmlToMemory() 转换为 RenderHtmlAsPdf()
  • [ ] 将 ConvertUrlToMemory() 转换为 RenderUrlAsPdf()
  • [ ] 更新页眉/页脚占位符({CrtPage}{page},<代码>{页数}</代码→ {total-pages})
  • [ ] 将<代码>HtmlToPdfVariableElement</代码替换为 TextHeaderFooter
  • [更新合并操作(<代码>AddDocument</代码> → <代码>PdfDocument.Merge</代码)
  • [ ] 在启动时添加许可证密钥初始化

测试

  • [ ] 测试 HTML 到 PDF 的转换
  • [ ] 测试 URL 到 PDF 的转换
  • [ ] 验证页眉/页脚渲染
  • [ ] 验证页码占位符
  • [ ] 测试 PDF 合并
  • [ ] 测试 JavaScript 较多的页面(现在支持 Chromium)

后迁移

  • [ ] 从配置中移除HiQPdf序列号
  • [ ] 更新文档
  • [ ] 监控任何渲染差异

结论

从HiQPdf迁移到IronPDF为 .NET 应用程序提供了几个显著优势。 您将获得一个现代化的 Chromium 渲染引擎,它完全支持 React、Angular、Vue 和复杂的 JavaScript 框架。 带有水印的 3 页限制消失了,取而代之的是真正的全功能试用版。 一个统一的 NuGet 软件包将取代零散的HiQPdf变体。

本次迁移的主要变化有 1.类替换:<代码>HtmlToPdf</代码> → <代码>ChromePdfRenderer</代码 2.方法替换:<代码>ConvertHtmlToMemory()</代码> → <代码>RenderHtmlAsPdf().BinaryData</代码 3.合并方法:<代码>document1.AddDocument(document2)</代码> → <代码>PdfDocument.Merge(pdf1, pdf2)</ 代码 4.占位符语法{CrtPage}{page},<代码>{页数}</代码→ {total-pages}. 5.页眉/页脚:<代码>HtmlToPdfVariableElement</代码> → <代码>TextHeaderFooter</代码

探索完整的IronPdf文档教程API参考,加速您的HiQPdf迁移。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。