QuestPDF是一款.NET开源的PDF文档生成器。在微信公众号上看到关于QuestPDF的文章,本文结合参考文献,对该包进行简单测试。
  QuestPDF提供布局引擎,具备全面的分页功能。QuestPDF中的文档由众多简单元素构成(如边框、背景、图像、文本、边距、表格、网格等),能够构造复杂的文档结构。开发人员可以快速了解每类简单元素的用法,并能放心大胆地使用它们。此外,QuestPDF中的文档及其所有元素都支持分页功能。例如,一个元素可以移动到下一页(如果没有足够的空间),甚至可以在表的行之间分割。
  本文先基于QuestPDF帮助文档中的示例进行简单测试,后续会逐步深入学习该包的用法。
  创建Winform程序,并通过NuGet包管理器安装QuestPDF包,如下图所示:

  基于参考文献2中给出的包含页眉、内容和页脚的示例,创建简单的界面,生成包含文本和图片的单页PDF文件(参考文献2中的示例中生成内容是写死的,本文示例的改动主要是能在窗口中输入内容和选择图片),示例代码和界面如下所示:

         Document.Create(container =>{container.Page(page =>{page.Size(PageSizes.A4);page.Margin(2, Unit.Centimetre);page.Background(Colors.White);page.DefaultTextStyle(x => x.FontSize(20));page.Header().Text("QuestPDF测试").SemiBold().FontSize(36).FontColor(Colors.Blue.Medium);page.Content().PaddingVertical(1, Unit.Centimetre).Column(x =>{x.Spacing(20);x.Item().Text(textBox1.Text);x.Item().Image(pictureBox1.Tag as string, ImageScaling.Resize);});page.Footer().AlignCenter().Text(x =>{x.Span("页码 ");x.CurrentPageNumber();});});}).GeneratePdf("test.pdf");


  程序运行结果如下所示,可以正常生成PDF文档,但是页眉和页脚中的中文没有正常显示。

  查看代码中设置文本字体的代码,发现只设置了字体大小和颜色,字体采用的默认字体。QuestPDF设置字体是用FontFamily名称设置的,于是修改代码,采用宋体显示文本内容。不过程序运行过程中却报找不到宋体文件的错误,如下图所示:

 page.Header().Text("QuestPDF测试").SemiBold().FontFamily("宋体").FontSize(36).FontColor(Colors.Blue.Medium);


  仔细查看参考文献3中包含中文字体的示例代码,发现其设置黑体时使用的FontFamily名称是simhei,百度后才知道该名称是黑体字体对应的ttf文件名。于是到windows\Fonts文件夹下找到宋体的字体文件名,如下所示:

  重新设置代码中的FontFamily名,在运行程序,即可生成显示正常的pdf文档,如下图所示:

   page.Header().Text("QuestPDF测试").SemiBold().FontFamily("simsun").FontSize(36).FontColor(Colors.Blue.Medium);


  本文只是结合参考文献中的示例代码,对QuestPDF功能进行了简单测试,后续还会继续深入学习QuestPDF包的用法

参考文献:
[1]https://github.com/QuestPDF/QuestPDF
[2]https://www.questpdf.com/getting-started.html
[3]https://blog.csdn.net/sd7o95o/article/details/125985863

