简单测试.NET开源的PDF文档生成器QuestPDF
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相关推荐
- PHP 实现切割pdf,轻松实现用PHP编写PDF文档生成器(二)
从上面的例子可以看出,要画一条直线,只需要三个函数即可:PDF_moveto(), PDF_lineto() 和 PDF_stroke().上面的例子是先用PDF_moveto($pdf, 20, 7 ...
- 减小pdf文件大小最简单的方法?缩小pdf文档的大小在线网站方法?
现在使用PDF的用户有很多,因为PDF的兼容性比较好,包括数据.图片.表格以及文字等.但是PDF文件过大也是麻烦.所以我们接下来就来谈谈怎么将PDF文件进行压缩..而这些包含着设计内容的PDF文件体积 ...
- js转换html为pdf文件怎么打开方式,pdf.js实现在HTML下直接浏览pdf文档,无需插件即可实现...
pdf.js是一款开源的pdf文档读取解析插件,据说在HTML5下诞生的,对于主流的浏览器基本都支持. 官网GitHub地址如下:https://github.com/mozilla/pdf.js 由 ...
- 四款PDF文档制作软件横向评测
PDF文档是大家非常熟悉的一种电子文档格式,由Adobe公司开发.PDF文档能够完整保留源文档中的所有字体.格式.颜色和图形等内容,已成为全世界各种标准组织分发和交换电子文档的出版规范.如今,不管是浏 ...
- c语言调用pdf文档,使用PDFLib生成PDF文档方法介绍(C语言版)
本文简单介绍了PDFLib生成PDF文档(C语言版)的基本使用方法. 1.基本环境 ① 打开.关闭.文档信息设定: 新建PDFLib对象,PDF_new() 设定错误处理的方式,PDF_set_par ...
- 安卓PDF阅读器使用技巧Ⅱ:PDF文档添加批注、添加下划线及删除技巧
如何更好地使你的PDF文档便于使用?以确保你在后续的阅读/编辑中可以更加得心应手?如果手头只有一部手机的情况下,我们可以借助PDF阅读器的的编辑功能,通过高亮显示.增加下划线等操作,来完成你对文档的重 ...
- java实现word文档转换pdf文档并且添加水印功能使用插件Aspose.Words
前段时间,项目需要自动生成word文档,用WordFreeMarker生成word文档后,又要求生成的文档能在浏览器浏览,思来想去,把word文档转成pdf就好了,于是乎研究了一下. 将word文档转 ...
- 【PDF操作】简单的PDF文档签名开源工具
PDF签名 仓库介绍 介绍 使用 签名 其他 仓库介绍 仓库地址 该工具从签名照片中提取文字,并签名到PDF文档的指定位置.除此之外,该仓库还支持其他PDF操作,如合并.OCR.水印功能等. 介绍 该 ...
- activiti 文档_免费、开源、多平台的PDF文档处理软件——PDFsam Basic
今天给大家推荐的是一款免费.开源.多平台支持的PDF文档处理软件-- PDFsam Basic PDFsam Basic是为普通用户提供的免费开源解决方案,提供了PDF文档拆分.合并.混合.提取页面和 ...
- 原创首发:JXMaker扫描助手 扫描图片并将多次扫描图像导出为PDF文档,全免费,开源
软件名称:Jxmaker扫描助手 出品方:jxmaker.com(CSDN博客:https://blog.csdn.net/zinechina) 主要功能: 1.从扫描议获取图像 2.将多次扫描的图像 ...
最新文章
- 哈工大导师禁止实验室硕士出去实习,称「实习就像和35岁渣男试婚」,你怎么看?...
- 烦死调参数-想设计一个自动调参机制
- C++ Opengl旋转源码
- Bokeh,一个超强交互式Python可视化库!
- Android 官网无法访问的解决方法
- DLL入门浅析(3)——从DLL中导出变量
- ASP.NET Core中使用IOC三部曲(二.采用Autofac来替换IOC容器,并实现属性注入)
- 计算机应用基础课程基本要求,计算机应用基础课程标准
- 只有ajax会跨域吗_ajax解决跨域
- ZJOI2008 生日聚会
- Node.js:express设置全局变量
- PHP实现常用的数据结构之链表
- lcms质谱仪_液相色谱-质谱联用(lcms)的原理及应用
- 视频融合技术解决方案,三维全景拼接赋能平台
- 从服务器取文件的命令,ftp 服务器取文件命令
- 样本量重要,还是测序深度重要?
- 360P2建html网站,360 P2路由器密码怎么设置?
- shader拖尾_u3d拖尾特效组件-------TrailRenderer
- cairo显示多行文本
- 苏建林DGCNN模型代码详解
热门文章
- UE破解及注册机下载
- 使用Matlab产生m序列(PN序列的一种)
- PreferenceActivity之 Subclasses of PreferenceActivity must override isValidFragment(String)
- 拳王公社:网络操盘手必备的400款新媒体运营工具大全!
- 第二章 Jsp基本语法
- 模拟集成电路设计基础知识(一):MOS管结构及其I/V特性
- 自己动手写操作系统 - Hello DTOS
- 百度之星程序设计大赛
- 计算机操作系统(第四版)课后习题答案(第一章)
- mysql数据库编程第六章试题_2016年计算机二级MySQL数据库试题及答案