PdfiumViewer 与 IronPDF:技术比较指南
当.NET 开发人员需要在 Windows 窗体应用程序中使用 PDF 功能时,他们经常会遇到 PdfiumViewer--Google 的 PDFium 渲染引擎的 .NET 封装器。本比较将对PdfiumViewer和IronPDF进行研究,分析它们的架构差异、功能完整性以及是否适合现代应用程序的要求。
什么是 PdfiumViewer?
PdfiumViewer 是 PDFium 的 .NET 封装程序,PDFium 是 Google Chrome 浏览器中使用的 PDF 渲染引擎。 该库提供专为 Windows 窗体应用程序设计的高性能 PDF 渲染功能,提供可直接嵌入 WinForms 界面的 PdfViewer 控件。
PdfiumViewer 根据 Apache 2.0 许可发布,提供经济高效的 PDF 查看功能。 但是,其范围从根本上仅限于查看和渲染--库不能创建、编辑或操作 PDF 文档。 此外,PdfiumViewer 面临着不确定的维护状态,这给需要长期支持的生产应用程序带来了风险。
PdfiumViewer 的主要特点包括
-仅查看模式:专为显示 PDF 内容而设计
- Windows Forms 特有:仅限于 WinForms 应用程序 -开源:采用 Apache 2.0 许可证,无需支付许可费用 -本地二进制依赖项:需要特定平台的 PDFium 二进制文件(x86/x64) -维护保障不确定:更新有限,长期支持也不明确
什么是 IronPDF?
IronPDF是一个完整的 .NET 库,提供完整的 PDF 生命周期管理。 ChromePdfRenderer类使用基于 Chromium 的现代引擎从 HTML、CSS 和 JavaScript 创建 PDF,而PdfDocument类提供广泛的操作和提取功能。
IronPdf 与PdfiumViewer仅关注查看功能不同,IronPDF 可处理 PDF 创建、文本提取、操作、合并、水印和安全等功能,所有这些功能都集中在一个库中。 该库适用于控制台、Web 和桌面应用程序,远远超出了 Windows 窗体的限制。
架构比较
PdfiumViewer 和IronPDF的根本区别在于它们的适用范围:纯查看与完整的 PDF 解决方案。
| 方面 | PdfiumViewer | IronPDF |
|---|---|---|
| 主要关注点 | WinForms PDF 查看器 | 完整的 PDF 解决方案 |
| PDF 创建 | ✗ | ✓ (HTML、URL、图片) |
| 文本提取 | ✗ | ✓ |
| PDF 操作 | ✗ | ✓(合并、拆分、编辑) |
| 内置浏览器 | ✓ | ✗(侧重于后端) |
| 平台支持 | 仅限 Windows 窗体 | 控制台、网络、桌面 |
| 框架支持 | .NET Framework | .NET Framework, Core, 5+ |
| 维护 | 不确定 | 活跃 |
对于只需要在 Windows 窗体中查看 PDF 的应用程序,使用PdfiumViewer即可。对于需要 PDF 生成、文本提取或任何创建功能的应用程序,IronPDF 可提供完整的解决方案。
HTML 至 PDF 转换
HTML 到 PDF 的转换展示了这些库之间的基本能力差距。
PdfiumViewer HTML 转 PDF 方法:
// NuGet: Install-Package PdfiumViewer
using PdfiumViewer;
using System.IO;
using System.Drawing.Printing;
// PDFiumViewer is primarily a PDF viewer/renderer, not a generator
// It cannot directly convert HTML to PDF
// You would need to use another library to first create the PDF
// Then use PDFiumViewer to display it:
string htmlContent = "<h1>Hello World</h1><p>This is a test document.</p>";
// This functionality is NOT available in PDFiumViewer
// You would need a different library like wkhtmltopdf or similar
// PDFiumViewer can only open and display existing PDFs:
string existingPdfPath = "output.pdf";
using (var document = PdfDocument.Load(existingPdfPath))
{
// Can only render/display existing PDF
var image = document.Render(0, 300, 300, true);
}// NuGet: Install-Package PdfiumViewer
using PdfiumViewer;
using System.IO;
using System.Drawing.Printing;
// PDFiumViewer is primarily a PDF viewer/renderer, not a generator
// It cannot directly convert HTML to PDF
// You would need to use another library to first create the PDF
// Then use PDFiumViewer to display it:
string htmlContent = "<h1>Hello World</h1><p>This is a test document.</p>";
// This functionality is NOT available in PDFiumViewer
// You would need a different library like wkhtmltopdf or similar
// PDFiumViewer can only open and display existing PDFs:
string existingPdfPath = "output.pdf";
using (var document = PdfDocument.Load(existingPdfPath))
{
// Can only render/display existing PDF
var image = document.Render(0, 300, 300, true);
}Imports PdfiumViewer
Imports System.IO
Imports System.Drawing.Printing
' PDFiumViewer is primarily a PDF viewer/renderer, not a generator
' It cannot directly convert HTML to PDF
' You would need to use another library to first create the PDF
' Then use PDFiumViewer to display it:
Dim htmlContent As String = "<h1>Hello World</h1><p>This is a test document.</p>"
' This functionality is NOT available in PDFiumViewer
' You would need a different library like wkhtmltopdf or similar
' PDFiumViewer can only open and display existing PDFs:
Dim existingPdfPath As String = "output.pdf"
Using document = PdfDocument.Load(existingPdfPath)
' Can only render/display existing PDF
Dim image = document.Render(0, 300, 300, True)
End UsingIronPDF HTML 转 PDF 方法:
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
string htmlContent = "<h1>Hello World</h1><p>This is a test document.</p>";
// Create a PDF from HTML string
var renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent);
// Save the PDF
pdf.SaveAs("output.pdf");
Console.WriteLine("PDF created successfully!");// NuGet: Install-Package IronPdf
using IronPdf;
using System;
string htmlContent = "<h1>Hello World</h1><p>This is a test document.</p>";
// Create a PDF from HTML string
var renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent);
// Save the PDF
pdf.SaveAs("output.pdf");
Console.WriteLine("PDF created successfully!");Imports IronPdf
Imports System
Module Program
Sub Main()
Dim htmlContent As String = "<h1>Hello World</h1><p>This is a test document.</p>"
' Create a PDF from HTML string
Dim renderer As New ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(htmlContent)
' Save the PDF
pdf.SaveAs("output.pdf")
Console.WriteLine("PDF created successfully!")
End Sub
End ModulePdfiumViewer 无法从 HTML 创建 PDF,因为它不支持此功能。 该库只能打开和显示现有的 PDF 文件。 需要HTML到PDF转换的应用程序需要将 IronPdfViewer 与其他库结合起来,从而产生复杂性和潜在的兼容性问题。
IronPdf 的 ChromePdfRenderer 使用现代 Chromium 引擎转换 HTML 内容,完全支持 CSS3、Flexbox、网格和 JavaScript 执行,可从网页内容生成高保真 PDF 输出。
文本提取
文本提取是这些库之间的另一个重大能力差距。
PdfiumViewer 文本提取方法:
// NuGet: Install-Package PdfiumViewer
using PdfiumViewer;
using System;
using System.Text;
string pdfPath = "document.pdf";
// PDFiumViewer has limited text extraction capabilities
// It's primarily designed for rendering, not text extraction
using (var document = PdfDocument.Load(pdfPath))
{
int pageCount = document.PageCount;
Console.WriteLine($"Total pages: {pageCount}");
// PDFiumViewer does not have built-in text extraction
// You would need to use OCR or another library
// It can only render pages as images
for (int i = 0; i < pageCount; i++)
{
var pageImage = document.Render(i, 96, 96, false);
Console.WriteLine($"Rendered page {i + 1}");
}
}// NuGet: Install-Package PdfiumViewer
using PdfiumViewer;
using System;
using System.Text;
string pdfPath = "document.pdf";
// PDFiumViewer has limited text extraction capabilities
// It's primarily designed for rendering, not text extraction
using (var document = PdfDocument.Load(pdfPath))
{
int pageCount = document.PageCount;
Console.WriteLine($"Total pages: {pageCount}");
// PDFiumViewer does not have built-in text extraction
// You would need to use OCR or another library
// It can only render pages as images
for (int i = 0; i < pageCount; i++)
{
var pageImage = document.Render(i, 96, 96, false);
Console.WriteLine($"Rendered page {i + 1}");
}
}Imports PdfiumViewer
Imports System
Imports System.Text
Dim pdfPath As String = "document.pdf"
' PDFiumViewer has limited text extraction capabilities
' It's primarily designed for rendering, not text extraction
Using document = PdfDocument.Load(pdfPath)
Dim pageCount As Integer = document.PageCount
Console.WriteLine($"Total pages: {pageCount}")
' PDFiumViewer does not have built-in text extraction
' You would need to use OCR or another library
' It can only render pages as images
For i As Integer = 0 To pageCount - 1
Dim pageImage = document.Render(i, 96, 96, False)
Console.WriteLine($"Rendered page {i + 1}")
Next
End UsingIronPDF 文本提取方法:
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
string pdfPath = "document.pdf";
// Open and extract text from PDF
PdfDocument pdf = PdfDocument.FromFile(pdfPath);
// Extract text from all pages
string allText = pdf.ExtractAllText();
Console.WriteLine("Extracted Text:");
Console.WriteLine(allText);
// Extract text from specific page
string pageText = pdf.ExtractTextFromPage(0);
Console.WriteLine($"\nFirst page text: {pageText}");
Console.WriteLine($"\nTotal pages: {pdf.PageCount}");// NuGet: Install-Package IronPdf
using IronPdf;
using System;
string pdfPath = "document.pdf";
// Open and extract text from PDF
PdfDocument pdf = PdfDocument.FromFile(pdfPath);
// Extract text from all pages
string allText = pdf.ExtractAllText();
Console.WriteLine("Extracted Text:");
Console.WriteLine(allText);
// Extract text from specific page
string pageText = pdf.ExtractTextFromPage(0);
Console.WriteLine($"\nFirst page text: {pageText}");
Console.WriteLine($"\nTotal pages: {pdf.PageCount}");Imports IronPdf
Imports System
Module Program
Sub Main()
Dim pdfPath As String = "document.pdf"
' Open and extract text from PDF
Dim pdf As PdfDocument = PdfDocument.FromFile(pdfPath)
' Extract text from all pages
Dim allText As String = pdf.ExtractAllText()
Console.WriteLine("Extracted Text:")
Console.WriteLine(allText)
' Extract text from specific page
Dim pageText As String = pdf.ExtractTextFromPage(0)
Console.WriteLine(vbCrLf & "First page text: " & pageText)
Console.WriteLine(vbCrLf & "Total pages: " & pdf.PageCount)
End Sub
End ModulePdfiumViewer 主要用于渲染,而非文本提取。 文档明确指出它 "没有内置文本提取功能",您需要使用 OCR 或其他库。 该库只能将页面渲染为图像。
IronPdf 的 ExtractAllText() 方法可通过一次调用提取所有页面中的所有文本。 如需更精细的控制,ExtractTextFromPage() 可提供特定页面的文本。 这种本地文本提取功能无需使用 OCR 或其他库。
PDF 到图像的转换
PDF 到图像的渲染是PdfiumViewer的一个优势领域,这也是它作为渲染引擎的主要优势。
PdfiumViewer PDF 转图像方法:
// NuGet: Install-Package PdfiumViewer
using PdfiumViewer;
using System;
using System.Drawing;
using System.Drawing.Imaging;
string pdfPath = "document.pdf";
string outputImage = "page1.png";
// PDFiumViewer excels at rendering PDFs to images
using (var document = PdfDocument.Load(pdfPath))
{
// Render first page at 300 DPI
int dpi = 300;
using (var image = document.Render(0, dpi, dpi, true))
{
// Save as PNG
image.Save(outputImage, ImageFormat.Png);
Console.WriteLine($"Page rendered to {outputImage}");
}
// Render all pages
for (int i = 0; i < document.PageCount; i++)
{
using (var pageImage = document.Render(i, 150, 150, true))
{
pageImage.Save($"page_{i + 1}.png", ImageFormat.Png);
}
}
}// NuGet: Install-Package PdfiumViewer
using PdfiumViewer;
using System;
using System.Drawing;
using System.Drawing.Imaging;
string pdfPath = "document.pdf";
string outputImage = "page1.png";
// PDFiumViewer excels at rendering PDFs to images
using (var document = PdfDocument.Load(pdfPath))
{
// Render first page at 300 DPI
int dpi = 300;
using (var image = document.Render(0, dpi, dpi, true))
{
// Save as PNG
image.Save(outputImage, ImageFormat.Png);
Console.WriteLine($"Page rendered to {outputImage}");
}
// Render all pages
for (int i = 0; i < document.PageCount; i++)
{
using (var pageImage = document.Render(i, 150, 150, true))
{
pageImage.Save($"page_{i + 1}.png", ImageFormat.Png);
}
}
}Imports PdfiumViewer
Imports System
Imports System.Drawing
Imports System.Drawing.Imaging
Module Module1
Sub Main()
Dim pdfPath As String = "document.pdf"
Dim outputImage As String = "page1.png"
' PDFiumViewer excels at rendering PDFs to images
Using document = PdfDocument.Load(pdfPath)
' Render first page at 300 DPI
Dim dpi As Integer = 300
Using image = document.Render(0, dpi, dpi, True)
' Save as PNG
image.Save(outputImage, ImageFormat.Png)
Console.WriteLine($"Page rendered to {outputImage}")
End Using
' Render all pages
For i As Integer = 0 To document.PageCount - 1
Using pageImage = document.Render(i, 150, 150, True)
pageImage.Save($"page_{i + 1}.png", ImageFormat.Png)
End Using
Next
End Using
End Sub
End ModuleIronPDF PDF 转图像方法:
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.Linq;
string pdfPath = "document.pdf";
string outputImage = "page1.png";
// Open PDF and convert to images
PdfDocument pdf = PdfDocument.FromFile(pdfPath);
// Convert first page to image
var firstPageImage = pdf.ToBitmap(0);
firstPageImage[0].Save(outputImage);
Console.WriteLine($"Page rendered to {outputImage}");
// Convert all pages to images
var allPageImages = pdf.ToBitmap();
for (int i = 0; i < allPageImages.Length; i++)
{
allPageImages[i].Save($"page_{i + 1}.png");
Console.WriteLine($"Saved page {i + 1}");
}
Console.WriteLine($"Total pages converted: {pdf.PageCount}");// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.Linq;
string pdfPath = "document.pdf";
string outputImage = "page1.png";
// Open PDF and convert to images
PdfDocument pdf = PdfDocument.FromFile(pdfPath);
// Convert first page to image
var firstPageImage = pdf.ToBitmap(0);
firstPageImage[0].Save(outputImage);
Console.WriteLine($"Page rendered to {outputImage}");
// Convert all pages to images
var allPageImages = pdf.ToBitmap();
for (int i = 0; i < allPageImages.Length; i++)
{
allPageImages[i].Save($"page_{i + 1}.png");
Console.WriteLine($"Saved page {i + 1}");
}
Console.WriteLine($"Total pages converted: {pdf.PageCount}");Imports IronPdf
Imports System
Imports System.Linq
Module Module1
Sub Main()
Dim pdfPath As String = "document.pdf"
Dim outputImage As String = "page1.png"
' Open PDF and convert to images
Dim pdf As PdfDocument = PdfDocument.FromFile(pdfPath)
' Convert first page to image
Dim firstPageImage = pdf.ToBitmap(0)
firstPageImage(0).Save(outputImage)
Console.WriteLine($"Page rendered to {outputImage}")
' Convert all pages to images
Dim allPageImages = pdf.ToBitmap()
For i As Integer = 0 To allPageImages.Length - 1
allPageImages(i).Save($"page_{i + 1}.png")
Console.WriteLine($"Saved page {i + 1}")
Next
Console.WriteLine($"Total pages converted: {pdf.PageCount}")
End Sub
End ModulePdfiumViewer 的 Render() 方法提供基于 DPI 的渲染,可对输出质量进行精细控制。 该方法需要使用嵌套 using 语句的手动处理模式。
IronPdf 的 ToBitmap() 方法提供了更简单的 API,可返回可保存或处理的位图数组。 尽管 API 模式不同,但这两个库都能有效地完成这项任务。
API 映射参考
对于考虑将PdfiumViewer移植到IronPDF的团队,了解 API 映射有助于估算工作量。
文档加载
| PdfiumViewer | IronPDF |
|---|---|
PdfDocument.Load(path) | PdfDocument.FromFile(路径) |
PdfDocument.Load(stream) | PdfDocument.FromStream(流) |
document.PageCount | document.PageCount |
document.PageSizes[index] | document.Pages[index].Width/Height |
渲染
| PdfiumViewer | IronPDF |
|---|---|
document.Render(index, dpiX, dpiY, flag) | pdf.ToBitmap(index) |
document.Render(index, width, height, dpiX, dpiY, flags) |pdf.RasterizeToImageFiles(path, dpi)` |
PdfiumViewer中不可用的功能
| IronPdf 特点 | 说明 |
|---|---|
ChromePdfRenderer.RenderHtmlAsPdf() | 从 HTML 创建 PDF |
ChromePdfRenderer.RenderUrlAsPdf() | 从 URL 创建 PDF |
pdf.ExtractAllText() | 提取所有文本 |
pdf.ExtractTextFromPage(index) | 从特定页面提取文本 |
PdfDocument.Merge() | 合并多个 PDF |
pdf.ApplyWatermark() | 添加水印 |
pdf.SecuritySettings | 密码保护 |
本地二进制依赖关系
架构上的一个重要区别在于依赖性管理。
PdfiumViewer 部署结构:
MyApp/
├─── bin/
│ ├─── MyApp.dll
│ ├── PdfiumViewer.dll
│ ├── x86/
│ │ └── pdfium.dll
│ └── x64/
│ └── pdfium.dllIronPDF 部署结构:
MyApp/
├─── bin/
│ ├─── MyApp.dll
│ └─── IronPdf.dll # 包含的所有内容PdfiumViewer 需要捆绑和管理特定平台的本地二进制文件。 这就造成了部署的复杂性,尤其是针对多平台的应用程序。 每个目标环境都需要正确的本地 DLL,应用程序必须在运行时正确加载相应的版本。
IronPDF 的完全托管架构消除了这些顾虑。 该库在内部处理其依赖关系,从而简化了部署。
功能对比摘要
PdfiumViewer 和IronPDF之间的范围差异几乎涵盖了基本查看之外的所有 PDF 操作。
| 特征 | PdfiumViewer | IronPDF |
|---|---|---|
| 加载 PDF | ✓ | ✓ |
| 渲染为图像 | ✓ | ✓ |
| 内置浏览器 | ✓ | ✗ |
| 打印 PDF | ✓ | ✓ |
| 提取文本 | ✗ | ✓ |
| 从 HTML 创建 | ✗ | ✓ |
| 从 URL 创建 | ✗ | ✓ |
| 合并 PDF | ✗ | ✓ |
| 拆分 PDF | ✗ | ✓ |
| 添加水印 | ✗ | ✓ |
| 页眉/页脚 | ✗ | ✓ |
| 密码保护 | ✗ | ✓ |
| 支持 WinForms | ✓ | ✓ |
| ASP.NET 支持 | ✗ | ✓ |
| 支持 .NET Core | 有限的 | ✓ |
| 主动维护 | 不确定 | ✓ |
内置查看器注意事项
PdfiumViewer 的一个优势是其内置的用于 Windows 窗体应用程序的 PdfViewer 控件。IronPDF以后台为主,不包含查看器控件。
对于从PdfiumViewer迁移到需要查看 PDF 的应用程序,替代方案包括
-默认系统查看器:使用Process.Start()在用户的默认 PDF 应用程序中打开 PDF 文件。
- WebBrowser 控件:在 WinForms WebBrowser 控件中显示 PDF 文件(需要 PDF 插件) -第三方查看器:来自 Syncfusion、DevExpress 或 Telerik 等供应商的专用查看器控件 -基于网页的查看:对于网页应用程序,提供 PDF 文件并让浏览器显示它。
// Open in default PDF viewer
Process.Start(new ProcessStartInfo(pdfPath) { UseShellExecute = true });// Open in default PDF viewer
Process.Start(new ProcessStartInfo(pdfPath) { UseShellExecute = true });团队何时考虑从PdfiumViewer迁移到 IronPDF?
有几个因素促使团队将IronPDF作为PdfiumViewer的替代品进行评估:
PDF 创建要求:PdfiumViewer无法创建 PDF 文件。 需要从 HTML 模板、报告或网页内容生成 PDF 的应用程序需要额外的库。IronPDF使用现代 Chromium 引擎提供完整的 PDF 创建功能。
文本提取需求:PdfiumViewer无法从 PDF 中提取文本——它只能将页面渲染为图像。 需要进行文本搜索、索引或内容分析的应用程序需要 IronPdf 的本地文本提取功能。
平台扩展:PdfiumViewer仅限于 Windows Forms 应用程序。 构建 ASP.NET 网络应用程序、控制台实用程序或跨平台解决方案的组织需要IronPDFfor .NET 更广泛的平台支持。
维护问题:PdfiumViewer的维护状态不确定,这给需要长期支持的生产应用程序带来了风险。 IronPdf 提供积极的开发和专业支持。
功能扩展:随着应用程序的成熟,需求通常会从查看扩展到文档合并、水印或安全设置。 IronPdf 原生提供了这些功能。
安装比较
PdfiumViewer 安装:
Install-Package PdfiumViewer
Install-Package PdfiumViewer.Native.x86.v8-xfa
Install-Package PdfiumViewer.Native.x64.v8-xfaInstall-Package PdfiumViewer
Install-Package PdfiumViewer.Native.x86.v8-xfa
Install-Package PdfiumViewer.Native.x64.v8-xfaPlus 本地二进制管理。
安装 IronPdf:
Install-Package IronPdfInstall-Package IronPdfIronPdf 需要在应用程序启动时配置许可证密钥:
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"这两个库都支持 .NET Framework,其中IronPDF还支持 .NET Core、.NET 5+ 以及 .NET 10 和 C# 14。
做出决定
在PdfiumViewer和IronPDF之间做出选择取决于您的应用需求:
如果您只需要在 Windows Forms 中查看 PDF,不需要创建 PDF 或提取文本,想要一个免费的开源解决方案,并且可以接受不确定的长期维护,那么可以考虑使用 PdfiumViewer。
如果您有以下需求,请考虑使用 IronPDF:需要从 HTML 或 URL 创建 PDF、需要文本提取功能、需要 Windows Forms 以外的支持、需要 PDF 操作(合并、拆分、添加水印)、需要积极的维护和支持,或者正在构建 PDF 需求不断增长的应用程序。
对于大多数现代应用程序而言,创建、提取和处理 PDF 的能力至关重要。PdfiumViewer仅用于查看,因此在没有额外库的情况下,无法满足全面 PDF 工作流程的需要。IronPDF的完整解决方案无需库组合,同时为所有 PDF 操作提供统一的 API。
开始使用 IronPDF
评估 IronPdf 以满足您的 PDF 需求:
1.安装 IronPDF NuGet 软件包:Install-Package IronPdf 2.查看 HTML 转 PDF 教程,了解创建模式 3.探索 文本提取功能,进行内容处理 4.查看 tutorials 部分,了解全面的示例
IronPDF 文档为常见场景提供了详细指导,API 参考记录了所有可用的类和方法。
结论
在.NET PDF 生态系统中,PdfiumViewer 和IronPDF的作用根本不同。PdfiumViewer擅长在 Windows 窗体应用程序中查看 PDF--使用 Google 的 PDFium 引擎高保真地显示文档。IronPDF 在一个库中提供了完整的 PDF 解决方案,包括创建、文本提取、操作和渲染。
对于只需要在 Windows 窗体中查看 PDF 的应用程序,PdfiumViewer 的重点突出的方法可能比较合适。 对于需要 PDF 生成、文本提取、文档合并或任何创建功能的应用程序,IronPDF 可原生提供这些功能,而无需额外的库。
决策范围不仅包括当前需求,还包括预期需求和维护方面的考虑。PdfiumViewer的维护状态不确定会造成项目风险,而应用程序通常从查看开始,但会扩展到需要创建和操作。 从一开始就选择IronPDF为满足这些扩展要求奠定了基础,同时确保了长期支持和积极开发。
在选择这些库时,请评估您当前和预期的完整 PDF 需求。PdfiumViewer仅用于查看的特性造成了架构上的局限性,随着应用的成熟和需求的扩展,这种局限性会变得越来越明显。