首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么pikepdf在使用Acrobat DC创建的PDF上填写某些PDF字段而不填写其他字段

为什么pikepdf在使用Acrobat DC创建的PDF上填写某些PDF字段而不填写其他字段
EN

Stack Overflow用户
提问于 2020-01-31 02:57:58
回答 2查看 386关注 0票数 1

我有一个PDF与表单域创建与Acrobat DC由我的客户。使用Python pikepdf,我以编程方式填充这些字段。奇怪的问题是,一些字段被填充了,而另一些字段没有。我用Acrobat DC一遍又一遍地检查:所有字段都有完全相同的文本字段属性,名称显然是唯一的。Python代码使用字段的正确名称对其进行寻址。所以我怀疑这个问题可能与我的客户创建字段的方式有关。使用Acrobat DC,我删除了有问题的字段,并使用与显示为已填写字段相同的文本字段属性创建了全新的字段--但无济于事。

现在我用Acrobat Reader检查了pikepdf生成的PDF,所有填写的字段都显示了它们的值,叹息!但是,没有一个Linux PDF查看器显示违规字段的内容,而显示其他一些字段的内容。我尝试了Okular、Atril、XFCE4的文档查看器和LibreOffice Draw。这似乎表明了Acrobat方面的问题。有什么想法吗?

EN

回答 2

Stack Overflow用户

发布于 2020-02-03 23:23:41

@joelgeraci :你说得对,pikepdf不会生成外观流。奇怪的是,像XFCE4文档查看器这样的查看器会显示某些字段的填充值,但不会显示其他字段的填充值。以下是pikepdf生成的页面转储的一部分:

代码语言:javascript
复制
<pikepdf.Dictionary(type_="/Page")({
  "/Annots": [ {
    "/DA": "/HeBo 14 Tf 0 g",
    "/F": 4,
    "/FT": "/Tx",
    "/Ff": 12582912,
    "/MK": {

    },
    "/P": <.get_object(785, 0)>,
    "/Q": 1,
    "/Rect": [ Decimal('134.783'), Decimal('432.837'), Decimal('205.463'), Decimal('458.588') ],
    "/StructParent": 201,
    "/Subtype": "/Widget",
    "/T": "Number_01",
    "/Type": "/Annot"
  }, {
    "/DA": "/HeBo 14 Tf 0 g",
    "/F": 4,
    "/FT": "/Tx",
    "/Ff": 12582912,
    "/MK": {

    },
    "/P": <.get_object(785, 0)>,
    "/Q": 1,
    "/Rect": [ Decimal('590.089'), Decimal('430.645'), Decimal('660.768'), Decimal('455.76') ],
    "/StructParent": 202,
    "/Subtype": "/Widget",
    "/T": "Units_01",
    "/Type": "/Annot"
  } ],
...
})>

字段"Number_01“显示为已填充,而字段"Units_01”则不显示,尽管这两个字段都没有外观流。尽管pikepdf不能更新外观流,但是其他字段确实有一个外观流,并且填充的值也会显示出来。我也想知道为什么Acrobat DC会为一些字段创建外观流,而不是为其他字段创建外观流。

票数 0
EN

Stack Overflow用户

发布于 2020-02-05 00:08:59

解决方案

在填充字段时,我愚蠢地向pikepdf传递了一个整数;传递一个字符串解决了这个问题。更重要的是: Linux查看器不需要'NeedAppearances‘标志来显示填充值,而Acrobat Reader需要这个标志。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59992748

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档