【问题标题】:Can't convert .docx with inline images to .html with Interop.Word无法将带有内嵌图像的 .docx 转换为带有 Interop.Word 的 .html
【发布时间】:2018-03-29 11:45:58
【问题描述】:

我有包含此类字段的 .docx 文件:

{INCLUDEPICTURE \d "ooxWord://media/image1.jpg" * MERGEFORMATINET}

{INCLUDEPICTURE \d "ooxWord://media/image2.jpg" * MERGEFORMATINET}

我想将 .docx 文件转换为 .html。当我使用 MS Word 执行此操作时,会生成新的 .html 文件。还创建了文件夹 {filename}_files。此文件夹包含 .html 在 IMG 标记中引用的图像。

我使用 Interop.Word。问题是当我在代码中调用 SaveAs 时,只有第一个图像具有正确的 src 和文件夹路径。第二张图片在 src 中有“ooxWord://media/image2.jpg”。因此,当我在浏览器中打开 .html 时,我只能看到第一张图片。代码:

Microsoft.Office.Interop.Word._Application wrdApp = new Microsoft.Office.Interop.Word.Application();
wrdApp.Visible = false;
Microsoft.Office.Interop.Word._Document wrdDoc = wrdApp.Documents.Open(sourcePath);
wrdDoc.SaveAs2(targetPath, WdSaveFormat.wdFormatFilteredHTML);
wrdDoc.Close();
wrdApp.Quit();

我只能使用互操作。您有任何解决方法的想法吗?也许我应该传递特殊参数?

【问题讨论】:

  • 你尝试过任何代码吗?
  • 已添加代码。
  • 我建议您首先以最终用户身份在 Word 中进行试验,尝试各种 SaveAs 和 Web 设置选项,直到 Word 以最适合您要求的格式导出为 HTML。然后将其记录在宏中并将该输出与您正在使用的输出进行比较。 Word 从来都不是一个非常可靠的 HTML 输出源——它倾向于使用其专有的往返格式,而不是“标准”HTML...
  • 我会试试的!!!谢谢!!!
  • 没有帮助。

标签: c# ms-word interop


【解决方案1】:

我可以建议为该任务使用另一个库。 Spire.Doc 是免费的,比 Interop 更快、更简单、更可靠。

请参阅下面从字面上解决您的问题的示例。

https://www.e-iceblue.com/Tutorials/Spire.Doc/Spire.Doc-Program-Guide/Word-to-HTML-Convert-Word-to-HTML-with-C-VB.NET.html

【讨论】:

  • 谢谢,但我只能使用 Interop。
  • 它解决了这个问题,但它不适合,因为生成的 .html 被用作 Outlook MailItem 的正文。
  • 所以你用的是Spire?究竟是什么问题?
猜你喜欢
  • 2016-01-09
  • 1970-01-01
  • 2018-05-06
  • 1970-01-01
  • 2018-08-13
  • 2015-06-11
  • 2013-02-24
  • 2022-11-19
  • 1970-01-01
相关资源
最近更新 更多