本文收集 a:pPr 段落属性 ParagraphProperties 的属性的作用
本文的 OpneXMl SDK 的获取代码前提都有以下代码
public void Foo(Paragraph textParagraph)
{
ParagraphProperties paragraphProperties = textParagraph.ParagraphProperties;
}
本文会不断更新,因为属性太多了
defTabSz
Default Tab Size
OpneXMl SDK: var defaultTabSize = paragraphProperties.DefaultTabSize;
单位: EMU
作用: 描述 Tab 字符的默认宽度,注意 Tab 会被具体的字符影响,实际宽度不一定等于这个属性设置的值,因为会被具体的标尺影响,会和具体的排版相关
例如下面代码
<a:pPr fontAlgn="auto" defTabSz="360000">
<a:r>
<a:rPr b="1" dirty="0" lang="en-US" sz="2400">
<a:latin typeface="+mn-ea"/>
</a:rPr>
<a:t>1 1 1</a:t>
</a:r>
</a:pPr>
上面代码将 defTabSz
设置为 360000
也就是 10 厘米
1 cm = 360000 EMUs
10 cm = 3600000 EMUs
因此设置之后的效果如下
在两个字符之间如果输入 Tab 键,那么这个 Tab 键将占用 360000EMU 单位空间,当然,后续在这两个字符中间输出不超过 360000EMU 单位空间 的字符,那么依然不会更改 Tab 后字符的距离,如下图,输入了多个 z 字符
当然,想要理解这一点,还需要了解 Tab 的规则
latinLnBrk
Latin Line Break
OpenXML SDK: var latinLineBreak = paragraphProperties.LatinLineBreak;
作用:是否允许西文在单词中间换行
例如下面代码
<a:p>
<a:pPr fontAlgn="auto" defTabSz="3600000" latinLnBrk="0">
</a:pPr>
<a:r>
<a:rPr b="1" dirty="0" lang="en-US" sz="2400" >
<a:latin typeface="+mn-ea"/>
</a:rPr>
<a:t>aa aa aa aa aa aa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</a:t>
</a:r>
</a:p>
显示效果如下
将 latinLnBrk
设置为 1 的效果如下
<a:pPr fontAlgn="auto" defTabSz="3600000" latinLnBrk="1">
eaLnBrk
East Asian Line Break
OpenXML SDK: var eastAsianLineBreak = paragraphProperties.EastAsianLineBreak;
作用:是否允许东方字符在单词中间换行
请看 latinLnBrk 的作用,表现为允许标点在行首,如下面代码
<a:p>
<a:pPr fontAlgn="auto" defTabSz="3600000" latinLnBrk="1"></a:pPr>
<a:r>
<a:rPr b="1" dirty="0" lang="en-US" sz="2400" >
<a:latin typeface="+mn-ea"/>
</a:rPr>
<a:t>打字打字打字打字打字打字打字打字打字打字打字。</a:t>
</a:r>
</a:p>
效果如下
fontAlgn
Font Alignment
OpenXML SDK: var fontAlignment = paragraphProperties.FontAlignment;
作用:设置字体比较小的文本对齐方法
Office 的 PPT 2016 不支持
效果如下图
可以作出上标下标的效果
本文的单位请看 Office Open XML 的测量单位
本文会经常更新,请阅读原文: https://blog.lindexi.com/post/dotnet-OpenXML-%E6%96%87%E6%9C%AC-ParagraphProperties-%E7%9A%84%E5%B1%9E%E6%80%A7%E4%BD%9C%E7%94%A8.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。
如果你想持续阅读我的最新博客,请点击 RSS 订阅,推荐使用RSS Stalker订阅博客,或者收藏我的博客导航
本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接: https://blog.lindexi.com ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请 与我联系 。
无盈利,不卖课,做纯粹的技术博客
以下是广告时间
推荐关注 Edi.Wang 的公众号
欢迎进入 Eleven 老师组建的 .NET 社区
以上广告全是友情推广,无盈利