PDFBox - PDF在iOS中不可见

时间:2013-08-21 19:41:46

标签: pdf groovy pdfbox

我在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
}
}

1 个答案:

答案 0 :(得分:0)

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