更改c#中从OpenXML生成word文档时的默认文档布局

本文关键字:文档 默认 布局 word 中从 OpenXML 生成 更改 | 更新日期: 2023-09-27 17:49:54

我已经能够使用类似于这个问题中使用的格式生成一个简单的word文档,但是每当我打开文档时,它就会在打印布局视图中打开。是否有一种方法,我可以通过编程使其在默认情况下在网页布局视图打开?

更改c#中从OpenXML生成word文档时的默认文档布局

是的,您可以通过使用OpenXML.WordProcessing.View。需要创建View, Val设置为ViewValues.Web。然后,您需要创建一个Settings对象并将view附加到它。最后,您需要创建一个DocumentSettingsPart,并将其Settings属性设置为您创建的settings对象。

这听起来比它更糟糕,下面是一个完整的方法,从你提到的问题加上上面的代码。为了简化问题,我从答案中删除了内存流代码;这段代码将在磁盘上创建一个文件。

public static void CreateWordDoc(string filename)
{
    using (var wordDocument = WordprocessingDocument.Create(filename, WordprocessingDocumentType.Document))
    {
        // Add a main document part. 
        MainDocumentPart mainPart = wordDocument.AddMainDocumentPart();
        // Create the document structure and add some text.
        mainPart.Document = new Document();
        Body body = mainPart.Document.AppendChild(new Body());
        Paragraph para = body.AppendChild(new Paragraph());
        Run run = para.AppendChild(new Run());
        run.AppendChild(new Text("Hello world!"));
        //the following sets the default view when loading in Word
        DocumentSettingsPart documentSettingsPart = mainPart.AddNewPart<DocumentSettingsPart>();
        Settings settings = new Settings();
        View view1 = new View() { Val = ViewValues.Web };
        settings.Append(view1);
        documentSettingsPart.Settings = settings;
        mainPart.Document.Save();
    }
}