将HTML转换为DOCX

我的问题非常具体,我希望有人从HTML到DOCX进行了这种转换。

为此,我从github获取了一个示例代码,并在我的本地Eclipse安装程序中尝试了它。

import java.io.File; import java.io.FileNotFoundException; import javax.xml.bind.JAXBException; import org.docx4j.convert.in.xhtml.XHTMLImporterImpl; import org.docx4j.openpackaging.exceptions.Docx4JException; import org.docx4j.openpackaging.exceptions.InvalidFormatException; import org.docx4j.openpackaging.packages.WordprocessingMLPackage; import org.docx4j.openpackaging.parts.WordprocessingML.NumberingDefinitionsPart; public class HtmlToDocConvert { /** * @param args * @throws FileNotFoundException * @throws JAXBException * @throws Docx4JException */ public static void main(String[] args) throws FileNotFoundException, JAXBException, Docx4JException { // TODO Auto-generated method stub // File file = new File("C:\\TestWordToHtml\\html\\Test.html"); String inputfilepath = "C:\\TestWordToHtml\\html\\Test.html"; try { WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage .createPackage(); NumberingDefinitionsPart ndp = new NumberingDefinitionsPart(); wordMLPackage.getMainDocumentPart().addTargetPart(ndp); ndp.unmarshalDefaultNumbering(); XHTMLImporterImpl xHTMLImporter = new XHTMLImporterImpl( wordMLPackage); xHTMLImporter.setHyperlinkStyle("Hyperlink"); wordMLPackage.getMainDocumentPart().getContent().addAll( xHTMLImporter.convert(new File(inputfilepath), null)); File output = new java.io.File(System.getProperty("user.dir") + "/html_output.docx"); wordMLPackage.save(output); System.out.println("done"); System.out.println("file path where it is stored is" + " " + output.getAbsolutePath()); } catch (InvalidFormatException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } 

上面的代码给出了如下错误

线程“main”中的exceptionjava.lang.NoSuchMethodError:org.docx4j.org.xhtmlrenderer.docx.DocxRenderer。(Ljava / lang / String;)V at org.docx4j.convert.in.xhtml.XHTMLImporterImpl.getRenderer(XHTMLImporterImpl。 java:252)at HtmlToDocConvert.main上的org.docx4j.convert.in.xhtml.XHTMLImporterImpl.convert(XHTMLImporterImpl.java:466)(HtmlToDocConvert.java:41)

我的项目中的jar子实现了这一点如下。

docx4j-3.2.1.jar
docx4j-ImportXHTML-3.2.1.jar
SLF4J-API-1.7.7.jar
SLF4J-log4j12-1.7.7.jar
xhtmlrenderer-1.0.0.jar
log4j.jar

我已经剥离了xhtmlrendere.jar文件来查看DOCRendered类,并看到里面没有init方法。我已经花了将近半天的时间来弄清楚这个东西,我不确定这是否是正确的转换方式或者这甚至是可能的。

如果有人这样做了,他/她可以给我发送正确的xhtmlrenderer.jar文件或任何其他依赖项来实现这个简单的任务。

提前致谢

此致,巴努

这不是完整的例子,是吗? 只需从docx4j示例中查看ConvertInXHTMLFile.java即可 。

恕我直言,你缺少程序的基本部分。 此外,已经讨论过这个主题:

在java中将html转换为doc

如何将HTML转换为Microsoft Word文档?

用Java将HTML转换为Microsoft Word文档

如何使用docx4j将HTML转换为.docx?

检查代码 。 使用的Api是docx4j-ImportXHTML。 代码很容易理解。 只需将您的xhtml传递给api,就像在代码中一样,它将完成所需的工作。

我遇到了同样的问题,用版本3.0.0替换你的xhtmlrenderer-1.0.0 jar文件。 这是Maven Repository链接