使用OpenXmlSDK在PPTX段落中缺少空格

时间:2011-05-24 05:26:07

标签: powerpoint openxml openxml-sdk drawingml

使用OpenXmlSDK 2.0我正在阅读和写入powerpoint文档。我们遇到一种情况,即powerpoint文档中的简单字符串的空白被剥离。

当对一个段落进行多个内联标记更改时,会出现单个段落中的示例句子。重新创建下面的标记可能有点棘手,但是使用powerpoint标记完整地编写句子,然后应用格式化似乎会产生下面的结果。

  

快速 棕色狐狸。

这导致标记大致类似于:

<a:p>
    <a:r>
        <a:t>The</a:t>
    </a:r>

    <a:r>
        <a:t> </a:t>
    </a:r>

    <a:r>
        <a:t b="1">quick</a:t>
    </a:r>

    <a:r>
        <a:t> </a:t>
    </a:r>

    <a:r>
        <a:t i="1">brown</a:t>
    </a:r>

    <a:r>
        <a:t> fox</a:t>
    </a:r>

</a:p>

这一切看起来都运行正常,并在PowerPoint客户端中正确打开。但是在打开时,使用OpenXmlSDK在演示文稿的其他位置进行更改,保存并关闭文档,标记已简化为:

<a:p>
    <a:r>
        <a:t>The</a:t>
    </a:r>

    <a:r>
        <a:t /> <!-- Whitespace missing, causes PowerPoint to ignore it. -->
    </a:r>

    <a:r>
        <a:t b="1">quick</a:t>
    </a:r>

    <a:r>
        <a:t /> <!-- Whitespace missing, causes PowerPoint to ignore it. -->
    </a:r>

    <a:r>
        <a:t i="1">brown</a:t>
    </a:r>

    <a:r>
        <a:t> fox</a:t>
    </a:r>

</a:p>

是否有标记在标记中保留空间?或者我们可以通过另一种方式构建这些运行以包含空格?

1 个答案:

答案 0 :(得分:0)

你需要做&lt; a:t xml:space =“preserve”&gt; &LT; / A:T&GT;

xml:space =“preserve”告诉它挂在空格上(从内存中写入 - 可能有错误的语法)。