我正在将doc文件转换为HTML文件并且工作得很好,但我需要实现的一件事是,HTMl文件的格式必须与"打印布局&中的word文件格式相同#34;格式。
如果我能以某种方式将页脚信息(即每页的页码)添加到转换的HTML文件中,那么我的工作也将完成。
Microsoft.Office.Interop.Word.Application oWord = new Microsoft.Office.Interop.Word.Application();
oWord.Documents.Open(ref FileName, ref ReadOnly, ref MissingType,
ref MissingType, ref MissingType, ref MissingType,
ref MissingType, ref MissingType, ref MissingType,
ref MissingType, ref IsVisible, ref MissingType,
ref MissingType, ref MissingType, ref MissingType,
ref MissingType);
var oWordDoc = oWord.ActiveDocument;
oWordDoc.SaveAs(ref HtmlDirectoryPath, ref DocumentFormat, ref MissingType, ref MissingType,
ref MissingType, ref MissingType, ref MissingType, ref MissingType, ref MissingType,
ref MissingType, ref MissingType, ref MissingType, ref MissingType, ref MissingType,
ref MissingType, ref MissingType);
当我看到HTMl文件时,它与" Web Layout"相同。单词模式。我不想要的。
我正在使用C#和Microsoft.Office.Interop.Word库进行此转换。
更新1 :正如您所看到的,有三种模式可以查看Word文档文件 - 读取模式,打印版面和Web版式。但是我使用上面的代码转换文件,生成的HTML文件内容与word文档的Web布局模式相同。因此,当有人去阅读那个HTML文件并且想要报告某些错误或错误地回到起草文档的人那个日期不正确并且你必须更新它时,那么就不知道在哪个页面上确切的错误/错误是。因为在HTML格式中没有显示页面信息。
所以我的工作是根据页面方式将一些页面信息添加到转换后的HTML中,以便验证者可以轻松地告诉起草人我已经浏览了文件并且在页面号X上有日期更正。
我尝试将页码添加到文档页脚中,但是当我将其转换为HTML时,没有随页转换的页脚信息。 希望我现在澄清这个问题。
答案 0 :(得分:0)
这是一个很老的问题,但对于某些人来说可能仍然很重要。
默认情况下,HTML没有页面概念,但是可以通过使用Word部分来实现,Word部分默认情况下会转换为HTML,这是易于访问的元素(来自C#和HTML / CSS)。
不幸的是,Word部分不会在每页末尾添加,而是仅在下一页具有其他设置(页边距布局等)时才手动添加,并且可能很少添加其他情况。
您可以在Word中手动或以编程方式添加分节符。 要以编程方式进行操作,可以转到最后一页(第一行代码),效果很好。然后添加分节符并转到最后一页(从上一页开始到第二页结束),进入每一页的上一页(for循环中的第一和第二代码行):
YourWordApp.Selection.GoTo(Word.WdGoToItem.wdGoToPage, Word.WdGoToDirection.wdGoToLast);
for (int pageNum = pageCount; pageNum >= 2 ; pageNum--)
{
YourWordApp.Selection.InsertBreak(Word.WdBreakType.wdSectionBreakContinuous);
YourWordApp.Selection.GoToPrevious(Word.WdGoToItem.wdGoToPage);
}
您可以使用其他任何适合您需要的分节符(来自Word.WdBreakType)。
您可以通过以下方式获取pageCount:
int pageCount = YourWordDoc.Content.Information[Word.WdInformation.wdNumberOfPagesInDocument];
您可以从开始(第2页)到结束进行迭代,对于某些文档而言可能会有些混乱(更多的空行),而对于其他文档则可能会有些混乱。
您可能还希望在页面末尾添加分节符(可能会使您的文档杂乱一些)-然后您必须从第一页到最后一页进行迭代。
此方法将为您提供一些强制使用HTML的Word页面的功能,但仅当您只有一个部分时才有效-文档中没有任何分节符,这是不可能的。 如果您所拥有的部分不只一个(至少一个分节符),您就必须以某种方式对其进行处理-删除它们(不删除其内容)或与之前步骤中添加的内容区分开来在下一个过去。 此外-它几乎总是将一些内容移至上一页/下一页,因此最终编号可能与原始编号不同。
当您获得页面时,只需在末尾插入一些div或其他元素保存编号或在每一节的开头处进行编号,然后为这些元素提供唯一的类-即可设置格式样式-使它们清晰可辨作为编号。
如果您想以更好的方式或通过更多方式获得页脚,则只需编号-您可能会发现mvark blog post有用。