2016-05-17 65 views
0

存在多个API,例如, docx4j,Apache POI,微软的SDK,它可以处理docx文件。我用docx4j来创建下面的代码片段。但是,它不会在“单词之前的文本”和“这是文本”之间创建空格。我想知道这是一个错误还是我可以做任何事情。Office Open XML在运行元素之间创建空间

您可以解压缩docx文件并将其再压缩一次(仅限内容;不是文件夹!),以便对document.xml进行更改,从而更改docx文本。创建空间的逻辑对我来说似乎很奇怪。有没有人对如何充分创建

 <w:proofErr w:type="spellStart"/> 
     <w:r> 
      <w:t>the text prior to the word</w:t> 
     </w:r> 
     <w:proofErr w:type="spellEnd"/> 
     <w:r> 
      <w:t> </w:t> 
     </w:r> 
     <w:r> 
      <w:t xml:space="preserve"> </w:t> 
     </w:r> 
     <w:commentRangeStart w:id="1"/> 
     <w:r> 
      <w:t>this is text</w:t> 
     </w:r> 

回答

1

添加XML的anwser:空间=“保存”属性来运行文本在里面,开始或结尾的空白。例如:

<w:r> 
     <w:t xml:space="preserve">the text prior to the word </w:t> 
    </w:r> 
+0

这没有奏效。它是独家还是? – user1772306

+1

在Word中输入一个句子。强迫它使用多次运行,或者通过大胆描述一个字,或者通过错误的方式。保存并解压缩结果。你会看到这是你如何做到的。很难说你做错了什么,除非你能把你的结果docx放在某个地方.... – JasonPlutext