【发布时间】:2017-04-27 13:50:37
【问题描述】:
我正在尝试填写 pdf 表单,我可以通过 PDFBox 库使用以下方法填写它。
val pdf: PDDocument = PDDocument.load(file)
pdf.setAllSecurityToBeRemoved(true)
val docCatalog: PDDocumentCatalog = pdf.getDocumentCatalog
val acroForm: PDAcroForm = docCatalog.getAcroForm
def populateFields(inputJson: String, targetPdfPath: String): Unit = {
val valueMap: Array[Field] = gson.fromJson(inputJson, classOf[Array[Field]])
valueMap.foreach((field) => {
val pdField: PDField = acroForm.getField(field.name)
if (pdField != null) {
pdField.setValue(field.value)
} else {
println(s"No field with name ${field.name}")
}
})
pdf.save(targetPdfPath)
pdf.close()
}
唯一的问题是,在填写 pdf 之前,我没有看到任何设置字体的选项。你能帮帮我吗?
【问题讨论】:
-
字段的字体取自字段定义。你为什么要改变它?要更改它,您需要 a) 将字体添加到 AcroForm 默认资源和 b) 更改默认外观字符串以使用该字体。有关简单示例,请查看
CreateSimpleForm.javainorg.apache.pdfbox.examples.interactive.form