1

我在 PDFBox 中引入一个“可填写”表单并填写输入字段,然后将这些字段设置为只读。我们这样做是为了方便我们而不是最终用户填写 PDF。

我遇到的问题是当用户在 iOS(在某些情况下是 Android)中打开 PDF 时,可填写的字段不可见。其他一切都还在,只是没有填写的字段。如果我在任何笔记本电脑/台式机上打开对他们不起作用的同一个 pdf,一切都在那里。

我是否出于错误的原因使用了可填充字段,是否有更好的方法可以做到这一点,或者有没有一种方法可以让用户在 iOS 上看到这些字段?

这是我正在做的一个简单示例:

public PDDocument fillDynamicPDF(form, field, entry){
try{
    PDDocument pdDoc = PDDocument.load(new File("form"))
    PDDocumentCatalog pdCatalog = pdDoc.getDocumentCatalog()
    PDAcroForm acroForm = pdCatalog.getAcroForm()
    acroForm.getField(field).setValue(entry)
    acroForm.getField(field).setReadonly(true)
    return pdDoc
}catch(e){
    log.error e
    return null
}
}
4

1 回答 1

0

在 iOS 上,这取决于您用于查看 PDF 文件的应用程序。如果应用程序使用 CGPDF API 或 QuickLook 框架,则不会显示字段,因为这些框架无法显示 PDF 注释(字段使用小部件注释)。
如果您使用 Adob​​e Reader 查看文件,则这些字段是可见的,因为它使用自己的渲染引擎。
一种解决方案是展平表单字段而不是使其只读。此操作将字段内容与页面内容合并,无论使用什么应用程序查看文件,它们都将在 iOS 上可见。

于 2013-08-22T04:51:15.977 回答