我开始怀疑这是否可能。我在Google上搜索了一些解决方案,并且没有提供任何符合我喜欢的解决方案。
我认为解释这个问题是有益的。我在我大学的IT部门为数据库小组工作。我的主要工作是在docx文件中获取报告的规范,将其复制到Dreamweaver,修复一些格式,并将其放到他们的网站上。我的问题是一遍又一遍地做这件事是非常乏味的。我想,嘿,我现在还没有在C#中编写任何东西,也许我可以编写一个应用程序来获取docx文件,将其转换为HTML,修复CSS,粘贴页眉以及页面上的页脚,并保存结果。我原本打算让它一个接一个地做,但是输入文件列表和批量转换可能并不困难。
我已经找到了关于如何实现这一目标的相关主题,但它们并不能很好地满足我的需求。
http://www.techrepublic.com/blog/howdoi/how-do-i-modify-word-documents-using-c/190
对于一些文档来说这可能很好,但由于它只是自动化一个Word实例,我觉得它很慢并且内存密集。我宁愿避免打开和关闭Word 50+的实例。
http://openxmldeveloper.org/articles/333.aspx
这是我开始使用的。 XSLT的好处是不需要为每个文件安装或运行单词。经过一番搜索,我得到了一个概念验证工作。它接收一个docx文件,解压缩它,从中获取document.xml,并使用我从OpenXML查看器中清除的DocX2Html.xsl文件。我相信这最初由MS提供给sharepoint服务器,以提供在浏览器中呈现word文档的能力。或者沿着这些方向发展。
在调整代码以满足我的需求并且遇到objXSLT.Load()方法问题之后,我最终使用IlMerge将XSL变成了DLL。不知道为什么我在使用普通的旧XSL文件时仍然遇到编译错误,但DLL工作正常,所以我很满意。这里(http://pastebin.com/a5HBAakJ)是我目前的代码。它可以很好地将docx转换为HTML(除了某些单词之间的随机空格),但结果文件的HTML语法非常难看。这里可以找到这种怪物的一个例子(http://pastebin.com/b8sPGmFE)。
有谁知道如何解决这个问题?我想也许我需要制作一个新的XSL文件,因为MS提供的是负责将所有这些标签和额外代码粘贴在那里的东西。我的问题是我对如何做到这一点一无所知。也许还有一个替代版本。我只需要保留表格和文本格式。不需要图像。
答案 0 :(得分:6)
这看起来就像你需要的那样:http://msdn.microsoft.com/en-us/library/ff628051(v=office.14).aspx
作者Eric White在博客中介绍了他开发该工具的经验。您可以在此处查看其博客上的帖子列表:http://blogs.msdn.com/b/ericwhite/archive/2008/10/20/eric-white-s-blog-s-table-of-contents.aspx#Open_XML_to_XHtml
答案 1 :(得分:2)
由于我是Aspose.Words的忠实粉丝,这是一个用于创建/处理Word文档的商业库,我会做类似的事情:
既然你写过你在大学工作,我不确定商业套餐是否可以选择。
答案 2 :(得分:2)
您不确定推广自己的解决方案的规则是什么,所以如果我不合适,请告诉我。
我是一名有同样问题的网站开发人员,所以我创建了自己的工具: http://www.convertwordtohtml.com
我们正在开发一个新版本,它将具有更好的转换质量和一次点击转换,例如,您可以右键单击一个word文件,它将直接转换为html并将代码放入剪贴板。当前版本还支持命令行访问,新版本将具有服务器版本。
可以从网站下载免费试用版,如果您有任何疑问,请随时与我联系。