PDFiumCore | .NET Core PDF 处理渲染库
2024-10-20
59
在处理 PDF 文件时,渲染和解析的准确性、速度和稳定性是至关重要的。PDFiumCore,作为.NET 环境下的一个强大库,为开发者提供了高效、便捷的 PDF 处理能力。PDFiumCore 是基于 Foxit Software 的 PDFium 库的一个封装,它使得.NET 开发者能够轻松地集成 PDF 渲染和处理功能到他们的应用程序中。
PDFiumCore GitHub地址:https://github.com/Dtronix/PDFiumCore
PDFiumCore 的特点
高性能:PDFiumCore 继承了 PDFium 的高性能特性,能够快速渲染 PDF 页面。 准确性:它能够准确地解析和渲染 PDF 文件,包括复杂的布局和字体。 跨平台:PDFiumCore 支持多种操作系统,包括 Windows、Linux 和 macOS。 易于集成:作为.NET 库,它可以轻松地集成到现有的.NET 项目中。使用 PDFiumCore 的基本步骤
安装 PDFiumCore:你可以通过 NuGet 包管理器来安装 PDFiumCore。 初始化库:在使用 PDFiumCore 之前,需要先初始化库。 加载 PDF 文档:使用 PDFiumCore 的 API 来加载 PDF 文件。 渲染 PDF 页面:选择特定的页面进行渲染。 释放资源:完成操作后,确保释放所有占用的资源。PDFiumCore C# 示例代码
下面是一个简单的 C# 示例,展示了如何使用 PDFiumCore 来加载和渲染 PDF 文件的一页:
using System;
using PdfiumCore;
using System.Drawing;
class Program
{
static void Main()
{
// 初始化 PDFiumCore 库
Pdfium.Initialize();
// 加载 PDF 文档
using (var document = PdfDocument.Load("example.pdf"))
{
// 获取第一页
var page = document.GetPage(0);
// 渲染页面到 Bitmap
using (var bitmap = RenderPageToBitmap(page, 300, 300))
{
// 保存 Bitmap 到文件(可选)
bitmap.Save("page1.png", System.Drawing.Imaging.ImageFormat.Png);
Console.WriteLine("Page rendered and saved to page1.png");
}
}
// 清理 PDFiumCore 库资源
Pdfium.Terminate();
}
static Bitmap RenderPageToBitmap(PdfPage page, int width, int height)
{
// 创建一个 Bitmap 对象来保存渲染结果
var bitmap = new Bitmap(width, height);
var bmpData = bitmap.LockBits(new Rectangle(0, 0, bitmap.Width, bitmap.Height),
System.Drawing.Imaging.ImageLockMode.WriteOnly,
bitmap.PixelFormat);
// 渲染 PDF 页面到 Bitmap
page.RenderToBitmap(bmpData.Scan0, bitmap.Width, bitmap.Height, 0, 0,
bitmap.Width, bitmap.Height, false);
bitmap.UnlockBits(bmpData);
return bitmap;
}
}
在这个示例中,我们首先初始化了 PDFiumCore 库,然后加载了一个名为 "example.pdf" 的 PDF 文件。接着,我们获取了文档的第一页,并使用 RenderPageToBitmap 方法将其渲染到一个 Bitmap 对象中。最后,我们将这个 Bitmap 对象保存为一个 PNG 文件,并清理了 PDFiumCore 库的资源。
为了运行这个示例,你需要在项目中添加对 System.Drawing 的引用,并确保 PDFiumCore 库已经通过 NuGet 安装到你的项目中。
PDFiumCore 是一个强大的工具,它使得.NET 开发者能够轻松地处理 PDF 文件。通过上面的示例代码,你可以看到如何在 C# 中使用 PDFiumCore 来加载、渲染和保存 PDF 文件的页面。
更新于:1个月前赞一波!
相关文章
- Sylvan.Data.Excel 性能优异的开源.NET Excel数据读取库
- ASP.NET Core 中常用的内置中间件
- .NET9 F#有什么新特性?
- .NET 开源 ORM FreeSql 使用教程
- .NET9 C# 13 有哪些新特性?
- .NET9 开始删除内置的 Swagger 支持 可使用Scalar.AspNetCore替代
- .NET 9 中System.Text.Json 的新增功能
- 什么是.NET渐进式Web应用(PWA)
- .NET开发中常见的异常报错原因和解决方法?
- .NET框架和CLR的工作原理?
- ASP.NET MVC与Web Forms的区别
- .NET C#中的IEnumerable和IEnumerator的区别
- 【说站】Java如何在PDF添加注释
- 【说站】Java在PDF中删除注释
- 使用ADO.NET连接到南大通用GBase 8s数据库
- 鸿蒙OpenHarmony系统可以运行跨平台的.NET Core吗?
- ASP.NET Core使用partial标签报错
- .NET 9 即将推出的功能Task.WhenEach
- .NET 使用HttpClientFactory+Polly替代直接使用HttpClient
- .NET Framework被淘汰了吗?
文章评论
评论问答