在Apache的POI XWPFRun对象分隔文本行

 

问 题

我是试图取代模板 DOCX 与Apache POI文件使用 XWPFDocument 类。我在doc和 JSON 文件标签读取替换数据。我的问题是一个文本行,似乎在 DOCX以某种方式分离当我改变其推广到邮政编码文件打开 document.xml 。例如 [MEMBER_CONTACT_INFO] 文本成为 [MEMBER_CONTACT_INFO 和] 分别。 POI 在自 DOCX 原来是这样以同样的方式读取此。这将在第2款 XWPFRun 对象这显示文本为 [MEMBER_CONTACT_INFO 和] 分开。

我的问题是,有没有办法迫使 POI 通过合并相关的运行或类似的东西,如Word运行?或者,我怎么能解决这个问题?我正在运行的匹配,而文本替换因为它被分成2个不同的运行对象我找不到我的标签。

最佳

 

解决方案

这浪费了那么多我的时间...一次

基本上,一个 XWPFParagraph 是由多个的 XWPFRun s和XWPFRun是具有固定的传染性文本同样的风格。

所以,当你尝试写一些像“[PLACEHOLDER_NAME]”在MS-Word中它会创建一个单一的XWPFRun。但是,如果你不小心添加了一些东西多了,然后你回去改“[PLACEHOLDER_NAME]”以别的东西它永远不会保证它仍将是一个 XWPFRun 它很可能,这将拆分到两分。据我所知,这是MS-Word如何工作的。

如何避免奔跑的分裂在这种情况下?

解决方案:有两种解决方案,我所知道的:


  1. 复制文本“[PLACEHOLDER_NAME]”到记事本什么的。让你的必要的修改和复制回来,并粘贴,而不是“[PLACEHOLDER_NAME]”你的字的文件,这样一来你的整个“[PLACEHOLDER_NAME]”将被新的文本,避免XWPFRuns分裂取代。


  2. 选择“[PLACEHOLDER_NAME]”,然后单击MS-Word中的“替换”选项,并替换为“[您的全新编辑的占位符]”,这将保证您新的占位符会消耗一个XWPFRun



     

如果您需要再次更改新的占位符,按照步骤1或2。

转载于:https://my.oschina.net/airship/blog/2051627

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值