当前位置: 首页 > 知识库问答 >
问题:

将HTML转换为DOCX

伍皓
2023-03-14
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”java.lang.nosuchmethoderror:org.docx4j.org.xhtmlrenderer.docx.docx.docx.docxrenderer.(ljava/lang/string;)V在org.docx4j.convert.in.xhtml.xhtmlimporterimpl.getrenderer(xhtmlimporterimpl.java:252),在org.docx4j.convert.in.xhtml.xhtmlimporterimpl.conver(xhtmlimporterimpl.java:466),在

在我的项目中实现这一点的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文件或任何Pother依赖项来实现这个简单的任务。

提前致谢

问候,Bhanu

暂时还没有答案

 类似资料:
  • 问题内容: 我们有一个水晶报表,我们需要将其作为电子邮件发送出去,但是从水晶报表生成的HTML几乎很丑陋,并且导致某些电子邮件客户端出现问题。我想将其导出为富文本格式,并尽可能将其转换为HTML。 有什么建议么? 问题答案: 我会在CodeProject RTFConverter上签出此工具。这个家伙很好地细分了程序的工作方式以及转换的细节。

  • 问题内容: 我有一些需要用XML迷惑的HTML文件。我们正在使用这些HTML为应用程序提供内容,但是现在我们必须以XML形式提供这些内容。 HTML文件包含,表格,div,图像,p,b或强标签等。 我用谷歌搜索并找到了一些应用程序,但是我还无法实现。 您能否建议一种将这些文件内容转换为XML的方法? 问题答案: 我成功使用了命令行实用程序。在Linux上,我使用迅速安装了它。然后命令: 给了一个x

  • 问题内容: 将PDF文档转换为HTML在浏览器中查看的最佳解决方案是什么?该站点有多个PDF文档,访问者可以单击HTML格式的视图,并且应在屏幕上以HTML文件的形式查看。 运行PHP,Linux,Apache的标准网站。 问题答案: pdftohtml可以正常工作:快速,稳定,但是html结果充其量是丑陋的。我已经在有很多工作简历的网站上使用了很长时间。 但是,这是提取文本内容的好方法。 或Go

  • 问题内容: 我想将从下面的脚本中获取的HTML表转换为CSV文件,但是出现如下类型错误: TypeError:序列项0:预期的字符串,找到标记 将其转换为CSV文件的最简单方法是什么?我尝试为: 但它写了“无” HTML是这样的: 问题答案: 这是csv lib的工作,将每一个td放入每一行并提取文本,它将处理每一行中缺少值的地方: 与您在页面上看到的表格完全匹配的表格: 如果您想使用字幕: 但是

  • 我想在pdf中更改一些超文本标记语言。我所有的html都是超文本标记语言字符串,但我不知道如何在中正确传递。 如果有人知道怎么做。。一定很好。多谢多姆

  • 我在将HTML转换为docx时遇到了新问题,它引发了异常: 组织。xml。萨克斯。SAXS异常;行号:4;栏目号:73;实体“nbsp”已被引用,但未被声明 正如我所理解的,这是因为docx4j认为我的文件是XML,并希望将其转换为docx但XML中只有5个预定义的实体,而nbsp等实体没有在XML中定义。如何让docx4j将超文本标记语言转换为doc,而无需在doctype中声明实体nbsp?