Java - 将 doc/docx 文件转换为 chm 文件
Posted
技术标签:
【中文标题】Java - 将 doc/docx 文件转换为 chm 文件【英文标题】:Java - Convert doc/docx file to chm file 【发布时间】:2012-05-11 20:24:58 【问题描述】:我想将 Word 文档 (.doc/.docx) 文件转换为帮助文件 (.chm) 格式。我想使用 Java 来转换文件。我的公式很简单。使Word文档中的目录页面和其他链接,作为包资源管理器或文件资源管理器,使用户导航更简单,更快,更容易在文档中的页面之间导航。
所以,我的问题是:
java中有没有可以导入并用于文件转换的原生库?
请分享您实施上述概念的想法。
【问题讨论】:
这听起来是个好主意,但在实践中却非常困难。将 DOC 转换为任何东西都非常困难,DOCX 不那么重要,但仍然是一项艰巨的工作。由于您在 Java 领域工作,您可能希望找到适用于所有平台的帮助格式(chm 仅适用于 Windows)。 @jowierun 是的,我知道 chm 仅适用于 windows .. Apache POi 有support for reading and writing doc files。 @oers 我可以在 Eclipse 中将那个 Apachi PoI 用作插件或 jar 文件......吗?我需要购买许可证吗? 是一组jar文件,只是一个java库。它在(免费)apache 许可下是开源的。 【参考方案1】:在 Java 中完成这是一项相当困难的任务。但是,如果您安装 Microsoft html Help Workshop,您仍然可以这样做。
-
首先您可以通过Apache POI提取Word文档的文本,然后将它们作为HTML文档输出到一个临时目录。
接下来您需要创建一个 HHP 文件。它应该很容易创建,因为它是一个文本文件。只需遵循给定的规范here
那么你也应该有一个相应的 HHC 文件。它是一个简单的 HTML 文档,格式如下:
<html>
<head>
</head>
<body>
<ul>
<li><object type="text/sitemap">
<param name="Name" value="Foo Directory">
<param name="Local" value="BarDirectory/index.htm">
<param name="ImageNumber" value="1">
</object></li>
<ul>
<li><object type="text/sitemap">
<param name="Name" value="Topic1">
<param name="Local" value="BarDirectory/Bar.htm">
<param name="ImageNumber" value="11">
</object></li>
<li><object type="text/sitemap">
<param name="Name" value="Topic1">
<param name="Local" value="BarDirectory/Foo.htm">
<param name="ImageNumber" value="11">
</object></li>
</ul>
</ul>
</body>
</html>
类似地查找 HHK 文件的结构。
完成后,您可以从 Java 执行hhc.exe <inputfile.hhp>
。这应该可以完成工作。
【讨论】:
@Avadhani 是的,我明白了。但是使用 HTML Help Compiler 似乎是获得最终 CHM 文件的唯一方法,因为 CHM 是纯 Windows 专有格式。【参考方案2】:我不知道或找不到。但是,相反,如果您要手动操作将要使用的所需软件,那么制作一个为您做所有事情的 java 程序怎么样?只需发送命令并让它为您执行。我会提供一些代码,但我还没有在 java 中做到这一点。
另一种方法是在 VBscript 中执行,调用某些 java 类来运行,并使用 VBScript 将击键发送到程序。这种方法的唯一缺点是你不能让它在后台运行,并且在完成之前无法使用您的计算机。
【讨论】:
以上是关于Java - 将 doc/docx 文件转换为 chm 文件的主要内容,如果未能解决你的问题,请参考以下文章
使用 jodconverter 和 OpenOffice 将 doc/docx 转换为 pdf
如何将 doc/docx 文件转换为 markdown 或结构化文本?
使用 shell_exec 将 doc、docx 文件转换为 pdf
python 使用LibreOffice的命令行界面将PDF文件转换为与Microsoft Office Word兼容的doc / docx文件。