【问题标题】:PDFBOX - WordUtils.wrap - need to display bold and non-bolded text on same linePDFBOX - WordUtils.wrap - 需要在同一行显示粗体和非粗体文本
【发布时间】:2017-11-20 05:12:12
【问题描述】:

我是 pdfbox 和 java 的新手 - 尝试复制带有徽标格式等的 pdf 字母。我需要在句子中使用混合字体(粗体)。目前附加段落字符串,使用 WordUtils.wrap,然后 begin.Text 等来解析和显示(drawString 有删除线无法选择这个 - 我确实找到了使用它的多字体信息)。由于字段值的文本和长度会有所不同,因此我不能简单地搜索、拆分和更改要显示的字体。无法使用标签来做到这一点(天哪,我已经尝试了我能想到的一切!),但希望有一种方法可以使用单个字符标识符作为粗体的开头,另一个作为粗体的结尾???一个问题是不能保证标识符最终会出现在段落的同一行。啊。其他一切都很完美,除了我需要加粗的文字。有没有人有什么建议??我需要使用 pdfbox 来完成此操作 - 不能使用 Itext。请帮忙!谢谢!!

【问题讨论】:

  • PDFBox 是低级的,不会为您制作段落/格式。这些 URL 可能会有所帮助,因为它与长度和位置有关:stackoverflow.com/questions/13701017/…stackoverflow.com/questions/27600166/…。我建议您编辑您的问题以显示您所做的代码以及您想要做什么。 (不是所有问题,只有一个)。
  • WordUtils.wrap - 你的意思是 apache commons 实用程序吗?除非您只使用等宽字体,否则您应该考虑换行的单个字形宽度,参见。例如this answer.

标签: pdfbox


【解决方案1】:

已解决 - 我想通了。谢谢你的建议!

我不想使用定位,需要让它尽可能简单。我们最终需要实现数百封信。我将 Utils.wrap 严格用作行解析器,而不是格式化,所以这很酷。 使用 2 个标识符 - 3 个检查 -

  • 1) 都在同一行,
  • 2) 在一行上以粗体开头,并且
  • 3) 在另一行以粗体结尾。

使用“”分割字符串并检查是否等于标识符。格式化很完美。如果由于某些疯狂的原因标识符包含在字母文本中,则可能需要修改。

它适用于第一次推出。再次感谢 - 非常感谢您的帮助!!!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-01
    • 1970-01-01
    • 2013-02-10
    • 2014-02-28
    • 1970-01-01
    • 1970-01-01
    • 2013-01-31
    相关资源
    最近更新 更多