PDFiumCore | .NET Core PDF 处理渲染库
2024-10-20
123
在处理 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 文件的页面。
更新于:3个月前赞一波!1
相关文章
- .NET C# 使用Hook钩子实现全局监听键盘和鼠标
- BotSharp 基于 .NET 平台的开源 AI 聊天机器人框架
- .NET C#连接FTP实现文件上传下载
- ABP.Net Core使用教程(一)启动模版项目
- .NET C#中的Func、Predicate和Expression用法详解
- 5个高性能 .NET Core 图片处理库推荐
- ASP.NET如何将Views文件夹从项目分离
- .NET C# 读取编辑.AVIF图片文件
- .NET C# SkiaSharp读取.AVIF图片文件报错
- .NET开源ORM FreeSql常见问题和解决方法
- 微软于发布了.NET 9 Release Candidate 2 提高整体质量
- 分享5个开源的.NET Excel读写操作库
- .Net Core中Dapper的使用详解
- ASP.NET 使用Entity Framework (EF) 创建迁移修改SQLite数据库表结构
- 如何从.NET Framework迁移到.NET Core或.NET 6/7?
- 如何优化ASP.NET Core应用的性能?
- 10款.NET开发中推荐的代码分析和质量工具
- .NET9 Blazor有哪些更新?
- 在Docker、Kubernetes环境下部署.NET应用的最佳实践
- .NET 游戏开发框架有哪些?
文章评论
评论问答