qt - Poppler:如何提取可填写的表单文本?
问题描述
问题:
我在使用 Qt4 或 Qt5 的嵌入式系统(打印机)中使用 poppler 来查看和打印 pdf 文档。
我需要能够在预印供应品上打印可填写的表格。这需要能够仅打印用户填写的表格部分,而不是说明。他们必须适合预先打印的表格。
我可以抓取一页 -Poppler::FormField
QList<Poppler::FormField *> fields = page->formFields();
但这些字段包含方向以及可填写部分。
另外,我不知道是否有一种方法可以创建页面并将字段放置在上面-我还没有找到方法。
我尝试了什么:
创建一个
QGraphicsScene
并添加包含表单域文本的文本项。
然后渲染并打印QGraphicsScene
.
问题:字体大小、间距、对齐方式......与屏幕上的内容不匹配,并且不适合表单。创建一个
QImage
包含与表单字段矩形相对应的黑色矩形,然后使用QPainter::CompositionMode_SourceIn
问题组成渲染页面:虽然一切都正确对齐,但我得到了方向(可能被剪裁),这是不允许的,因为它们会打印在 pre -印刷的,可能是关闭的和不同的颜色。
我需要的:
- 我想得到没有方向的领域,
- 我需要一种将它们完全放在原始页面上的方法。
- 也许我没有尝试过另一种执行此操作的方法?
希望有一些适用于 Qt4.8 和 5.x poppler 版本的东西,因为我有需要不同 Qt 版本的打印机型号。
操作系统:Linux Ubuntu(不同版本)
Qt using c++(不同版本)
解决方案
推荐阅读
- vue.js - jest + vuejs + vuetify 的意外标识符
- c# - 确定接口是否具有自定义属性
- javascript - 反应原生多语言问题
- c - C - For 循环只针对我修改的数组运行一次
- excel - 希望将 3 个 xls 文件合并为一个。并将合并文件的值粘贴到主文件中
- panel - 如何在 Atom 面板中添加关闭按钮
- loops - 如何翻转倒金字塔?
- hyperledger-fabric - 当我尝试运行 ./startFAbric.sh 时,我收到一个错误“来自守护进程的错误响应”
- java - Java:如何在抽象类中引用子类的静态变量?
- amazon-web-services - 使用新的 docker 镜像升级 JupyterHub helm 版本,但正在使用旧镜像?