在Java中使用iText替换占位符

时间:2014-04-15 10:31:53

标签: java pdf itext

我的PDF包含<%DATE_OF_BIRTH%>等占位符,我希望能够读取PDF并使用iText将PDF占位符值更改为文本。

因此,请阅读PDF,使用可能的replaceString()方法并更改占位符,然后生成新的PDF。

这可能吗?

感谢。

1 个答案:

答案 0 :(得分:2)

PDF中占位符的使用非常非常有限。从理论上讲,它可以做到并且在某些情况下可以按照你的意思去做,但由于PDF并不是很了解结构,所以很难:

  • 简单地提取单词很困难,因此在许多情况下识别PDF中的占位符已经很困难了。

  • 替换PDF中的文本是一场噩梦,因为PDF文件通常不具有单词,行和段落的概念。因此,例如没有很好的文本重排。

就像我说的那样,它理论上可以在特殊条件下工作,但它不是一个很好的解决方案。

什么是更好的方法取决于您的用例:

1)对于某些形式,可以将完整的表格作为背景图像或PDF文件,然后生成您的文本作为背景的叠加(填写空白可以这么说)正如布鲁诺所指出的那样在评论中使用mlk,在这种情况下,您还可以查看使用可以动态填充的表单字段。

2)对于其他表单,最好以XML或HTML等结构化格式使用模板,以该格式替换文本,然后将其转换为PDF格式。