简单测试.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

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值