当前位置:首页 >休闲 >开发高质量PDF应用的不二选择:PdfiumViewer库详细解析 它提供了多种API和控件

开发高质量PDF应用的不二选择:PdfiumViewer库详细解析 它提供了多种API和控件

2024-06-30 20:28:18 [百科] 来源:避面尹邢网

开发高质量PDF应用的开发库详不二选择:PdfiumViewer库详细解析

作者:小乖兽技术 开发 前端 PdfiumViewer是一款基于PDFium引擎的.NET库,适用于各种需要在应用程序中显示和处理PDF文档的高质场景。它提供了多种API和控件,应用使得开发者可以轻松地将PDF文档嵌入到其应用程序中。选择细解析

PdfiumViewer库简介

PdfiumViewer是开发库详一款基于谷歌开源PDF渲染引擎PDFium的.NET库,主要用于在Windows应用程序中显示和处理PDF文档。高质PdfiumViewer提供了多种API和控件,应用使得开发者可以轻松地将PDF文档嵌入到其应用程序中。选择细解析同时,开发库详PdfiumViewer还支持多种平台,高质包括Windows、应用Linux以及MacOS。选择细解析

开发高质量PDF应用的不二选择:PdfiumViewer库详细解析 它提供了多种API和控件

PdfiumViewer库使用场景

PdfiumViewer适用于各种需要在应用程序中显示和处理PDF文档的开发库详场景。比如,高质可以将PdfiumViewer用于制作PDF阅读器、应用PDF编辑器、报告生成器等。

开发高质量PDF应用的不二选择:PdfiumViewer库详细解析 它提供了多种API和控件

PdfiumViewer库的架构设计和组件模块

PdfiumViewer的架构设计主要包含以下几个组件模块:

开发高质量PDF应用的不二选择:PdfiumViewer库详细解析 它提供了多种API和控件

  • PDF Rendering:PDF Rendering是PdfiumViewer的核心模块,主要用于解析和渲染PDF文档。该模块包含多个类,如PDFDocument、PDFPage、PDFRenderer等,用于描述PDF文档的各个部分,并将它们渲染到屏幕上。
  • Input Handling:Input Handling是PdfiumViewer的输入处理模块,负责处理用户与PDF文档的交互。该模块包含多个类,如PDFMouseHandler、PDFKeyboardHandler等,用于响应鼠标、键盘事件,实现PDF文档的滚动、缩放等功能。
  • User Interface:User Interface是PdfiumViewer的用户界面模块,负责实现PDF文档的显示和控制。该模块包含多种UI控件,如PDFViewControl、PDFSearchControl、PDFBookmarkControl等,用于显示PDF文档内容并提供交互功能。

PdfiumViewer库的优点和缺点

PdfiumViewer的优点包括:

  • 高质量渲染:PdfiumViewer基于PDFium引擎实现,能够对PDF文档进行高质量的渲染和展示,保证了PDF文档在应用程序中的可视化效果。
  • 轻量级:PdfiumViewer是一款轻量级的库,易于学习和使用,同时也占用较少的计算机资源。
  • 跨平台支持:PdfiumViewer支持多种平台,包括Windows、Linux以及MacOS,方便开发者进行跨平台开发。

PdfiumViewer的缺点包括:

  • 输入处理相对简单:PdfiumViewer对用户输入的处理相对简单,无法满足高级用户交互的需求。
  • 文档较少:由于PdfiumViewer是一个相对较新的库,目前的文档比较少,需要自行阅读源码或查找社区资源。

PdfiumViewer的基本功能和代码示例。

加载PDF文档

要在PdfiumViewer中加载PDF文档,需要使用PdfiumViewer.PdfDocument类。使用Load方法加载指定路径的PDF文档。Load方法返回PdfDocument对象,用于描述PDF文档的各个部分。

using PdfiumViewer;// Load a PDF document from a fileusing (var document = PdfDocument.Load("sample.pdf")){     // Use the document object}

渲染PDF文档

PdfiumViewer支持多种方式渲染PDF文档,包括渲染到屏幕、渲染到内存和渲染到文件。下面分别介绍这三种方式。

渲染到屏幕

要将PDF文档渲染到屏幕上,需要使用PdfViewerControl控件。将PdfDocument对象赋值给PdfViewerControl的Document属性,即可在控件中显示PDF文档。

using PdfiumViewer;// Create a PdfViewerControlvar viewer = new PdfViewerControl();// Load a PDF document from a fileusing (var document = PdfDocument.Load("sample.pdf")){     // Set the document object to the PdfViewerControl    viewer.Document = document;    // Add the viewer control to a parent container    this.MyGrid.Children.Add(viewer);}

