在 open xml c# 中为字符范围添加字符间距

add character spacing for range of character in open xml c#

如何为字符范围

添加字符间距 就像我想给字符间距 In word toggling for 2 characters gg of spacing="Expanded" with By value of 4pt


打开XML不仅有SDK,还有converting any document to C# code的工具。

了解如何使用某些单词功能的最佳方法是制作 2 个简短的文档网络 - 一个使用此功能,另一个 - 不使用。然后将两个 documnet 转换为 C# 代码并比较生成的代码(例如,您可以使用 WinMerge)。

如果您希望将样式应用到段落中间,您将需要(至少)3 个单独的 Run 元素;第一个用于无样式文本的开头,第二个用于具有间距的文本,第三个用于其余无样式文本。

要添加字符间距,您需要将 Spacing 元素添加到 RunSpacing 元素有一个 Value 属性 设置你想要的间距,以二十分之一的点为单位(因此要获得 4pt,你需要将值设置为 80)。

以下代码将在 toggling

一词的 gg 上创建一个带有空格的文档
public static void CreateDoc(string fileName)
{
    // Create a Wordprocessing document. 
    using (WordprocessingDocument package = 
             WordprocessingDocument.Create(fileName, WordprocessingDocumentType.Document))
    {
        // Add a new main document part. 
        package.AddMainDocumentPart();

        //create a body and a paragraph
        Body body = new Body();
        Paragraph paragraph = new Paragraph();

        //add the first part of the text to the paragraph in a Run
        paragraph.AppendChild(new Run(new Text("This sentence has spacing between the gg in to")));

        //create another run to hold the text with spacing
        Run secondRun = new Run();
        //create a RunProperties with a Spacing child.
        RunProperties runProps = new RunProperties();
        runProps.AppendChild(new Spacing() { Val = 80 });
        //append the run properties to the Run we wish to assign spacing to
        secondRun.AppendChild(runProps);
        //add the text to the Run
        secondRun.AppendChild(new Text("gg"));
        //add the spaced Run to the paragraph
        paragraph.AppendChild(secondRun);
        //add the final text as a third Run
        paragraph.AppendChild(new Run(new Text("ling")));

        //add the paragraph to the body
        body.AppendChild(paragraph);

        package.MainDocumentPart.Document = new Document(body);

        // Save changes to the main document part. 
        package.MainDocumentPart.Document.Save();
    }
}

以上产生以下结果:

请注意,您可以将 SpacingValue 设置为负数,文本将被压缩而不是展开。