首页 > 解决方案 > Poppler:如何提取可填写的表单文本?

问题描述

问题:

我在使用 Qt4 或 Qt5 的嵌入式系统(打印机)中使用 poppler 来查看和打印 pdf 文档。
我需要能够在预印供应品上打印可填写的表格。这需要能够仅打印用户填写的表格部分,而不是说明。他们必须适合预先打印的表格。 我可以抓取一页 -

Poppler::FormField

QList<Poppler::FormField *> fields = page->formFields();

但这些字段包含方向以及可填写部分。
另外,我不知道是否有一种方法可以创建页面并将字段放置在上面-我还没有找到方法。

我尝试了什么:

  1. 创建一个QGraphicsScene并添加包含表单域文本的文本项。
    然后渲染并打印QGraphicsScene.
    问题:字体大小、间距、对齐方式......与屏幕上的内容不匹配,并且不适合表单。

  2. 创建一个QImage包含与表单字段矩形相对应的黑色矩形,然后使用QPainter::CompositionMode_SourceIn
    问题组成渲染页面:虽然一切都正确对齐,但我得到了方向(可能被剪裁),这是不允许的,因为它们会打印在 pre -印刷的,可能是关闭的和不同的颜色。

我需要的:

希望有一些适用于 Qt4.8 和 5.x poppler 版本的东西,因为我有需要不同 Qt 版本的打印机型号。
操作系统:Linux Ubuntu(不同版本)
Qt using c++(不同版本)

标签: qtpoppler

解决方案


推荐阅读