渲染到内存

要将PDF文档渲染到内存中,需要使用PdfiumViewer.PdfRenderer类。将PdfDocument对象和指定的页面参数传递给PdfRenderer的Render方法,即可获得一个Bitmap对象,该对象包含渲染后的图像数据。

using System.Drawing;using PdfiumViewer;// Load a PDF document from a fileusing (var document = PdfDocument.Load("sample.pdf")){     // Create a PdfRenderer object    var renderer = new PdfRenderer(document);    // Render the first page of the PDF to a Bitmap object    Bitmap bitmap = renderer.Render(0, 300, 300, true);    // Use the bitmap object}

渲染到文件

要将PDF文档渲染到文件中,需要使用PdfiumViewer.PdfRenderer类。将PdfDocument对象和指定的页面参数传递给PdfRenderer的RenderToStream方法,即可将渲染后的图像数据写入到指定的文件流中。

using System.IO;using PdfiumViewer;// Load a PDF document from a fileusing (var document = PdfDocument.Load("sample.pdf")){     // Create a PdfRenderer object    var renderer = new PdfRenderer(document);    // Render the first page of the PDF to a file stream    using (var fileStream = new FileStream("page1.png", FileMode.Create))    {         renderer.RenderToStream(0, fileStream, ImageFormat.Png);    }}

处理PDF文档

PdfiumViewer提供了多种API,用于处理PDF文档。下面介绍一些常用的API。

获取PDF文档信息

要获取PDF文档的各种信息,需要使用PdfiumViewer.PdfDocument类的相应属性。比如,可以获取PDF文档的标题、作者、页数等信息。

using PdfiumViewer;// Load a PDF document from a fileusing (var document = PdfDocument.Load("sample.pdf")){     // Get the title of the PDF document    string title = document.Title;    // Get the author of the PDF document    string author = document.Author;    // Get the number of pages in the PDF document    int pageCount = document.PageCount;}

获取PDF页面信息

要获取PDF页面的各种信息,需要使用PdfiumViewer.PDFPage类的相应属性。比如,可以获取PDF页面的大小、旋转角度等信息。

using PdfiumViewer;// Load a PDF document from a fileusing (var document = PdfDocument.Load("sample.pdf")){     // Get the first page of the PDF document    PdfPage page = document.Pages[0];    // Get the size of the PDF page    SizeF size = page.Size;    // Get the rotation angle of the PDF page    int rotation = page.Rotation;}

搜索PDF文本

要搜索PDF文本,需要使用PdfiumViewer.PdfTextFinder类。将PdfDocument对象和指定的搜索字符串传递给PdfTextFinder的Search方法,即可获得一个PdfTextMatches对象,该对象包含匹配结果的详细信息。

using PdfiumViewer;// Load a PDF document from a fileusing (var document = PdfDocument.Load("sample.pdf")){     // Create a PdfTextFinder object    var finder = new PdfTextFinder(document);    // Search for a string in the PDF document    PdfTextMatches matches = finder.Search("search string");    // Use the matches object}

使用WPF代码案例介绍PdfiumViewer库用法

下面是一个WPF程序中使用PdfiumViewer库的完整实例。

示例包含一个MainWindow窗口,其中包含一个Button控件和一个Grid控件。点击Button控件会调用ShowPDF方法,在Grid控件中显示PDF文档。

同时,需要将PdfiumViewer库的dll文件添加到项目中,并在代码中引用。

