Qt输出PDF排版的技巧

最近需要用Qt输出pdf文件,参考了一些网友的使用方法后,终于正常输出文件并显示正常了。
下面是效果图:

在这里插入图片描述
总结如下经验:

1、Qt输出pdf文件非常简单,比C#要简单太多,只用到2个类QPdfWriter 和 QPainter。QPdfWriter 用于创建pdf,QPainter类既可以输出文本,也可以输出线条,可以设置文本字体和大小,线条也可以设置粗细,而且设置非常方便。

2、写完一页后,pWriter->newPage();又可以开始新的一页。
这里有2中方法:
1)是先提出数据,用一个数据类分开每页的数据,确定页数;
2)是一边循环一边判断,不创建专门数据类,在下批数据读入来后,再确定存在数据才创建新页。

其实2种方法我都用过,都可以的。如果数据简单,建议第一种方法,复杂数据,难以用一个类存放的,直接用第二种方法更简单。

3、关于排版问题
1)配合Adobe AI来做,所见即所得,非常方便。AI默认是72点每英寸,我们也需要把输出pdf改为72点每英寸,同时设置四边边距为0,跟AI里面一样。
pWriter->setResolution(72);
pWriter->setPageMargins(QMarginsF(0, 0, 0, 0));
2)修改ai里面的单位为像素px。
3)经过以上设置,ai和pdf的大小、边距就一模一样了,直接在ai中排版,然后读取坐标和大小到Qt中就完美了。

A4竖版的大小为595 * 842 点。
你看到上面图片的排版就是ai一次做出来的,直接读进Qt,没有任何调整过的,输出pdf后跟原版一模一样。

重点:
如果你设置分辨率300点每英寸,记得在ai中也要做出分辨率修改,不然对不上号的!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

XINGTECODE

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值