我正在尝试通过使用类将模板DOCX文档替换为Apache 。我在文档中有标签,并有一个文件来读取替换数据。我的问题是,当我将其扩展名更改为file并打开时,文本行似乎以某种方式分开。例如,文本变成和分开。读取方式与此相同,因为原始格式是这样的。这将在段落中创建2个对象,分别显示和。POIXWPFDocumentJSONDOCXZIPdocument.xml[MEMBER_CONTACT_INFO][MEMBER_CONTACT_INFO]POIDOCXXWPFRun[MEMBER_CONTACT_INFO]
我的问题是,是否有一种方法可以POI通过合并相关运行或类似方法来强制运行像Word一样的运行?或者我该如何解决这个问题?我在替换时匹配运行文本,但找不到标签,因为它被分成2个不同的运行对象。
最好
这一次浪费了我很多时间...
基本上,an XWPFParagraph由多个XWPFRuns 组成,并且XWPFRun是具有固定相同样式的具有感染力的文本。
因此,当您尝试在MS-Word中编写类似“ [PLACEHOLDER_NAME]”的内容时,它将创建一个XWPFRun。但是,如果您以某种方式添加了更多内容,然后又将“ [PLACEHOLDER_NAME]”更改为其他名称,则永远无法保证它会保持单个状态,XWPFRun那么很可能会拆分为两个运行。这就是MS-Word的工作原理。
在这种情况下如何避免运行次数分裂?
解决方案:我知道两种解决方案:
将文本“ [PLACEHOLDER_NAME]”复制到记事本或其他内容。进行必要的修改,然后将其复制回并粘贴,而不是粘贴到Word文件中,而不是粘贴“ [PLACEHOLDER_NAME]”,这样,您的整个“ [PLACEHOLDER_NAME]”将被替换为新文本,以避免拆分XWPFRun。
选择“ [PLACEHOLDER_NAME]”,然后单击MS-Word的“替换”选项,并替换为“ [您新编辑的占位符]”,这将确保您的新占位符将使用一个XWPFRun。
如果必须再次更改新的占位符,请执行步骤1或2。
小智 0
前几天我也遇到了这个问题,但没有找到解决办法。我选择使用 PLACEHOLDER_NAME 而不是 [PLACEHOLDER_NAME]。这对我来说工作得很好,它看起来就像一个单一的 XWPFRun 对象。
| 归档时间: |
|
| 查看次数: |
2590 次 |
| 最近记录: |