dotnet OpenXML 聊聊文本段落对齐方式
本文来和大家聊聊在 OpenXML 里面,文本段落对齐方式。在 Word 和 PPT 的文本段落对齐规则是相同的,对齐的规则比较多,本文将一一告诉大家
文本的段落对齐,需要设置给段落属性上,在 OpenXML SDK 里,使用 TextAlignmentTypeValues 枚举设置,如以下代码
using A = DocumentFormat.OpenXml.Drawing;
A.ParagraphProperties paragraphProperties = new A.ParagraphProperties() { Alignment = A.TextAlignmentTypeValues.Left };
我通过 OpenXML SDK 工具 将一份简单的 PPT 进行代码生成,然后修改里面的属性,用来测试不同的枚举值的效果。此 OpenXML SDK 工具 我放在 CSDN 下载 ,如果你想要但是不想从 CSDN 下载,还请发邮件给我
在 ECMA 376 文档,可以从 20.1.10.58 章找到具体的定义
我新建一个空 WPF 项目,添加如下代码用来测试
private void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
foreach (var textAlignmentTypeValue in Enum.GetValues<TextAlignmentTypeValues>())
{
var generatedClass = new GeneratedClass()
{
TextAlignment = textAlignmentTypeValue
};
var file = $"{textAlignmentTypeValue}.pptx";
generatedClass.CreatePackage(file);
Process.Start("explorer.exe", file);
}
}
上面的 GeneratedClass 就是使用 OpenXML SDK 工具 生成的
测试效果如下:
Justified
两端对齐,在 OpenXML 文档里面写入的字符串是 just
的值。运行效果如下:
两端对齐相对来说比较复杂
JustifiedLow
两端对齐,和 Justified 的不同在于,这是为阿拉伯语特别做的,对应字符串是 justLow
的值。 运行效果如下:
在 ECMA 376 的定义如下
Aligns the text with an adjusted kashida length for Arabic text.
可以测试如下的阿拉伯语
كرام بتحويل الكتابة العربي الى كتابة مفهومة من قب
分别使用 JustifiedLow 和 Justified 进行对齐,可以看到效果如下
最大的不同在于 JustifiedLow 对齐修改的是线条,但 Justified 是通过修改空格的宽度对齐
Left
左对齐,对应字符串是 l
的值。运行效果如下:
Center
居中对齐,对应字符串是 ctr
的值。运行效果如下:
Right
右对齐,对应字符串是 r
的值。运行效果如下:
Distributed
分散对齐,对应字符串是 dist
的值。运行效果如下:
和两端对齐的不同,请参阅本文的参考文档
ThaiDistributed
泰语分散对齐,对应字符串是 thaiDist
的值。运行效果如下:
Distributes Thai text specially, because each character is treated as a word.
代码
可以通过如下方式获取本文的源代码,先创建一个空文件夹,接着使用命令行 cd 命令进入此空文件夹,在命令行里面输入以下代码,即可获取到本文的代码
git init
git remote add origin https://gitee.com/lindexi/lindexi_gd.git
git pull origin cd98a7a6b29e9297864aad9d7326a635b6b68e5b
以上使用的是 gitee 的源,如果 gitee 不能访问,请替换为 github 的源
git remote remove origin
git remote add origin https://github.com/lindexi/lindexi_gd.git
获取代码之后,进入 Pptx 文件夹
参考
- 对齐文本
- 怎样将PPT中的文字强制对齐(分散对齐)-百度经验
- word两端对齐与分散对齐的区别_Office教程网
- 两端分散对齐怎么设置_Word文档两端对齐.分散对齐如何设置_如说的博客-CSDN博客
- office2016Word文档字数不同段落如何两端都对齐-百度经验
- Word文档左右两端对齐有什么用,怎么调整
- TextAlignmentTypeValues 枚举 (DocumentFormat.OpenXml.Drawing)
本文会经常更新,请阅读原文: https://blog.lindexi.com/post/dotnet-OpenXML-%E8%81%8A%E8%81%8A%E6%96%87%E6%9C%AC%E6%AE%B5%E8%90%BD%E5%AF%B9%E9%BD%90%E6%96%B9%E5%BC%8F.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。
如果你想持续阅读我的最新博客,请点击 RSS 订阅,推荐使用RSS Stalker订阅博客,或者前往 CSDN 关注我的主页
本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接: https://blog.lindexi.com ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。
无盈利,不卖课,做纯粹的技术博客
相关文章
- iOS 15 beta4推送,修复大量Bug,流畅性提升建议更新
- iOS 15 beta 4 新功能汇总:Safari继续调整、MagSafe外接电池支持
- 工信部:14 款 App 未严格落实开屏弹窗信息骚扰用户问题整改要求,含 QQ 阅读等
- 苹果紧急发布 iOS 14.7.1 正式版,修复两大 Bug
- 门罗币挖矿僵尸网络PGMiner瞄准PostgreSQL
- 紧急推出!iOS14.7.1正式版更新,修复问题
- 我们一起了解 Swift 调度器
- 苹果宣布停止签署iOS 14.6
- iOS 14.7.1 紧急发布,建议所有用户更新
- Facebook抢占商标,PrestoSQL无奈选择更名
- 苹果突发iOS/iPadOS14.7.1:修复Touch ID解锁问题
- 2021年实用的摩登极简风 UI 设计指南
- 一篇学会使用 SwiftUI 创建万花尺
- iOS14.7首批用户评价出炉,带来3个坏消息,暂时建议不要更新
- 为什么很多人宁愿买二手iPhone,也不愿意买安卓新机?
- iOS 15引入基于半身照的人物识别功能
- iOS系统出现漏洞?难怪军队不让用苹果手机
- 谷歌推出Android Auto Beta测试项目 鼓励用户尝鲜和提交反馈
- 用KANO和PSM两大模型,帮你学会分析需求和产品定价
- 618 拼团活动结束后,我的四个设计反思