【问题标题】:Replacing placeholders using iText in Java在 Java 中使用 iText 替换占位符
【发布时间】:2014-05-29 15:41:39
【问题描述】:

我有一个包含 等占位符的 PDF,我希望能够阅读 PDF 并使用 iText 将 PDF 占位符值更改为文本。

所以阅读 PDF,也许使用 replaceString() 方法并更改占位符,然后生成新的 PDF。

这可能吗?

谢谢。

【问题讨论】:

  • PDF 作为一种格式不适合使用 之类的占位符。如果您想要 PDF 中的占位符,您需要使用表单域。这在我的书的第 6 章中进行了解释:manning.com/lowagie2/samplechapter6.pdf
  • 这一章我已经看过了。我似乎找不到任何我需要做的事情来替换文本/字符串?
  • 阅读介绍,您会注意到您要求的是未完成。这就解释了为什么你找不到答案。

标签: java pdf itext


【解决方案1】:

PDF 中占位符的使用非常非常有限。理论上是可以做到的,在某些情况下按照你说的做是可行的,但是由于 PDF 不太了解结构,所以很难:

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

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

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

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

1) 对于某些表格,可以将完整的表格作为背景图像或 PDF 文件,然后生成文本作为该背景的覆盖(可以说是填写空白)正如 Bruno 和在 cmets 中使用 mlk,在这种情况下,您还可以考虑使用可以动态填充的表单字段。

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

【讨论】:

  • +1;在 1) 的情况下,使用 AcroForm 表单字段可能是合适的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-09-11
  • 2013-01-24
  • 2013-04-08
  • 2011-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多