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

发布于 2024-11-09 12:02:18 字数 1503 浏览 2 评论 0原文

我使用 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>

是否有技巧可以在标记中指示保留空间?或者我们可以用另一种方式来构建这些运行以包含空间?

Using the OpenXmlSDK 2.0 I am reading and writing to powerpoint documents. We have a situation where a simple string within a powerpoint document has its whitespace stripped.

The example sentence within a single paragraph occurs when several inline markup changes are made to the one paragraph. It can be a little tricky to recreate the markup below, but writing the sentence in full using the powerpoint markup and then applying the formatting seems to produce the results below.

The quick brown fox.

This results in markup roughly similar to:

<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>

This all looks like it's working fine, and opens correctly within the PowerPoint client. But when opening, making changes elsewhere in the presentation using the OpenXmlSDK, saving and closing the document the markup has been simplified to:

<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>

Is there a trick to indicate in the markup to retain the space? Or another way we can structure these runs to include the spaces?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

挽手叙旧 2024-11-16 12:02:18

您需要执行

xml:space="preserve" 告诉它保留空白(从内存中写入 - 可能有语法错误)。

You need to do <a:t xml:space="preserve"> </a:t>

The xml:space="preserve" tells it to hang on to the whitespace (written from memory - may have the syntax wrong).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文