简单测试.NET开源的PDF文档生成器QuestPDF相关推荐

  1. PHP 实现切割pdf,轻松实现用PHP编写PDF文档生成器(二)

    从上面的例子可以看出,要画一条直线,只需要三个函数即可:PDF_moveto(), PDF_lineto() 和 PDF_stroke().上面的例子是先用PDF_moveto($pdf, 20, 7 ...

  2. 减小pdf文件大小最简单的方法?缩小pdf文档的大小在线网站方法?

    现在使用PDF的用户有很多,因为PDF的兼容性比较好,包括数据.图片.表格以及文字等.但是PDF文件过大也是麻烦.所以我们接下来就来谈谈怎么将PDF文件进行压缩..而这些包含着设计内容的PDF文件体积 ...

  3. js转换html为pdf文件怎么打开方式,pdf.js实现在HTML下直接浏览pdf文档,无需插件即可实现...

    pdf.js是一款开源的pdf文档读取解析插件,据说在HTML5下诞生的,对于主流的浏览器基本都支持. 官网GitHub地址如下:https://github.com/mozilla/pdf.js 由 ...

  4. 四款PDF文档制作软件横向评测

    PDF文档是大家非常熟悉的一种电子文档格式,由Adobe公司开发.PDF文档能够完整保留源文档中的所有字体.格式.颜色和图形等内容,已成为全世界各种标准组织分发和交换电子文档的出版规范.如今,不管是浏 ...

  5. c语言调用pdf文档,使用PDFLib生成PDF文档方法介绍(C语言版)

    本文简单介绍了PDFLib生成PDF文档(C语言版)的基本使用方法. 1.基本环境 ① 打开.关闭.文档信息设定: 新建PDFLib对象,PDF_new() 设定错误处理的方式,PDF_set_par ...

  6. 安卓PDF阅读器使用技巧Ⅱ:PDF文档添加批注、添加下划线及删除技巧

    如何更好地使你的PDF文档便于使用?以确保你在后续的阅读/编辑中可以更加得心应手?如果手头只有一部手机的情况下,我们可以借助PDF阅读器的的编辑功能,通过高亮显示.增加下划线等操作,来完成你对文档的重 ...

  7. java实现word文档转换pdf文档并且添加水印功能使用插件Aspose.Words

    前段时间,项目需要自动生成word文档,用WordFreeMarker生成word文档后,又要求生成的文档能在浏览器浏览,思来想去,把word文档转成pdf就好了,于是乎研究了一下. 将word文档转 ...

  8. 【PDF操作】简单的PDF文档签名开源工具

    PDF签名 仓库介绍 介绍 使用 签名 其他 仓库介绍 仓库地址 该工具从签名照片中提取文字,并签名到PDF文档的指定位置.除此之外,该仓库还支持其他PDF操作,如合并.OCR.水印功能等. 介绍 该 ...

  9. activiti 文档_免费、开源、多平台的PDF文档处理软件——PDFsam Basic

    今天给大家推荐的是一款免费.开源.多平台支持的PDF文档处理软件-- PDFsam Basic PDFsam Basic是为普通用户提供的免费开源解决方案,提供了PDF文档拆分.合并.混合.提取页面和 ...

  10. 原创首发:JXMaker扫描助手 扫描图片并将多次扫描图像导出为PDF文档,全免费,开源

    软件名称:Jxmaker扫描助手 出品方:jxmaker.com(CSDN博客:https://blog.csdn.net/zinechina) 主要功能: 1.从扫描议获取图像 2.将多次扫描的图像 ...

最新文章

  1. 哈工大导师禁止实验室硕士出去实习,称「实习就像和35岁渣男试婚」,你怎么看?...
  2. 烦死调参数-想设计一个自动调参机制
  3. C++ Opengl旋转源码
  4. Bokeh,一个超强交互式Python可视化库!
  5. Android 官网无法访问的解决方法
  6. DLL入门浅析(3)——从DLL中导出变量
  7. ASP.NET Core中使用IOC三部曲(二.采用Autofac来替换IOC容器,并实现属性注入)
  8. 计算机应用基础课程基本要求,计算机应用基础课程标准
  9. 只有ajax会跨域吗_ajax解决跨域
  10. ZJOI2008 生日聚会
  11. Node.js:express设置全局变量
  12. PHP实现常用的数据结构之链表
  13. lcms质谱仪_液相色谱-质谱联用(lcms)的原理及应用
  14. 视频融合技术解决方案,三维全景拼接赋能平台
  15. 从服务器取文件的命令,ftp 服务器取文件命令
  16. 样本量重要,还是测序深度重要?
  17. 360P2建html网站,360 P2路由器密码怎么设置?
  18. shader拖尾_u3d拖尾特效组件-------TrailRenderer
  19. cairo显示多行文本
  20. 苏建林DGCNN模型代码详解

热门文章

  1. UE破解及注册机下载
  2. 使用Matlab产生m序列(PN序列的一种)
  3. PreferenceActivity之 Subclasses of PreferenceActivity must override isValidFragment(String)
  4. 拳王公社:网络操盘手必备的400款新媒体运营工具大全!
  5. 第二章 Jsp基本语法
  6. 模拟集成电路设计基础知识(一):MOS管结构及其I/V特性
  7. 自己动手写操作系统 - Hello DTOS
  8. 百度之星程序设计大赛
  9. 计算机操作系统(第四版)课后习题答案(第一章)
  10. mysql数据库编程第六章试题_2016年计算机二级MySQL数据库试题及答案