在 .NET 下使用 Pdfium 渲染和打印 PDF

大家可能已经看到这条 新闻,Google最近又新推出一个开源项目,名叫 PDFium,将成为Chrome浏览器的PDF渲染引擎组件。与已有的开源PDF引擎如Firefox目前的PDF解决方案PDF.js以及 Poppler相比,PDFium性能要好得多。

本次开源是由Google方面主导的,因为Chrome里的PDF渲染使用的是福昕的专有技术授权,Google方面希望能够开源并提出了很好的条件。福昕从长远考虑,接受了Google的建议。

接下来,福昕仍然会继续投入技术力量支持PDFium的发展。我们已经在PDFium项目网站上看到Bo Xu等三名福昕工程师在 解决和解答各种问题。

官方的 API 文档:https://developers.foxitsoftware.com/resources/pdf-sdk/c_api_reference_pdfium/index.html

一个 PDF 版本的 Pdfium API 文档:http://cdn01.foxitsoftware.com/pub/foxit/manual/enu/FoxitPDF_SDK20_Guide.pdf

许可协议:Apache 2.0 见:https://pdfium.googlesource.com/pdfium/+/refs/heads/master/LICENSE

来源:https://www.csdn.net/article/2014-06-23/2820351-Why-Foxit-Open-Sourced-Core-PDF-technologies

Pdfium 库

Pdfium 本身是一个 C 语言库,编译之后是一个 DLL。

Google 下载

https://pdfium.googlesource.com/pdfium/

GitHub

https://github.com/chromium/pdfium

下载 Pdfium 二进制预编译库

可以直接使用预编译的库,既可以直接从 NuGet 中导入,也可以自己下载使用。

NuGet

下面这两个比较版本比较老。

https://www.nuget.org/packages/PdfiumViewer.Native.x86_64.no_v8-no_xfa/

Native 64-bit PDFium DLL without V8 or XFA support for usage with the PdfiumViewer project.

2018.4.8.256

https://www.nuget.org/packages/PdfiumViewer.Native.x86.no_v8-no_xfa/

Native 32-bit PDFium DLL without V8 or XFA support for usage with the PdfiumViewer project.

2018.4.8.256

GitHub

这个比较新

GitHub: https://github.com/bblanchon/pdfium-binaries

PdfiumViewer

由于 Pdfium 本身并不是 .NET 库,在 .NET 中使用时,需要进行适配,PdfiumViewer 对它进行了适配工作,可以使我们很方便地在 .NET 项目中使用它。

Introduction

PdfiumViewer is a PDF viewer based on the PDFium project.

  • PdfiumViewer provides a number of components to work with PDF files:
  • PdfDocument is the base class used to render PDF documents;
  • PdfRenderer is a WinForms control that can render a PdfDocument;

PdfiumViewer 提供了一个 WinForms 控件,通过 PdfRenderer 控件进行渲染,提供了工具栏,可以支持保存到 PDF 文件或者打印到打印机。

PdfiumViewer is a WinForms control that hosts a PdfRenderer control and adds a toolbar to save the PDF file or print it.

项目:https://github.com/pvginkel/PdfiumViewer

NuGet: https://www.nuget.org/packages/PdfiumViewer/

参考

