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 的值。運行效果如下:

右對齊,對應字符串是 r 的值。運行效果如下:

Distributed

分散對齊,對應字符串是 dist 的值。運行效果如下:

和兩端對齊的不同,請參閱本文的參考文檔

ThaiDistributed

泰語分散對齊,對應字符串是 thaiDist 的值。運行效果如下:

Distributes Thai text specially, because each character is treated as a word.

代碼

本文所有代碼放在githubgitee 歡迎訪問

可以通過如下方式獲取本文的源代碼,先創建一個空文件夾,接着使用命令行 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) 實現文本對齊

參考

更多請看 Office 使用 OpenXML SDK 解析文檔博客目錄


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM