我目前正在开发一个程序,需要将 Word 文档显示为 HTML,但要跟踪 HTML 和原始文件的位置。
为此,在最初加载 Word 文档时,会为文档中的每个元素生成 ID。
foreach (Table t in document.Tables)
{
t.ID = GUID();
Range range = t.Range;
foreach (Cell c in range.Cells)
{
c.ID = t.ID + TableIDSeparator + GUID();
}
}
foreach (Paragraph p in document.Paragraphs)
{
p.ID = GUID();
}
然后我可以通过这种方式将文档保存为 HTML:
document.SaveAs2(tempFileName, WdSaveFormat.wdFormatFilteredHTML);
但随后document对象变成了 HTML 文档,而不是原始的 Word 文档(就像使用 Word 菜单中的另存为时,当前窗口显示新保存的文档而不是原始文档一样)。
所以我尝试以这种方式将文档保存为 HTML:
Document temp = new Document();
string x = document.Range().XML;
temp.Range().InsertXML(x);
temp.SaveAs2(fn, WdSaveFormat.wdFormatFilteredHTML);
temp.Close(false);
但是现在新temp文档缺少我在原始文档中创建的所有 ID,因此我无法根据原始文档找到 HTML 文件中的位置。
我是否遗漏了一些重要的东西,或者有什么方法可以在不丢失对原始文件的引用的情况下另存为 word 文档?
RISEBY
互换的青春
相关分类