gpt4 book ai didi

apache-poi - Apache POI XWPFRun 对象中的分隔文本行

转载 作者:行者123 更新时间:2023-12-04 23:02:49 26 4
gpt4 key购买 nike

我正在尝试替换模板 DOCX使用 Apache 的文档 POI通过使用 XWPFDocument类(class)。我在文档中有标签和 JSON文件以读取替换数据。我的问题是 DOCX 中的文本行似乎以某种方式分开。当我将其扩展名更改为 ZIP文件并打开 document.xml .例如 [MEMBER_CONTACT_INFO]文本变为 [MEMBER_CONTACT_INFO]分别地。 POIDOCX 开始以相同的方式读取此内容原来是这样的。这将创建 2 XWPFRun段落中将文本显示为 [MEMBER_CONTACT_INFO 的对象和 ]分别地。

我的问题是,有没有办法强制POI通过合并相关运行或类似的东西像 Word 一样运行?或者我该如何解决这个问题?我在替换时匹配运行文本,但我找不到我的标签,因为它被分成 2 个不同的运行对象。

最好的

最佳答案

这一次浪费了我很多时间...

基本上,XWPFParagraph由多个 XWPFRun 组成s,而 XWPFRun 是具有固定相同样式的具有传染性的文本。

因此,当您尝试在 MS-Word 中编写类似“[PLACEHOLDER_NAME]”的内容时,它将创建一个 XWPFRun。但是,如果您以某种方式添加了更多内容,然后返回并将“[PLACEHOLDER_NAME]”更改为其他内容,则永远无法保证它将保持为单个 XWPFRun它很可能会分成两个运行。 AFAIK 这就是 MS-Word 的工作原理。

在这种情况下如何避免拆分运行?

解决方案:我知道有两种解决方案:

  • 将文本“[PLACEHOLDER_NAME]”复制到记事本或其他东西。进行必要的修改并将其复制回去并将其而不是“[PLACEHOLDER_NAME]”粘贴到您的 Word 文件中,这样您的整个“[PLACEHOLDER_NAME]”将被替换为新文本,从而避免拆分 XWPFRuns。
  • 选择“[PLACEHOLDER_NAME]”,然后单击 MS-Word 的“替换”选项并替换为“[Your-new-edited-placeholder]”,这将保证您的新占位符将使用单个 XWPFRun。

  • 如果您必须再次更改新占位符,请按照步骤 1 或 2。

    关于apache-poi - Apache POI XWPFRun 对象中的分隔文本行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19137818/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com