OoxmlSaveOptions

OoxmlSaveOptions()

初始化此类的新实例,该实例可用于以Docx格式保存文档.

public OoxmlSaveOptions()

例子

显示如何为保存的文档设置 OOXML 合规性规范以遵守。

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// 如果我们配置兼容性选项以符合 Microsoft Word 2003,
// 插入图像将使用 VML 定义其形状。
doc.CompatibilityOptions.OptimizeFor(MsWordVersion.Word2003);
builder.InsertImage(ImageDir + "Transparent background logo.png");

Assert.AreEqual(ShapeMarkupLanguage.Vml, ((Shape)doc.GetChild(NodeType.Shape, 0, true)).MarkupLanguage);

// “ISO/IEC 29500:2008”OOXML 标准不支持 VML 形状。
// 如果我们将 SaveOptions 对象的“Compliance”属性设置为“OoxmlCompliance.Iso29500_2008_Strict”,
 // 我们在传递此对象时保存的任何文档都必须遵循该标准。
OoxmlSaveOptions saveOptions = new OoxmlSaveOptions
{
    Compliance = OoxmlCompliance.Iso29500_2008_Strict,
    SaveFormat = SaveFormat.Docx
};

doc.Save(ArtifactsDir + "OoxmlSaveOptions.Iso29500Strict.docx", saveOptions);

// 我们保存的文档使用 DML 定义形状以符合“ISO/IEC 29500:2008”OOXML 标准。
doc = new Document(ArtifactsDir + "OoxmlSaveOptions.Iso29500Strict.docx");

Assert.AreEqual(ShapeMarkupLanguage.Dml, ((Shape)doc.GetChild(NodeType.Shape, 0, true)).MarkupLanguage);

也可以看看


OoxmlSaveOptions(SaveFormat)

初始化此类的新实例,该实例可用于将文档保存在Docx中, Docm,Dotx,Dotm或 FlatOpc格式。

public OoxmlSaveOptions(SaveFormat saveFormat)
范围 类型 描述
saveFormat SaveFormat 可以是Docx,Docm, Dotx,Dotm或FlatOpc。

例子

显示在转换为 .docx 时如何支持旧版控制字符。

Document doc = new Document(MyDir + "Legacy control character.doc");

// 当我们将文档保存为 OOXML 格式时,我们可以创建一个 OoxmlSaveOptions 对象
// 然后将它传递给文档的保存方法来修改我们如何保存文档。
// 将“KeepLegacyControlChars”属性设置为“true”以保留
// 保存时的“ShortDateTime”遗留字符。
// 将“KeepLegacyControlChars”属性设置为“false”以删除
// 输出文档中的“ShortDateTime”遗留字符。
OoxmlSaveOptions so = new OoxmlSaveOptions(SaveFormat.Docx);
so.KeepLegacyControlChars = keepLegacyControlChars;

doc.Save(ArtifactsDir + "OoxmlSaveOptions.KeepLegacyControlChars.docx", so);

doc = new Document(ArtifactsDir + "OoxmlSaveOptions.KeepLegacyControlChars.docx");

Assert.AreEqual(keepLegacyControlChars ? "\u0013date \\@ \"MM/dd/yyyy\"\u0014\u0015\f" : "\u001e\f",
    doc.FirstSection.Body.GetText());

也可以看看