using System.Windows;using System.Windows.Controls;using PdfiumViewer;public partial class MainWindow : Window{     public MainWindow()    {         InitializeComponent();    }    private void Button_Click(object sender, RoutedEventArgs e)    {         ShowPDF();    }    private void ShowPDF()    {         // Create a PDFDocument object from a file        using (var document = PdfDocument.Load("sample.pdf"))        {             // Create a PDFViewerControl object and set its document property            var viewer = new PdfViewerControl {  Document = document };            // Add the viewer control to a parent container            this.MyGrid.Children.Add(viewer);        }    }}

在XAML中,添加以下控件:

<Window x:Class="WpfApp1.MainWindow"        ...        xmlns:pdf="clr-namespace:PdfiumViewer.Wpf;assembly=PdfiumViewer.Wpf">    <Grid>        <Button Content="Show PDF" Click="Button_Click"/>        <Grid x:Name="MyGrid"/>    </Grid></Window>

以上代码会在MainWindow窗口中添加一个Button和一个Grid控件。当按钮被点击时,调用ShowPDF方法,在Grid控件中显示PDF文档。需要确保将PdfiumViewer库的dll文件添加到项目中,并在代码中引用。也可以通过NuGet包管理器安装PdfiumViewer库。

总结PdfiumViewer库

PdfiumViewer是一款基于PDFium引擎的.NET库,适用于各种需要在应用程序中显示和处理PDF文档的场景。它提供了多种API和控件,使得开发者可以轻松地将PDF文档嵌入到其应用程序中。同时,PdfiumViewer还支持多种平台,具有良好的跨平台支持。开发者可以根据自己的需求来选择合适的PDF处理库。

责任编辑:姜华 来源: 今日头条 .NET库PDFium引擎

(责任编辑:热点)

    推荐文章
    • 机构逐鹿基金代销 8家商业银行入围十强

      机构逐鹿基金代销 8家商业银行入围十强在群雄逐鹿基金代销市场的当前,商业银行仍然是主力军。中国基金业协会近日发布的2021年三季度基金代销机构公募基金保有规模数据显示,银行在股票+混合公募基金、非货币市场公募基金保有规模中的比例仍超五成。 ...[详细]
    • DDD 架构,MQ 应该放那一层使用?

      DDD 架构,MQ 应该放那一层使用?DDD 架构,MQ 应该放那一层使用?作者:小傅哥 2023-07-31 08:00:19开发 前端 因为我们本章所讲解的内容是把 RocketMQ 放入 DDD 架构中进行使用,那么也就引申出领域事 ...[详细]
    • 马蓉与王宝强离婚事件中,包含了哪些婚姻经济学?

      马蓉与王宝强离婚事件中,包含了哪些婚姻经济学?王宝强离婚事件一时间在网上炸开了锅。各类消息龙腾虎跃,不绝于耳。王宝强在微博发布离婚声明,指名道姓说自己的妻子马蓉与经纪人宋喆有染,因为“无法容忍恶意背叛婚姻、破坏家庭的行为”而选择离婚。诡谲的地方在 ...[详细]
    • 记一次 .NET 某物流 API 系统 CPU 爆高分析

      记一次 .NET 某物流 API 系统 CPU 爆高分析记一次 .NET 某物流 API 系统 CPU 爆高分析作者:一线码农聊技术 2023-07-31 22:29:20开发 前端 这次CPU爆高事故,主要还是因为批量提交记录多 导致 SqlSugar ...[详细]
    • 国家发改委:加强产运需衔接 全国电厂存煤突破1.1亿吨

      国家发改委:加强产运需衔接 全国电厂存煤突破1.1亿吨进入11月,全国煤炭产量继续呈现高位增长态势。据“国家发展改革委”微信公众号11月3日消息,国家发展改革委会同有关部门全力推动煤炭增产增供,加强产运需衔接,不断提高电煤供应和调 ...[详细]
    • HTC新机曝光 联发科P22加持

      HTC新机曝光 联发科P22加持HTC的一款名为HTC Wildfire E2的新机出现在 Google Play Console 列表中,而且其关键配置和功能都已经被完整的曝光出来。从外观上来看,这依然是一款入门的机型,它搭载了一 ...[详细]
    • 新的隐秘技术让黑客可获得Windows系统最高权限

      新的隐秘技术让黑客可获得Windows系统最高权限新的隐秘技术让黑客可获得Windows系统最高权限作者:Zicheng 2023-08-24 22:01:08安全 研究人员开发了三种新的攻击来提升的权限,既不会留下太多证据,也不会被众多安全产品检测 ...[详细]
    • 现代企业数据泄露的原因分析与建议

      现代企业数据泄露的原因分析与建议现代企业数据泄露的原因分析与建议2023-08-16 12:29:34安全 数据安全 近年来,随着信息技术的飞速发展,数据已经成为现代企业不可或缺的发展资源。然而,随之而来的数据泄露危机,给个人、企业 ...[详细]
    • 又现理财产品提前终止 “资管新规”过渡期倒计时

      又现理财产品提前终止 “资管新规”过渡期倒计时“资管新规”过渡期仅剩58天,银行理财净值化转型也在火热持续中。北京商报记者11月3日注意到,近日,民生银行旗下有60余款理财产品拟提前终止。而在民生银行之前,华夏银行、郑州银 ...[详细]
    • 2028年 6G时代将开启

      2028年 6G时代将开启三星电子14日发布《下一代超连接体验》白皮书,阐述6G愿景。白皮书称,第六代移动通信技术将实现T级tera bps级)数据传输速率,无线网络延迟小到微秒级。业内预测2025年将启动6G技术的标准化,2 ...[详细]
    热点阅读