gpt4 book ai didi

使用 OpenXML SDK 创建文档时 OpenXML Powertools HtmlConverter 失败

转载 作者:行者123 更新时间:2023-12-02 12:09:07 27 4
gpt4 key购买 nike

我使用 OpenXML SDK 2.5 编写了一个 Word 文档,当我在 MS Office 中预览该文档时,该文档给出了预期的外观和格式。

现在我需要将此文档转换为 HTML 文档,我开始了解 OpenXML Powertools 中的 HtmlConverter,并尝试使用它,使用 OpenXML Powertools 的 Docx 到 Html 转换失败,并显示 NullReferenceException 声明 Part 作为空值参数。

为了进行调查,我创建了新的 Word 文档(在 MS Word 中),其中包含文档的确切内容;该文件已成功转换为 Html,因此问题出在我用 C# 创建的文档上。我发现两者的文件大小各不相同(从 MS Word 创建的文档较重,而使用 OpenXML SDK 创建的文档似乎较轻);我已将这两个文件重命名为 ZIP 以便检查其内容,下面使用 MS Office 创建的文档的 document.xml 标记位于顶部,使用 OpenXML SDK 创建的文档标记位于底部,

enter image description here

我怀疑 HtmlConverter 的失败是由于这些标记更改造成的。我的假设正确吗?如果是这样,如何在文档中添加这些附加标记。这是我用来创建 Word 文件的代码。

using (WordprocessingDocument wordDocument = WordprocessingDocument.Create(@"D:\15052018.docx", WordprocessingDocumentType.Document)) 
{
MainDocumentPart mainPart = wordDocument.AddMainDocumentPart();
mainPart.Document = new Document();
Body body = mainPart.Document.AppendChild(new Body());
Paragraph para = body.AppendChild(new Paragraph());
Run run = para.AppendChild(new Run());
RunProperties rpr = new RunProperties(new RunFonts() { Ascii = "Times New Roman" });
run.PrependChild<RunProperties>(rpr);
run.AppendChild(new Text("Welcome"));
wordDocument.Save();
wordDocument.Close();
}

对于 Html 转换,

using (WordprocessingDocument doc = WordprocessingDocument.Open(@"D:\15052018.docx", true))
{
HtmlConverterSettings settings = new HtmlConverterSettings() { PageTitle = "My Page Title" };
var html = HtmlConverter.ConvertToHtml(wDoc: doc, htmlConverterSettings: settings);
File.WriteAllText(@"D:\Test1.html", html.ToStringNewLineOnAttributes());
}

最佳答案

要查看文件差异,我建议您将使用 SDK 创建的文件与使用 Word 创建的文件进行比较。您可以使用 Open XML Productivity Tool 来完成此操作。要安装该工具,请按照下列步骤操作:

  1. 转到download link
  2. 点击红色下载按钮。
  3. 在下一个屏幕上,只需点击 OpenXMLSDKToolV25.msi 旁边的框
  4. 然后点击“下一步”,浏览器将自动开始下载。

安装后,启动该工具。

要比较 2 个 OpenXml 文件,请单击中间的“比较文件”按钮,就会显示差异。

enter image description here

在比较模式下打开文件后,在右侧部件选择器区域中选择主文档部件,然后单击“查看部件差异”按钮。

enter image description here

这将向您显示不同的 XML。如果单击“查看包代码”,则会生成 C# 代码,如果需要,可以弥补两个文件之间的差异。

专业提示 - 要仅生成构建由 Word 创建的文件所需的代码,请使用“打开文件”按钮在快捷 session 工具中以非比较模式打开该文件。然后单击“反射(reflect)代码”以生成重新创建 Word 生成文件的精确克隆所需的 C# 代码。

关于使用 OpenXML SDK 创建文档时 OpenXML Powertools HtmlConverter 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48800770/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com