C# PDFium超强打印机操作代码 – 完全免费打印
Spire.pdf 等打印 pdf 的库需要付费,因此本篇文章是通过使用 Google 开源的 PDFium 项目实现打印, PDFium 项目开源且跨平台。
bblanchon.PDFium.Win32 则是一个使用 C# 封装了 PDFium 的库。
引入三个库:
[crayon-6ab3e37906309413325966/]
理论上,如果使用了 bblanchon.PDFium.Win32 ,理论上会自动携带 PDFium 动态库,示例:

bblanchon.PDFium 还有其它系统下的封装库,会自动带上对应系统的 PDFium 动态库。

正常情况,编译项目之后,会自动在目录中带出这些动态库, 不过有些情况下,使用 Release 发布项目不会带出这些动态库。例如程序设置了框架为 net8.0-windows 或者编译的时候指定了系统和 CPU 架构,例如 dotnet publish -c Release -r win-x64。
这个时候编译出来的程序是不会带出动态库的。
可以手动到这个仓库下载编译好的动态库:https://github.com/bblanchon/pdfium-binaries
然后手动放到项目的目录下:
[crayon-6ab3e3790630c415439752/]
并不需要所以动态库都使用,比如我只需要在 win x64 下使用,则只需要复制这个文件到项目下面:


下面开始讲解代码。
定义两个传递配置的模型类:
[crayon-6ab3e3790630e732519515/]
定义从 PrintOption 配置整理到打印机设置的函数。
[crayon-6ab3e3790630f338153961/]
打印文字:
[crayon-6ab3e37906312127352242/]
打印图片:
[crayon-6ab3e37906314377605142/]
打印 pdf:
[crayon-6ab3e37906316141526201/]
由于生成的文件带有一些动态库,导致体积太大,不需要的情况下可以使用脚本自动删除。
[crayon-6ab3e37906317217215816/]
写到主项目的 .csproj 文件中。
如果只需要 x64 不需要 x86,那么还可以减小体积。
[crayon-6ab3e37906318802509918/]