在 .NET 下使用 Pdfium 渲染和打印 PDF的更多相关文章

  1. PDFium 渲染

    PDFium 是 Chromium 的 PDF 渲染引擎,许可协议为 BSD 3-Clause.不同于 Mozilla 基于 HTML5 的 PDF.js,PDFium 是基于 Foxit Softw ...

  2. word文档的生成、修改、渲染、打印,使用Aspose.Words

    无需MS Word也可执行各种文档处理任务,包括文档的生成.修改.渲染.打印,文档格式转换和邮件合并等文档处理.

  3. -XX:-PrintClassHistogram 按下Ctrl+Break后,打印类的信息

    -XX:+PrintClassHistogram –按下Ctrl+Break后,打印类的信息: num     #instances         #bytes  class name ------ ...

  4. EOS下控制台以及图形界面打印sql语句

    EOS下控制台以及图形界面打印sql语句 场景需求:在eos中打印sql语句,包括数据实体,查询实体和命名sql的sql语句. 所需资源: P6spy:负责拦截sql,并打印. Sqlprofiler ...

  5. Layui下拉选渲染

    下拉选渲染有很多方式,这个比较简单,记录一下: HTML代码如下: <div class="layui-input-inline"> <input type=&q ...

  6. javaWeb项目springMVC框架下利用ITextpdf 工具打印PDF文件的方法(打印表单、插入图片)

    方法一:打印PDF表单以及在PDF中加入图片 需要的资料: jar包:iTextAsian.jar ,itext-2.1.7.jar: 源码: public static void main(Stri ...

  7. C# 打印PDF文件之使用不同打印机打印所有页面或部分页面

    C# 打印PDF文件之使用不同打印机打印所有页面或部分页面 最近在逛国外各大编程社区论坛的时候,发现很多人都在问一个关于PDF文件打印的问题:打印时如何选择非默认打印机并设置打印页面的范围.而一般情况 ...

  8. Winform 打印PDF顺序混乱,获取打印队列

    工作中PDF打印顺序混乱着实让我疼痛了好久,其实决绝方法非常简单,但没有想到这个点子的时候确实让我走了很多弯路 这里文章写出来并不是为了炫耀什么,只是觉得发现些好东西就分享出来而已,同时也做个记录,方 ...

  9. 关于这两天研究Java打印pdf方法的记录

    这两天在研究Java调用打印机打印PDF文件的方法,学到了不少东西,特别来记录一下. 关于Java打印网上最多的而且也是Java正统的打印方法就是使用PrintService,一套比較标准的打印代码例 ...

  10. PDFBox创建并打印PDF文件, 以及缩放问题的处理.

    PDFBox带了一些很方便的API, 可以直接创建 读取 编辑 打印PDF文件. 创建PDF文件 public static byte[] createHelloPDF() { ByteArrayOu ...

随机推荐

  1. ES 去重/聚合查询

    es 安装版本为 7.14.0 springboot 有默认的版本,防止冲突设置如下 <properties> <java.version>1.8</java.versi ...

  2. 前端VUE调用后台接口,实现基本增删改查

    设置接口请求 作为一个后台,个人一点感想:前端现在都是组件化开发,会看文档基本功能就能实现. js文件 import request from '@/router/axios' // 查询 expor ...

  3. AntDesign-Vue Table 查询与分页

    前言 之前的增删改查小 Demo 已经快要进行到最后一步了,这节的任务是将请求数据的方式改为 分页,并且增加 分页条件查询 的功能. 页面布局 <a-table :data-source=&qu ...

  4. Java日期时间API系列18-----Jdk8中java.time包中的新的日期时间API类,java日期计算5,其他常用日期计算,星期计算,闰年计算等

    通过Java日期时间API系列8-----Jdk8中java.time包中的新的日期时间API类的LocalDate源码分析中可以看出,java8中的方法特别丰富,一些常用的计算如星期计算,闰年计算等 ...

  5. efcode相关操作

    1. 下载 tool dotnet tool install -g dotnet-ef 2. 第一次迁移日志 dotnet ef migrations add init1 3. 更新数据库 datne ...

  6. kotlin更多语言结构——>作用域函数

    作用域函数 Kotlin 标准库包含几个函数,它们的唯一目的是在对象的上下文中执行代码块.当对一个对象调用这样的函数 并提供一个 lambda 表达式时,它会形成一个临时作用域.在此作用域中,可以访问 ...

  7. Android复习(三)清单文件中的元素——>uses-sdk

    <uses-sdk> Google Play 会利用在应用清单中声明的 <uses-sdk> 属性,从不符合其平台版本要求的设备上滤除您的应用.在设置这些属性前,请确保您了解  ...

  8. 云原生周刊:Gateway API 1.0.0 发布 | 2023.11.6

    开源项目推荐 Kueue Kueue 是一套用于作业队列的 API 和控制器.它是作业级管理器,可决定何时允许作业启动(如创建 pod),何时停止作业(如删除活动 pod). Reloader 一个 ...

  9. Windows10关闭系统自动更新--专业版

    当你正在跑项目,cpu负荷,内存负荷,这时候Windows服务模块没有人情味滴突然来个更新撑爆你的磁盘读写,那感觉简直炸锅 像这样: 什么?加个固态就好了 你要是上了固态,就不应该看到这篇文章,相见即 ...

  10. Java编程案例(专题)

    文章目录 案例一:买飞机票 案例二:开发验证码 案例三:评委打分 案例四:数字加密 案例五:数组拷贝 案例六:抢红包 案例七:找素数 案例八:模拟双色球 8.1 手动投注 8.2 随机开奖号码 8.3 ...