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 資料夾
在 WPF 裡面,可以參考 TextBlock.TextAlignment Property (System.Windows.Controls) 實現文字對齊
參考
- 對齊文字
- 怎樣將PPT中的文字強制對齊(分散對齊)-百度經驗
- word兩端對齊與分散對齊的區別_Office教程網
- 兩端分散對齊怎麼設定_Word文件兩端對齊.分散對齊如何設定_如說的部落格-CSDN部落格
- office2016Word文件字數不同段落如何兩端都對齊-百度經驗
- Word文件左右兩端對齊有什麼用,怎麼調整
- TextAlignmentTypeValues 列舉 (DocumentFormat.OpenXml.Drawing)
更多請看 Office 使用 OpenXML SDK 解析文件部落格目錄
部落格園部落格只做備份,部落格釋出就不再更新,如果想看最新部落格,請到 https://blog.lindexi.com/
本作品採用知識共享署名-非商業性使用-相同方式共享 4.0 國際許可協議進行許可。歡迎轉載、使用、重新發布,但務必保留文章署名[林德熙](http://blog.csdn.net/lindexi_gd)(包含連結:http://blog.csdn.net/lindexi_gd ),不得用於商業目的,基於本文修改後的作品務必以相同的許可釋出。如有任何疑問,請與我[聯絡](mailto:[email protected])。