PowerPoint如何区分运行中使用的拉丁语/东方语/复杂脚本中的哪个脚本?

时间:2019-07-16 07:10:31

标签: c# fonts powerpoint openxml

当我试图计算通过Open XML在PowerPoint演示文稿中每种字体显示的字符数时,我偶然发现了一个问题。 一个Run可以包含RunProperty,它可以具有为LatinFont,EastAsianFont和ComplexScriptFont声明的多种字体。 我的问题是:PowerPoint如何精确地确定将上述字体中的哪些字体用于给定的字符集。 一次运行是否可能会显示多种字体? 可以将它们表示为Unicode范围吗? 预先感谢您的见解!

在计算字体时,我试图避免为多个字体分配相同的字符。例如,如果为Run声明了2/3种字体,我应该如何计算空间?

<a:r>
<a:rPr lang="pl-PL" dirty="0" smtClean="0">
    <a:latin typeface="Courier New" panose="02070309020205020404" pitchFamily="49" charset="0"/>
    <a:cs typeface="Forte" panose="03060902040502070203" pitchFamily="66" charset="0"/>
</a:rPr>
<a:t> </a:t></a:r>

1 个答案:

答案 0 :(得分:0)

字体根据标记运行的语言进行切换。此PowerPoint XML以字体主题的拉丁,复杂脚本和东亚字体显示文本。请注意每个标签的 lang 标签:

<p:txBody>
    <a:bodyPr/>
    <a:lstStyle/>
    <a:p>
        <a:r>
            <a:rPr lang="en-US"/>
            <a:t>English</a:t>
        </a:r>
        <a:endParaRPr lang="ar-KW" dirty="0"/>
    </a:p>
    <a:p>
        <a:r>
            <a:rPr lang="ar-KW" dirty="0"/>
            <a:t>ِقشلاهؤ</a:t>
        </a:r>
    </a:p>
    <a:p>
        <a:r>
            <a:rPr lang="th-TH" dirty="0"/>
            <a:t>ธ้ฟร</a:t>
        </a:r>
    </a:p>
</p:txBody>