跳至页脚内容
产品比较

IronPDF 与 PDFShift:C# HTML 转 PDF API 对比

IronPDF 提供可靠的本地 C# 库,永久许可起价为 749 美元,而 PDFShift 提供云 API,按转换次数付费定价。 对于每月处理超过 500 个 PDF 文件的初创公司而言,IronPDF 更具成本效益,提供更好的数据隐私和离线功能。

便携式文档格式 (PDF)是一种在单个文档中表示文本、链接、图形等的标准格式。 在 C# 中操作 PDF 需要专门用于 .NET 应用程序的 PDF 库。 本文比较了两种不同的 PDF 生成 API,考察了它们的性能、功能和许可。 在构建 .NET 应用程序时,开发人员需要能够处理复杂 HTML 布局、 CSS 样式和 JavaScript 渲染的PDF 生成功能

本文讨论的PDF API包括:

  • IronPDF
  • PDFShift

什么是 IronPDF? IronPDF 是一个完整的[HTML 到 PDF 转换](https://ironpdf.com/how-to/html-string-to-pdf/)API,专为 .NET 和 .NET Core 开发而设计。 该库可转换 HTML 网站并提供丰富的 PDF 处理功能。 IronPDF 使开发人员能够在 .NET 环境中[创建](https://ironpdf.com/how-to/create-new-pdfs/)、[修改](https://ironpdf.com/tutorials/csharp-edit-pdf-complete-tutorial/)和[提取 PDF 文档中的内容](https://ironpdf.com/how-to/extract-text-and-images/)。 该库简化了从 HTML 页面生成 PDF 的过程,并支持 MVC 应用程序和[Razor Pages](https://ironpdf.com/how-to/cshtml-to-pdf-razor/)的[CSHTML 到 PDF 转换](https://ironpdf.com/how-to/cshtml-to-pdf-mvc-core/)。 PDF文件可以进行编辑、添加印章,还可以通过添加页眉和页脚来改进。 该库简化了[PDF 文本的读取](https://ironpdf.com/how-to/csharp-parse-pdf/)和[图像的提取](https://ironpdf.com/how-to/extract-text-and-images/)。 IronPDF 使用[.NET Chromium 引擎](https://ironpdf.com/how-to/ironpdf-2021-chrome-rendering-engine-eap/)进行 HTML 到 PDF 的渲染。 该引擎可确保[像素级完美渲染](https://ironpdf.com/how-to/pixel-perfect-html-to-pdf/),并支持包括[JavaScript 到 PDF 转换](https://ironpdf.com/how-to/javascript-to-pdf/)在内的现代 Web 技术。 [Chrome渲染引擎的里程碑](https://ironpdf.com/product-updates/milestones-chrome-rendering/)标志着渲染精度和[性能优化](https://ironpdf.com/product-updates/milestones-stability-performance/)方面取得了重大进展。 ### IronPDF提供哪些功能? #### 有哪些PDF转换选项? 从[HTML](https://ironpdf.com/how-to/html-file-to-pdf/) 、 [HTML 字符串](https://ironpdf.com/how-to/html-string-to-pdf/)、 [MVC 视图](https://ironpdf.com/how-to/cshtml-to-pdf-mvc-core/)、 [Web 表单](https://ironpdf.com/how-to/aspx-to-pdf/)和[URL](https://ironpdf.com/how-to/url-to-pdf/)创建 PDF。 同时支持[Markdown](https://ironpdf.com/how-to/md-to-pdf/) 、 [XML](https://ironpdf.com/how-to/xml-to-pdf/)和[RTF](https://ironpdf.com/how-to/rtf-to-pdf/)格式转换。 [转换功能](https://ironpdf.com/features/convert/)包括[DOCX 转 PDF](https://ironpdf.com/how-to/docx-to-pdf/)和[图像转 PDF](https://ironpdf.com/how-to/image-to-pdf/)转换。 对于 Web 应用程序,IronPDF 可处理[ASPX 页面转换](https://ironpdf.com/examples/rendering-aspx-pages-as-pdfs/)并支持[无头 CSHTML 渲染](https://ironpdf.com/how-to/cshtml-to-pdf-razor-headlessly/)。 #### PDF成像的工作原理是什么? [从 PDF 创建图像](https://ironpdf.com/how-to/rasterize-pdf-to-images/),以及[从图像创建 PDF](https://ironpdf.com/how-to/image-to-pdf/) 。 包括图像提取、多种格式和[PDF 打印](https://ironpdf.com/how-to/print-pdf/)。 支持[SVG 图形](https://ironpdf.com/how-to/SVGs/)和[Azure Blob 存储图像](https://ironpdf.com/how-to/images-azure-blob-storage/)。 该库可处理[多帧 TIFF 转换](https://ironpdf.com/examples/multi-frame-tiff-to-pdf/),并提供[高质量的 PDF 到图像转换](https://ironpdf.com/examples/rasterize-a-pdf-to-images/)。 为了实现内存高效的处理,请使用[MemoryStream 进行光栅化](https://ironpdf.com/troubleshooting/rasterize-to-image-using-memorystream/)。 #### 包含哪些文件I/O功能? IronPDF 提供[128 位加密](https://ironpdf.com/how-to/pdf-permissions-passwords/)、密码保护和[数字签名](https://ironpdf.com/how-to/signing/)。 包括[HSM 签名](https://ironpdf.com/how-to/signing-pdf-with-hsm/)和[PDF/A 合规性](https://ironpdf.com/how-to/pdfa/)。 [PDF/A 里程碑](https://ironpdf.com/product-updates/milestones-pdf-a/)扩展了对归档格式的支持,包括[PDF/A-3 和 ZUGFeRD](https://ironpdf.com/product-updates/milestones-pdf-a3-zugferd/) 。 其他安全功能包括[清理 PDF 文件](https://ironpdf.com/how-to/sanitize-pdf/)和管理[修订历史记录](https://ironpdf.com/how-to/revision-history/)。 #### 如何编辑PDF文件? IronPDF 提供[水印](https://ironpdf.com/how-to/custom-watermark/)、[页面管理](https://ironpdf.com/how-to/add-copy-delete-pages-pdf/)、[背景](https://ironpdf.com/how-to/background-foreground/)、前景和完整的[PDF 操作功能](https://ironpdf.com/features/edit/)。 包括[绘图](https://ironpdf.com/how-to/draw-line-and-rectangle/)、[注释](https://ironpdf.com/how-to/annotations/)和[表单管理](https://ironpdf.com/how-to/edit-forms/)。 高级编辑功能包括[文本替换](https://ironpdf.com/how-to/find-replace-text/)、[编辑](https://ironpdf.com/how-to/redact-text/)和[转换 PDF 页面](https://ironpdf.com/how-to/transform-pdf-pages/)。 [PDFium DOM 里程碑](https://ironpdf.com/product-updates/milestones-pdfium-dom/)改进了对复杂 PDF 结构的处理。 #### 如何从PDF文件中提取内容? 直接从PDF文件中[提取嵌入文本](https://ironpdf.com/how-to/extract-text-and-images/)。 对于图像中嵌入的文本,请使用[IronOCR](https://ironsoftware.com/csharp/ocr/) 。 [PDF DOM 对象](https://ironpdf.com/how-to/access-pdf-dom-object/)提供对 PDF 结构的程序化访问。 高级提取功能包括[读取 PDF 文本](https://ironpdf.com/examples/reading-pdf-text/)和[管理字体](https://ironpdf.com/how-to/manage-fonts/)。 对于文本分析,使用[OpenAI 集成](https://ironpdf.com/how-to/openai/)进行智能文档处理。 #### 页眉和页脚是如何工作的? 创建 PDF 文件时可以添加[页眉和页脚,](https://ironpdf.com/how-to/headers-and-footers/)也可以添加到现有的 PDF 文件中。 支持带有动态[页码的](https://ironpdf.com/how-to/page-numbers/)[文本和 HTML 标题](https://ironpdf.com/examples/html-headers-and-footers/)。 高级选项包括[在特定页面上添加页眉](https://ironpdf.com/examples/adding-headers-and-footers-advanced/)和管理[分页符](https://ironpdf.com/troubleshooting/headers-footers-page-breaks/)。 [渲染选项](https://ironpdf.com/how-to/rendering-options/)可对布局和[纸张尺寸](https://ironpdf.com/how-to/custom-paper-size/)进行精细控制。 #### 兼容哪些平台? IronPDF 支持与 C# 兼容的操作系统和框架: - [Windows](https://ironpdf.com/get-started/windows/)和[Windows Server](https://ironpdf.com/how-to/windows/) [Linux](https://ironpdf.com/get-started/linux/)发行版 - [macOS](https://ironpdf.com/get-started/macos/)英特尔和苹果芯片 - [.NET Core 2.1+、.NET 6 和 5](https://ironpdf.com/docs/) - 符合 .NET Standard 2.0 标准 - [Microsoft Azure](https://ironpdf.com/get-started/azure/)和[Azure Functions](https://ironpdf.com/how-to/azure/) - [AWS](https://ironpdf.com/get-started/aws/)和[AWS Lambda](https://ironpdf.com/get-started/aws/) [Docker](https://ironpdf.com/get-started/ironpdf-docker/)容器 - [Android](https://ironpdf.com/get-started/android/)和[Blazor](https://ironpdf.com/how-to/blazor-tutorial/) [兼容性里程碑](https://ironpdf.com/product-updates/milestones-compatibility/)扩大了平台支持范围。 有关部署指南,请参阅[IronPDF 和 IIS](https://ironpdf.com/troubleshooting/ironpdf-and-iis/)以及[部署故障排除](https://ironpdf.com/troubleshooting/adding-ironpdf-to-a-software-program-installer/)。 ## 什么是PDFShift? PDFShift 是一个 HTML 转 PDF 转换 API,可通过云服务提供快速转换。 该 API 提供并行转换、异步查询、原始 HTML 支持等功能。 PDFShift 支持 Ruby、Python、JavaScript、Node 和 PHP。对于[VB.NET](https://ironpdf.com/get-started/vb-net-pdf/)或[F#](https://ironpdf.com/get-started/fsharp-pdf-library-html-to-pdf/)开发人员,IronPDF 提供原生支持,而 PDFShift 则需要通过 HTTP 集成。 如需与其他云服务进行比较,请参阅[Aspose 与 IronPDF 的比较](https://ironpdf.com/competitors/aspose-vs-ironpdf/)以及[Syncfusion 与 IronPDF 的比较](https://ironpdf.com/competitors/syncfusion-vs-ironpdf/)。 PDFShift 支持自定义页眉/页脚、CSS 应用和文件加密。 然而,该服务缺乏高级操作功能,例如[PDF 压缩](https://ironpdf.com/how-to/pdf-compression/)、[线性化](https://ironpdf.com/how-to/linearize-pdf/)或[PDF/UA 合规性](https://ironpdf.com/how-to/pdfua/)。 对于企业需求,请查看[安全 CVE 披露](https://ironpdf.com/troubleshooting/ironpdf-security-cve/)和[Kerberos 身份验证](https://ironpdf.com/troubleshooting/kerberos/)。 ### PDFShift提供哪些功能? #### 并行转换是如何工作的? PDFShift支持并行转换,可同时处理多个文档。 有关类似功能,请参阅 IronPDF 的[异步和多线程指南](https://ironpdf.com/how-to/async/)。 IronPDF 提供[并行 PDF 生成示例](https://ironpdf.com/examples/parallel/)和[多线程生成示例](https://ironpdf.com/examples/threading/),并附有性能基准测试。 [异步示例](https://ironpdf.com/examples/async/)演示了批处理优化。 #### 有哪些页眉和页脚选项可供选择? 创建带有页码和 CSS/JavaScript 的自定义页眉/页脚。 IronPDF 提供高级选项,包括[重复的表格标题](https://ironpdf.com/how-to/html-to-pdf-responsive-css/)和[自定义 HTML 标题](https://ironpdf.com/examples/html-headers-and-footers/)。 [传统的文本标题](https://ironpdf.com/examples/headers-and-footers/)实现起来比较简单,而[HTML 标题则](https://ironpdf.com/examples/html-headers-and-footers/)可以实现复杂的布局。 对于动态内容,请使用[JavaScript 消息监听器](https://ironpdf.com/examples/javascript-message-listener/)。 #### 我可以在不公开页面的情况下转换原始HTML吗? PDFShift转换不包含公共页面的原始HTML。 IronPDF 提供类似的功能,包括[基本 URL 配置](https://ironpdf.com/how-to/base-urls/)和[DataURI 嵌入](https://ironpdf.com/how-to/datauris/)。 [嵌入图像 base64 示例](https://ironpdf.com/examples/embed-image-base64/)展示了独立的 HTML 转换。 为了确保转换安全,请使用[自定义日志记录](https://ironpdf.com/how-to/custom-logging/)和[HTTP 请求标头](https://ironpdf.com/how-to/http-request-header/)。 #### PDF文件的质量如何? PDFShift 可以快速创建高保真 PDF 文件。 IronPDF 的[Chrome 渲染引擎](https://ironpdf.com/tutorials/pixel-perfect-html-to-pdf/)可生成与浏览器输出完全匹配的像素级完美 PDF 文件。 这篇[像素级精细教程](https://ironpdf.com/tutorials/pixel-perfect-html-to-pdf/)讲解了质量优化。 针对特定需求,配置[视口设置](https://ironpdf.com/examples/viewport/)和[渲染延迟](https://ironpdf.com/troubleshooting/render-delay-timeout/)。 #### 异步请求是如何工作的? 通过简单的集成实现转化完成的实时通知。 IronPDF 提供[完整的异步支持](https://ironpdf.com/how-to/async/),并附有批量处理示例。 [异步 PDF 生成示例](https://ironpdf.com/examples/async/)展示了性能提升。 对于大规模处理,请参阅[内存管理](https://ironpdf.com/troubleshooting/memory-leak-in-ironpdf/)和[性能帮助](https://ironpdf.com/troubleshooting/ironpdf-performance-assistance/)。 ## 如何在 Visual Studio 中创建新项目? 打开 Visual Studio,选择"文件">"新建项目">"控制台应用程序"。 本示例使用控制台应用程序。 有关安装说明,请参阅[安装概述](https://ironpdf.com/get-started/installation-overview/)和[快速入门指南](https://ironpdf.com/get-started/quickstart/)。 其他项目模板包括[Blazor 教程](https://ironpdf.com/how-to/blazor-tutorial/)和[MAUI PDF 查看器](https://ironpdf.com/how-to/pdf-viewing/)。 如需排查安装问题,请参阅[快速故障排除指南](https://ironpdf.com/troubleshooting/quick-ironpdf-troubleshooting/)。 请输入项目名称和路径。 点击创建。 选择所需的 .NET 框架:
Visual Studio 项目配置对话框,显示新建控制台应用程序 (.NET Framework) 项目的设置选项,包括项目名称、位置和框架版本等字段。
Visual Studio 生成应用程序结构并打开`program.cs`以供代码输入:
Visual Studio Code 编辑器显示一个带有语法高亮显示的 C# 控制台应用程序模板,其中包含 using 语句和 Main 方法入口点。
## 如何安装 IronPDF 库? 四种安装 IronPDF 的方法: Visual Studio NuGet 包管理器 Visual Studio 命令行 - 直接从 NuGet 下载 - 直接从 IronPDF 下载 有关其他方法,请参阅[Windows Installer 指南](https://ironpdf.com/get-started/ironpdf-installer/)或[高级 NuGet 安装](https://ironpdf.com/get-started/advanced-installation-nuget/)。 平台特定指南包括[Linux 设置](https://ironpdf.com/get-started/linux/)、 [macOS 安装](https://ironpdf.com/get-started/macos/)和[Docker 部署](https://ironpdf.com/get-started/ironpdf-docker/)。 对于空间受限的环境,请使用[IronPDF Slim](https://ironpdf.com/troubleshooting/ironpdf-slim/) 。 ### 如何使用 Visual Studio NuGet 包管理器? Visual Studio 提供[NuGet 包管理器](https://ironpdf.com/get-started/advanced-installation-nuget/),可直接安装:
Visual Studio Code IDE 显示了 NuGet 包管理器界面,其中包含 .NET 开发的搜索结果和包安装选项。
在软件包管理器中搜索"IronPDF":
Visual Studio NuGet 包管理器显示 IronPDF 包的搜索结果,包括各种 IronPDF 库的版本号、下载次数和描述。
选择 IronPDF 并[安装该软件包](https://ironpdf.com/get-started/installation-overview/)。 对于较小的部署,请考虑使用[IronPDF Slim](https://ironpdf.com/troubleshooting/ironpdf-slim/) 。 如果遇到问题,请参阅[NuGet 包部署失败](https://ironpdf.com/troubleshooting/failed-to-deploy-nuget-package/)和[部署异常](https://ironpdf.com/troubleshooting/ironpdf-slim-v2025-5-6-deployment-exception/)。 ### 如何使用 Visual Studio 命令行? 转到"工具">"NuGet 程序包管理器">"程序包管理器控制台":
Visual Studio 工具菜单已展开,其中
在控制台中输入: ```shell :ProductInstall ``` 软件包下载并安装。 对于特定平台的安装,请参阅[Linux](https://ironpdf.com/troubleshooting/ironpdf-linux/) 、 [macOS](https://ironpdf.com/how-to/macos/)或[Docker 部署](https://ironpdf.com/get-started/ironpdfengine-docker/)。 如果出现依赖项错误,请检查[Chrome 依赖项](https://ironpdf.com/troubleshooting/error-while-deploying-chrome-dependencies/)和[Pdfium 依赖项](https://ironpdf.com/troubleshooting/error-while-deploying-pdfium-dependencies/)。
Visual Studio 包管理器控制台窗口显示一个空白的命令提示符,界面采用深色主题。
### 我可以直接从 NuGet 网页下载吗? 直接下载 NuGet 包: - 导航至[NuGet IronPDF 页面](https://www.nuget.org/packages/IronPdf/) - 选择下载包 - 双击即可自动安装 - 重新加载解决方案 有关包管理,请参阅[IronPDF 运行时文件夹指南](https://ironpdf.com/troubleshooting/ironpdf-runtimes-folder/)。 如果遇到版本冲突,请检查程序[集版本不匹配](https://ironpdf.com/troubleshooting/ironpdf-assembly-version-mismatch-exception/)和[ClickOnce 兼容性](https://ironpdf.com/troubleshooting/clickonce-troubleshooting/)。 ### 我可以直接从 IronPDF 网页下载吗? 从[IronPDF 下载页面](https://ironpdf.com/packages/IronPdf.zip)下载。 下载完成后: - 在解决方案窗口中右键单击项目 选择参考文献并浏览到文件 - 点击确定 有关许可设置,请参阅[使用许可证密钥](https://ironpdf.com/get-started/license-keys/)和[应用许可证](https://ironpdf.com/how-to/license-keys/)。 其他配置选项包括[在 Web.config 中设置许可证](https://ironpdf.com/troubleshooting/license-key-web.config/)和管理[许可证扩展](https://ironpdf.com/licensing/extensions/)。 ## PDFShift 的工作原理是什么? PDFShift 通过 API 进行远程操作。 使用 C# `RestClient`和 API 密钥身份验证提交 POST 请求。 服务器处理请求并通过 HTTP 返回 PDF 文件。对于本地处理,IronPDF 的[原生引擎](https://ironpdf.com/get-started/ironpdfengine/)可提供更佳的性能和安全性。 比较[原生引擎和远程引擎](https://ironpdf.com/get-started/ironpdfengine/)选项。 对于 API 替代方案,请查看[Apryse 与 IronPDF](https://ironpdf.com/competitors/apryse-vs-ironpdf/)以及[iText 与 IronPDF 的](https://ironpdf.com/competitors/itext-vs-ironpdf/)对比。 ## 如何将HTML转换为PDF? 这两种工具都提供[HTML转换功能](https://ironpdf.com/tutorials/html-to-pdf/),但方式不同。 IronPDF 提供丰富的选项,包括[HTML ZIP 文件](https://ironpdf.com/how-to/html-zip-file-to-pdf/)和[自定义渲染](https://ironpdf.com/how-to/rendering-options/)。 [创建 PDF 教程](https://ironpdf.com/tutorials/csharp-create-pdf-complete-tutorial/)涵盖了完整的生成方法。 对于高级场景,请探索[JavaScript 渲染](https://ironpdf.com/how-to/javascript-to-pdf/)和[响应式 CSS 处理](https://ironpdf.com/how-to/html-to-pdf-responsive-css/)。 ### 如何使用 IronPDF 从 URL 创建 PDF? 从 URL 创建 PDF 需要三行代码。 此代码示例展示了 IronPDF 如何允许开发人员实现[URL 到 PDF 的转换](https://ironpdf.com/examples/converting-a-url-to-a-pdf/): ```csharp using IronPdf; var Renderer = new IronPdf.ChromePdfRenderer(); // Configure render options for better results Renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4; Renderer.RenderingOptions.MarginTop = 25; Renderer.RenderingOptions.MarginBottom = 25; // Create a PDF from a URL or local file path using var pdf = Renderer.RenderUrlAsPdf("___PROTECTED_URL_68___"); // Export to a file or Stream pdf.SaveAs("url.pdf"); ``` 对于已验证的页面,请参阅[TLS 网站登录](https://ironpdf.com/how-to/logins/)。 对于 JavaScript 网站,请使用[WaitFor 延迟](https://ironpdf.com/how-to/waitfor/)和[自定义 JavaScript](https://ironpdf.com/examples/execute-custom-javascript/) 。 高级选项包括[渲染延迟](https://ironpdf.com/troubleshooting/render-delay-timeout/)和[JavaScript 到 PDF 的转换](https://ironpdf.com/examples/javascript-html-to-pdf/)。 有关性能优化,请参阅[初始渲染缓慢的解决方案](https://ironpdf.com/troubleshooting/initial-render-slow/)。 输出:
亚马逊巴基斯坦网站在玩具和游戏购物页面上显示一个更改收货地址的弹出窗口,页面上可以看到游戏配件和电子产品类别。
### 如何使用 IronPDF 将 HTML 转换为 PDF? 轻松[将HTML转换为PDF](https://ironpdf.com/examples/using-html-to-create-a-pdf/) : ```csharp using IronPdf; var pdf = new ChromePdfRenderer(); // Add custom CSS for better formatting pdf.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print; pdf.RenderingOptions.EnableJavaScript = true; // Include web fonts and icons pdf.RenderingOptions.WaitFor.FontsLoaded(); PdfDocument doc = pdf.RenderHtmlAsPdf("

This is a heading

"); doc.SaveAs("FirstPDFDocument.pdf"); ``` 对于复杂的 HTML 代码,请使用[基本 URL](https://ironpdf.com/how-to/base-urls/)而非相对路径。 添加[网页字体和图标](https://ironpdf.com/how-to/webfonts-webicons/)以优化排版。 其他格式选项包括[自定义字体](https://ironpdf.com/examples/google-fonts-htmltopdf/)和[国际语言](https://ironpdf.com/how-to/utf-8/)。 有关字体故障排除,请参阅[字体管理](https://ironpdf.com/troubleshooting/fonts/)和[字体字距调整问题](https://ironpdf.com/troubleshooting/font-kerning/)。
PDF 查看器界面显示了一个简单的文档,其中包含
### 如何使用 PDFShift 从 URL 创建 PDF? 使用 PDFShift 转换 URL 需要 POST 请求: ```csharp using System; using RestSharp; using RestSharp.Authenticators; using System.IO; namespace PDFShiftExample { class Program { static void Main(string[] args) { var client = new RestClient("___PROTECTED_URL_69___"); client.Authenticator = new HttpBasicAuthenticator("api", "your_api_key"); var request = new RestRequest(Method.POST); var json = new { source = "___PROTECTED_URL_70___", // Additional options landscape = false, use_print = false }; request.AddJsonBody(json); var response = client.Execute(request); if (!response.IsSuccessful) { // Handle the unsuccessful response Console.WriteLine($"Error: {response.StatusCode} - {response.ErrorMessage}"); } else { File.WriteAllBytes("result.pdf", response.RawBytes); } } } } ``` ### 如何使用 PDFShift 将 HTML 转换为 PDF? PDFShift 提供 HTML 转 PDF 功能: ```csharp using System; using System.IO; using RestSharp; using RestSharp.Authenticators; namespace PDFShiftExample { class Program { static void Main(string[] args) { var client = new RestClient("___PROTECTED_URL_71___"); client.Authenticator = new HttpBasicAuthenticator("api", "your_api_key"); var request = new RestRequest(Method.POST); string documentContent = File.ReadAllText("document.html"); var json = new { source = documentContent, // Additional formatting options margin = "20px", format = "A4" }; request.AddJsonBody(json); var response = client.Execute(request); if (!response.IsSuccessful) { // Handle the unsuccessful response Console.WriteLine($"Error: {response.StatusCode}"); } else { File.WriteAllBytes("result.pdf", response.RawBytes); } } } } ``` ## 如何添加自定义页眉和页脚? [页眉和页脚](https://ironpdf.com/examples/headers-and-footers/)通过提供跨页面一致的信息来改善 PDF 文档。 IronPDF 和 PDFShift 都支持此功能。 对于高级场景,请参阅[向页面添加页眉](https://ironpdf.com/examples/adding-headers-and-footers-advanced/)和[分页符控制](https://ironpdf.com/how-to/html-to-pdf-page-breaks/)。 [页码和分页符示例](https://ironpdf.com/examples/page-numbers-and-page-breaks/)展示了完整的实现方式。 如需控制布局,请探索[自定义边距](https://ironpdf.com/how-to/custom-margins/)和[PDF 页面方向](https://ironpdf.com/examples/pdf-page-orientation/)。 ### 如何使用 IronPDF 添加页眉和页脚? IronPDF 提供了两种实现[页眉和页脚](https://ironpdf.com/examples/html-headers-and-footers/)的方法: **`TextHeaderFooter`** :此方法使用带有动态数据的文本标题。 **`HtmlHeaderFooter`** :这种方法允许使用模板渲染 HTML 格式的页眉和页脚。 ```csharp using IronPdf; var Renderer = new IronPdf.ChromePdfRenderer(); // Configure text header with merge fields Renderer.RenderingOptions.FirstPageNumber = 1; // use 2 if a cover page will be appended Renderer.RenderingOptions.TextHeader.DrawDividerLine = true; Renderer.RenderingOptions.TextHeader.CenterText = "{url}"; Renderer.RenderingOptions.TextHeader.Font = IronPdf.Font.FontTypes.Helvetica; Renderer.RenderingOptions.TextHeader.FontSize = 12; // Add HTML footer with page numbers Renderer.RenderingOptions.HtmlFooter = new IronPdf.HtmlHeaderFooter() { HtmlFragment = "
Page {page} of {total-pages}
", Height = 25, DrawDividerLine = true }; // Apply custom margins Renderer.RenderingOptions.MarginTop = 40; Renderer.RenderingOptions.MarginBottom = 40; var pdf = Renderer.RenderHtmlAsPdf("

Document with Headers

"); pdf.SaveAs("headers-footers.pdf"); ``` 对于复杂的布局,可以考虑使用[目录](https://ironpdf.com/how-to/table-of-contents/)和[书签](https://ironpdf.com/how-to/bookmarks/)。 [大纲和书签示例](https://ironpdf.com/examples/bookmarks/)提供了导航结构。 为了实现精确定位,请使用[自定义边距示例](https://ironpdf.com/examples/ironpdf-set-custom-margins/)并[转换 PDF 页面](https://ironpdf.com/how-to/transform-pdf-pages/)。 ### 如何使用 PDFShift 添加页眉和页脚? PDFShift允许对文档进行自定义,添加页眉和页脚以进行标识或品牌推广: ```csharp using System; using RestSharp; using RestSharp.Authenticators; using System.IO; namespace PDFShiftExample { class Program { static void Main(string[] args) { var client = new RestClient("___PROTECTED_URL_72___"); client.Authenticator = new HttpBasicAuthenticator("api", "your_api_key"); var request = new RestRequest(Method.POST); var json = new { source = "___PROTECTED_URL_73___", footer = new { source = "
Page {{page}} of {{total}}
", spacing = "50px" }, header = new { source = "
Company Name
", spacing = "30px" } }; request.AddJsonBody(json); var response = client.Execute(request); if (!response.IsSuccessful) { // Handle the unsuccessful response } else { File.WriteAllBytes("result.pdf", response.RawBytes); } } } } ``` ## 如何在PDF文件中添加水印? [在PDF文件上添加水印](https://ironpdf.com/how-to/custom-watermark/)可以为文档增加品牌标识和安全性。 IronPDF 和 PDFShift 都支持水印功能。 有关其他选项,请参阅["为文本和图像添加印章"](https://ironpdf.com/how-to/stamp-text-image/)和["为新内容添加印章"](https://ironpdf.com/examples/stamping-new-content/) 。 [PDF水印示例](https://ironpdf.com/examples/pdf-watermarking/)演示了高级技术。 对于批量处理,请使用[高效的 HTML 时间戳](https://ironpdf.com/examples/stamping-html-pdf-multiple/)。 ### 如何使用 IronPDF 添加水印? IronPDF 可以使用 HTML 为 PDF 添加水印。 水印可以包含不透明度、旋转角度和超链接。 例如,请参阅[PDF 水印示例](https://ironpdf.com/examples/pdf-watermarking/)。 对于多个印章,请考虑[使用高效的 HTML 印章](https://ironpdf.com/examples/stamping-html-pdf-multiple/)。 其他选项包括[背景和前景示例](https://ironpdf.com/examples/backgrounds-and-foregrounds/)以及[绘制文本和位图](https://ironpdf.com/how-to/draw-text-and-bitmap/)。 ```csharp using IronPdf; var Renderer = new IronPdf.ChromePdfRenderer(); using var Pdf = Renderer.RenderUrlAsPdf("___PROTECTED_URL_74___"); // Add text watermark with opacity and rotation Pdf.WatermarkAllPages("

SAMPLE

", IronPdf.Editing.WaterMarkLocation.MiddleCenter, 50, // opacity -45, // rotation "___PROTECTED_URL_75___"); // Add image watermark Pdf.ApplyWatermark("Logo related to SAMPLE", 30, // opacity IronPdf.Editing.VerticalAlignment.Top, IronPdf.Editing.HorizontalAlignment.Right); Pdf.SaveAs(@"C:\Path\To\Watermarked.pdf"); ``` 对于高级水印,可结合[背景和前景](https://ironpdf.com/examples/backgrounds-and-foregrounds/)或[自定义印章](https://ironpdf.com/examples/stamping-new-content/)。 [附件封面示例](https://ironpdf.com/examples/pdf-cover-page/)展示了文档品牌标识。 为了实现精确控制,请使用[旋转文本](https://ironpdf.com/how-to/rotating-text/)和[缩放 PDF 对象](https://ironpdf.com/examples/scale-pdf-objects/)。
IronPDF NuGet 包页面显示版本 2022.6.6115,包含安装命令、370 万次下载量以及用于 C# PDF 创建和操作的功能。
### 如何使用PDFShift添加水印? PDFShift允许在文档中添加水印以作识别之用: ```csharp using System; using RestSharp; using RestSharp.Authenticators; using System.IO; namespace PDFShiftExample { class Program { static void Main(string[] args) { var client = new RestClient("___PROTECTED_URL_76___"); client.Authenticator = new HttpBasicAuthenticator("api", "your_api_key"); var request = new RestRequest(Method.POST); var json = new { source = "___PROTECTED_URL_77___", watermark = new { image = "___PROTECTED_URL_78___", offset_x = 50, offset_y = "100px", rotate = 45, opacity = 0.5 } }; request.AddJsonBody(json); var response = client.Execute(request); if (!response.IsSuccessful) { // Handle the unsuccessful response } else { File.WriteAllBytes("result.pdf", response.RawBytes); } } } } ``` ## 这些工具对Bootstrap和现代CSS的支持程度如何? 现代网页开发依赖于 CSS 框架来实现响应式设计,而 PDF 库必须准确地转换这些框架。 请参阅[Bootstrap 和 Flex CSS 指南](https://ironpdf.com/troubleshooting/bootstrap-flex-css/)。 对于响应式设计,请检查[视口和缩放设置](https://ironpdf.com/how-to/viewport-zoom/)以及[自定义纸张尺寸](https://ironpdf.com/how-to/custom-paper-size/)。 [自定义 PDF 纸张尺寸示例](https://ironpdf.com/examples/custom-pdf-paper-size/)显示了精确的尺寸。 对于布局控制,请探索[适应纸张大小、缩放](https://ironpdf.com/how-to/viewport-zoom/)和[响应式 HTML 转 PDF](https://ironpdf.com/examples/viewport/) 。 ### IronPDF是否支持Bootstrap和现代CSS框架? IronPDF 的[Chrome 渲染引擎](https://ironpdf.com/how-to/pixel-perfect-html-to-pdf/)为 CSS 框架提供了广泛的支持: **Bootstrap 5:**完整的 Flexbox 和 CSS Grid 布局,以及响应式实用工具 **Bootstrap 4:**完整的卡片系统、导航、表单组件 - **Tailwind CSS:**所有实用类和响应式修饰符 -**基础:**完整的网格和组件系统 **现代CSS3:** Flexbox、Grid、自定义属性、动画、变换 验证: [Bootstrap 首页](https://getbootstrap.com/)和[模板](https://getbootstrap.com/docs/5.3/examples/)转换准确无误。 请参阅[渲染选项指南](https://ironpdf.com/how-to/rendering-options/)。 IronPDF 支持[Angular 转 PDF](https://ironpdf.com/examples/angular-to-pdf/)及其他框架。 其他框架支持包括[JavaScript 图表](https://ironpdf.com/examples/js-charts-to-pdf/)和[WebGL 渲染](https://ironpdf.com/how-to/render-webgl/)。 为了获得最佳效果,请使用[HTML 渲染设置](https://ironpdf.com/examples/pdf-generation-settings/)和[像素级精确格式](https://ironpdf.com/troubleshooting/pixel-perfect-html-formatting/)。 **代码示例:使用 Bootstrap 的联系表单** ```csharp using IronPdf; var renderer = new ChromePdfRenderer(); // Configure for improve Bootstrap rendering renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen; renderer.RenderingOptions.EnableJavaScript = true; renderer.RenderingOptions.RenderDelay = 500; // Allow JS to execute renderer.RenderingOptions.ViewPortWidth = 1200; // Desktop viewport string bootstrapContact = @"

Contact Us

@
"; var pdf = renderer.RenderHtmlAsPdf(bootstrapContact); pdf.SaveAs("contact-form.pdf"); ``` **输出:**一个专业的联系表单,采用 Bootstrap 的表单控件、网格布局、卡片样式和输入组——所有内容均以 PDF 格式精确呈现。 更多示例请参见[渲染图表](https://ironpdf.com/examples/js-charts-to-pdf/)和[WebGL 网站](https://ironpdf.com/how-to/render-webgl/)。 [在 HTML 中添加条形码的示例](https://ironpdf.com/examples/barcode-htmltopdf/)显示了其他 HTML 元素。 为了优化性能,请使用[PDF 资源和性能指南](https://ironpdf.com/tutorials/pdf-assets-and-performance-csharp/)以及[包大小管理](https://ironpdf.com/troubleshooting/package-size-ironpdf/)。 ### PDFShift 是否支持 Bootstrap 和现代 CSS? -**云 API:**所有转换均通过 HTTP API 调用 PDFShift 服务器完成 - **Bootstrap 支持:**通常能很好地处理 Bootstrap 4/5 布局。 - **CSS3 支持:**良好的 flexbox 和现代 CSS 渲染 -**需要联网:**无法离线生成 PDF 文件 -**按文档计费:**按转换次数收费,而非按开发者许可收费。 **PDFShift 的关键考虑因素:** -**外部依赖:**所有 PDF 生成都需要互联网连接和外部 API 的可用性。 -**数据隐私:**发送到第三方服务器进行处理的 HTML 内容 -**批量成本:**按文档计费在大规模应用时可能会变得非常昂贵。 -**延迟:**网络往返会给每次转换增加延迟 -**不支持离线功能:**无法在物理隔离或离线环境下工作 **开发影响:**虽然 PDFShift 对 Bootstrap 的支持很好,但云架构引入了一些操作上的权衡: 1.按文档计算的持续费用与 IronPDF 按开发人员计算的一次性许可证费用对比 2.外部服务依赖与本地内部处理 3.敏感内容的数据处理注意事项 4.互联网连接要求与离线功能 **发展影响**:云架构引入了运营方面的考虑因素: 1. 持续的单份文件成本与一次性许可成本 2. 外部依赖性与本地处理控制 3. 敏感内容的数据处理要求 4. 网络连接前提条件 对于大批量应用或敏感数据,IronPDF 的本地处理功能可提供更好的控制和价值。 为了提高性能,可以考虑[并行生成](https://ironpdf.com/examples/parallel/)和[多线程](https://ironpdf.com/examples/threading/)。 [多线程示例](https://ironpdf.com/examples/threading/)展示了并发处理。 有关云替代方案,请参阅[Azure 部署](https://ironpdf.com/how-to/azure/)和[AWS Lambda 集成](https://ironpdf.com/troubleshooting/aws-lambda-amazon-linux-2/)。 请参阅[Bootstrap 和 Flexbox CSS 指南](https://ironpdf.com/troubleshooting/bootstrap-flex-css/)以及[HTML 渲染设置](https://ironpdf.com/examples/pdf-generation-settings/)。 为了支持现代 CSS,请查看[国际语言、CMYK](https://ironpdf.com/troubleshooting/international-languages-and-cmjk/)和[元数据可见性](https://ironpdf.com/troubleshooting/metadata-visibility/)。 ## 有哪些授权许可选项? IronPDF 提供[免费的开发者许可证](https://ironpdf.com/licensing/)。 轻量级套餐起价为$799 ,无任何隐藏费用。 该软件包包含[SaaS 和 OEM 再分发](https://ironpdf.com/licensing/)。 所有许可证均提供 30 天退款保证、一年支持和升级,并永久有效,可用于开发、测试、预发布和生产环境。 请参阅[IronPDF 的定价和许可信息](https://ironpdf.com/licensing/)。 有关许可证管理,请参阅[应用许可证密钥](https://ironpdf.com/troubleshooting/apply-a-license-key-in-ironpdf/)和[许可证密钥配置](https://ironpdf.com/troubleshooting/license-key-web.config/)。 [许可证密钥指南](https://ironpdf.com/how-to/license-keys/)涵盖所有配置方法。 有关许可故障排除,请参阅["无法连接到许可服务器"](https://ironpdf.com/troubleshooting/unable-to-connect-to-licensing-server/)和["使用声明"](https://ironpdf.com/troubleshooting/ironpdf-using/) 。
IronPDF 的许可页面显示三个级别:Lite 版(499 美元)、Professional 版(999 美元)和 Unlimited 版(2,999 美元),每个级别都有开发者和项目数量的限制。
PDFShift提供五种套餐,可使用积分按月或按年付费: 1.**免费**:每月 50 积分 2.**初创企业**:每月 500 积分(9 美元)或每年 6,000 积分(99 美元) 3.**加速计划**:每月 2,500 积分(24 美元)或每年 30,000 积分(240 美元) 4.**增长**:每月 5,000 积分(39 美元)或每年 60,000 积分(390 美元) 5.**企业版**:每月 25,000 积分(99 美元) 文件大小限制:1MB(免费),5MB(付费套餐)。
PDFShift 定价对比,展示了三种年度套餐:Startup(90 美元)、Boost(240 美元)和 Growth(390 美元),每种套餐的每月额度限额和超额费用各不相同。
访问[PDFShift 定价页面](https://pdfshift.io/#pricing)。 ## 我应该选择哪个PDF API? IronPDF[对独立开发者免费](https://ironpdf.com/licensing/),并提供丰富的 PDF 修改和转换功能。 IronPDF 提供卓越的[编辑](https://ironpdf.com/tutorials/csharp-edit-pdf-complete-tutorial/)和[格式化工具](https://ironpdf.com/how-to/metadata/)。 该库可将[HTML 转换为矢量 PDF,](https://ironpdf.com/tutorials/html-to-pdf/)用于商业印刷,输出清晰、高质量。 请参阅[Iron 软件许可信息](https://ironpdf.com/licensing/)。 如需更多功能,请探索[PDF 的组织](https://ironpdf.com/tutorials/organize-pdfs-complete-tutorial/)、 [PDF 的签名和保护](https://ironpdf.com/tutorials/csharp-pdf-security-complete-tutorial/)以及[PDF 转换选项](https://ironpdf.com/tutorials/convert-pdf/)。 [完整的功能列表](https://ironpdf.com/features/)涵盖所有功能。 对于企业功能,请查看[数字签名示例](https://ironpdf.com/examples/digitally-sign-a-pdf/)以及[加密和解密](https://ironpdf.com/examples/encryption-and-decryption/)。 PDFShift 是一个基于云的 HTML 转 PDF API,具有简单的接口并支持多种语言。 PDFShift 通过服务器请求处理并行转换。 然而,该服务缺乏高级功能,例如[PDF 表单创建](https://ironpdf.com/how-to/create-forms/)、 [PDF 合并](https://ironpdf.com/how-to/merge-or-split-pdfs/)、[文本替换](https://ironpdf.com/how-to/find-replace-text/)或[元数据编辑](https://ironpdf.com/how-to/metadata/)。 有关表单处理比较,请参阅[表单数据示例](https://ironpdf.com/examples/form-data/)和[填写及编辑表单](https://ironpdf.com/how-to/edit-forms/)。 关于文档组织,请查看[合并 PDF 示例](https://ironpdf.com/examples/merge-pdfs/)和[拆分 PDF 页面](https://ironpdf.com/examples/split-pdf-pages-csharp/)。 IronPDF 许可证面向开发者,一次性购买即可使用。 PDFShift采用按月或按年计费的积分制许可,需要持续订阅。 IronPDF支持OEM和SaaS分发; PDFShift 不会 有关许可证管理,请参阅[IronPDF 扩展](https://ironpdf.com/licensing/extensions/)和[升级选项](https://ironpdf.com/licensing/upgrades/)。 [变更日志](https://ironpdf.com/product-updates/changelog/)记录所有产品更新。 有关支持选项,请参阅[工程支持请求指南](https://ironpdf.com/troubleshooting/engineering-request-pdf/)和[最佳支持实践](https://ironpdf.com/troubleshooting/engineering-support-for-ironpdf/)。 对比两款工具:IronPDF 提供的功能要多得多。 PDFShift提供的PDF操作功能有限。 IronPDF 只需三行代码即可将[URL 转换为 PDF,](https://ironpdf.com/how-to/url-to-pdf/)而 PDFShift 则需要更复杂的代码。 IronPDF 可以快速轻松地集成到 .NET 项目中。 PDFShift 的云系统依赖于`RestSharp`和外部 API,这增加了集成的复杂性。 有关故障排除资源,请参阅[快速故障排除指南](https://ironpdf.com/troubleshooting/quick-ironpdf-troubleshooting/)和[工程支持](https://ironpdf.com/troubleshooting/engineering-support-for-ironpdf/)。 其他资源包括[Azure 日志文件](https://ironpdf.com/troubleshooting/azure-log-files/)和[AWS 日志文件](https://ironpdf.com/troubleshooting/aws-log-files/)。 有关部署指南,请参阅[Azure 部署故障排除](https://ironpdf.com/troubleshooting/azure/)和 [调试 Azure Functions](https://ironpdf.com/troubleshooting/debugging-azure-functions-on-local-machine-ironpdf/) 。 Iron Software 以两款工具的价格提供五款工具。 [铁娘子套房](https://ironsoftware.com/suite/)包括: [IronBarcode](https://ironsoftware.com/csharp/barcode/) - 条形码生成和读取 [IronXL](https://ironsoftware.com/csharp/excel/) - 无需 Office 即可操作 Excel 文件 [IronOCR](https://ironsoftware.com/csharp/ocr/) - 高级文本提取 OCR [IronPDF](https://ironpdf.com/) - 完整的 PDF 操作库 [IronWebScraper](https://ironsoftware.com/csharp/webscraper/) - 网络爬虫和数据提取 访问[Iron Suite 页面](https://ironsoftware.com/suite/),了解 IRONSUITE。如需了解其他 Iron Software 产品,请参阅[IronSecureDoc 文档](https://ironsoftware.com/enterprise/securedoc/),满足您的文档安全需求。 [产品演示](https://ironpdf.com/demos/)展示了实际应用场景。 如需进行竞争分析,请查看[QuestPDF 与 IronPDF 的](https://ironpdf.com/competitors/questpdf-vs-ironpdf/)对比。 [里程碑页面](https://ironpdf.com/product-updates/milestones/)重点介绍了自 2015 年以来的主要成就。
请注意PDFShift 是其各自所有者的注册商标。 本网站与 PDFShift 无关,也未得到 PDFShift 的支持或赞助。 所有产品名称、徽标和品牌均为各自所有者的财产。 比较仅供参考,反映的是撰写时的公开信息。

常见问题解答

如何在C#中将HTML转换为PDF?

你可以使用IronPDF的RenderHtmlAsPdf方法将HTML字符串转换为PDF。你还可以使用RenderHtmlFileAsPdf将HTML文件转换为PDF。

使用IronPDF进行PDF操作的好处是什么?

IronPDF 提供了一套强大的 PDF 操作功能,包括从各种格式创建 PDF,图像提取,加密,编辑功能,以及与多种平台的兼容性,如 Windows、Linux 和 Azure、AWS 等云服务。

PDFShift 的关键功能是什么?

PDFShift 是一个基于云的 API,支持快速的 HTML 到 PDF 转换,具有并行转换、自定义标题、异步请求等功能,并与多种编程语言兼容。

IronPDF 和 PDFShift 在许可方面有何不同?

IronPDF 提供了一次性购买的开发者基础许可和30天退款保证。相比之下,PDFShift 使用基于信用的许可系统,包括月度和年度计划。

IronPDF 可以在云环境中使用吗?

是的,IronPDF 支持 Microsoft Azure 和 AWS 等云环境,使其在不同的部署场景中具有多功能性。

如何使用 IronPDF 向 PDF 添加页眉和页脚?

IronPDF 允许您通过内置方法向 PDF 添加页眉和页脚,可以自定义为包含文本、图像或页码。

IronPDF 支持哪些平台?

IronPDF 支持几乎所有与 C# 兼容的操作系统和框架,包括 Windows、Linux、.NET Core,也可以在云环境中使用。

如何在我的 Visual Studio 项目中安装 IronPDF?

IronPDF 可以通过 Visual Studio NuGet 包管理器、Visual Studio 命令行安装,或直接从 NuGet 或 IronPDF 网页下载。

能否使用 IronPDF 从 PDF 中提取图像?

是的,IronPDF 提供了从 PDF 提取图像的功能,允许开发者操作和在原始文档之外重用图像。

Curtis Chau
技术作家

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

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