PDFBox-PDF在iOS中不可见

PDFBox-PDF在iOS中不可见,pdf,groovy,pdfbox,Pdf,Groovy,Pdfbox,我在PDFBox中引入了一个“可填充”表单,并填充输入字段,然后将这些字段设置为只读。我们这样做是为了便于我们填写PDF,而不是最终用户填写 我遇到的问题是,当用户在iOS(在某些情况下是Android)中打开PDF时,可填充字段不可见。其他一切都还在,只是没有填写的字段。如果我在任何笔记本电脑/台式机上打开同样的pdf文件,它们就不存在了 我是否出于错误的原因使用了可填充字段,是否有更好的方法来实现这一点,或者是否有一种方法可以让用户在iOS上看到这些字段 下面是我正在做的一个快速示例: pu

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

在iOS上,它取决于用于查看PDF文件的应用程序。如果应用程序使用CGPDF API或QuickLook框架,则不会显示字段,因为这些框架无法显示PDF注释(字段使用小部件注释)
如果使用Adobe Reader查看文件,则字段可见,因为它使用自己的渲染引擎。

解决方案是将表单字段展平,而不是使其只读。此操作将字段内容与页面内容合并,无论使用何种应用程序查看文件,它们都将在iOS上可见。

如何使用PDFbox展平它们?或者有其他方法可以将它们展平吗?我不熟悉PDFBox API,我想您可以在文档中找到它。