精华内容
下载资源
问答
  • docx4j html转word
    2022-07-06 18:31:29

    实现步骤:

    1、首先引入jar包,maven依赖如下,可根据需要选择不同版本

    <dependency>
        <groupId>org.docx4j</groupId>
        <artifactId>docx4j-ImportXHTML</artifactId>
        <version>3.0.0</version>
    </dependency>

    2、代码实现

    html转word

    StopWatch stopWatch = new StopWatch();
    stopWatch.start("task1");
    WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.createPackage();
    MainDocumentPart mdp = wordMLPackage.getMainDocumentPart();
    String xhtml = "<html><head><title>task1</title></head><body><p>长大上课了!</p></body></html>";
    mdp.addAltChunk(AltChunkType.Xhtml, xhtml.getBytes());
    WordprocessingMLPackage pkgOut = mdp.convertAltChunks();
    XmlUtils.marshaltoString(pkgOut.getMainDocumentPart().getJaxbElement(), true, true)
    pkgOut.save(new java.io.File(System.getProperty("user.dir") + "/test.docx"));
    System.out.println(stopWatch.currentTaskName());
    stopWatch.stop();
    System.out.println(stopWatch.getLastTaskTimeMillis());

    word转pdf

    Mapper mapper = new IdentityPlusMapper();
    Map<String, PhysicalFont> fontMapper = mapper.getFontMappings();
    fontMapper.put("楷体", PhysicalFonts.getPhysicalFonts().get("KaiTi"));
    StopWatch stopWatch = new StopWatch();
    stopWatch.start("task3");
    String baseURL = System.getProperty("user.dir");
    WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.load(new File(baseURL+"/test.docx"));
    wordMLPackage.setFontMapper(mapper);
    Docx4J.toPDF(wordMLPackage, new FileOutputStream(new File(baseURL+"/helloworld.pdf")));
    System.out.println(stopWatch.currentTaskName());
    stopWatch.stop();
    System.out.println(stopWatch.getLastTaskTimeMillis());
    更多相关内容
  • docx4j生成word文档

    2019-01-18 15:54:33
    最近在做一个出卷系统,需要通过试卷模板从数据库中抽取题目,然后按照模板的样式生成完整的试卷,包括试卷格式的排版和图片的写入。这是用docx4j生成word文档。里面包括完整代码和所需jar包。
  • Html转Word(doc,docx),带样式以及图片转换,无缝对接
  • 直接复制使用即可private static Logger log = Logger.getLogger...public static void main(String[] args){generate(new File("D:/workspace/TestJsCall/TestJsCall/bin/Debug/tempPrint.html"), new File("...

    直接复制使用即可private static Logger log = Logger.getLogger(WordUtil.class);

    public static void main(String[] args)

    {

    generate(new File("D:/workspace/TestJsCall/TestJsCall/bin/Debug/tempPrint.html"), new File("d:/1.doc"));

    }

    /**

    * 生成文件

    * @param inputFile html文件路径

    * @param outputFile doc文件路径

    */

    public static void generate(File inputFile, File outputFile)

    {

    InputStream templateStream = null;

    try

    {

    // Get the template input stream from the application resources.

    final URL resource = inputFile.toURI().toURL();

    // Instanciate the Docx4j objects.

    WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.createPackage();

    XHTMLImporterImpl XHTMLImporter = new XHTMLImporterImpl(wordMLPackage);

    // Load the XHTML document.

    wordMLPackage.getMainDocumentPart().getContent().addAll(XHTMLImporter.convert(resource));

    // Save it as a DOCX document on disc.

    wordMLPackage.save(outputFile);

    // Desktop.getDesktop().open(outputFile);

    }

    catch (Exception e)

    {

    throw new RuntimeException("Error converting file " + inputFile, e);

    }

    finally

    {

    if (templateStream != null)

    {

    try

    {

    templateStream.close();

    }

    catch (Exception ex)

    {

    log.error("Can not close the input stream.", ex);

    }

    }

    }

    }

    easyoffice提供了 html转换 pdf word excel的工具类欢迎下载。

    http://download.csdn.NET/detail/shuaizai88/9851814

    如果觉得这篇文章帮助到你,给作者打赏点咖啡钱吧。

    展开全文
  • 引入依赖pom文件 4.0.0 org.example wordUtil 1.0-SNAPSHOT 8 8 8.3.0 org.slf4j slf4j-api 1.7.26 org.docx4j docx4j-JAXB-ReferenceImpl ${revision} ch.qos.logback logback-classic 1.2.3 org.jsoup jsoup ...

    引入依赖pom文件

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>org.example</groupId>
        <artifactId>wordUtil</artifactId>
        <version>1.0-SNAPSHOT</version>
    
        <properties>
            <maven.compiler.source>8</maven.compiler.source>
            <maven.compiler.target>8</maven.compiler.target>
            <revision>8.3.0</revision>
        </properties>
    
        <dependencies>
    
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>1.7.26</version>
            </dependency>
            <dependency>
                <groupId>org.docx4j</groupId>
                <artifactId>docx4j-JAXB-ReferenceImpl</artifactId>
                <version>${revision}</version>
            </dependency>
             <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-classic</artifactId>
                <version>1.2.3</version>
            </dependency>
            <dependency>
                <groupId>org.jsoup</groupId>
                <artifactId>jsoup</artifactId>
                <version>1.11.3</version>
            </dependency>
        </dependencies>
    
    </project>

    实现代码

    import org.docx4j.Docx4J;
    import org.docx4j.convert.out.HTMLSettings;
    import org.docx4j.openpackaging.packages.WordprocessingMLPackage;
    import org.jsoup.Jsoup;
    import org.jsoup.nodes.Entities;
    
    import java.io.ByteArrayOutputStream;
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.OutputStream;
    import java.nio.charset.StandardCharsets;
    import java.util.HashMap;
    import java.util.Map;
    
    /**
     * @author dengqianghua
     * @description: docx导出html
     * @date 2021/6/30 16:16
     */
    public class WordUtil {
        public static void main(String[] args) throws Exception {
            String filePath = "/var/2.docx";
            WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.load(new File(filePath));
            OutputStream os = new ByteArrayOutputStream();
            HTMLSettings htmlSettings = Docx4J.createHTMLSettings();
            htmlSettings.setUserBodyTail("");
            htmlSettings.setUserBodyTop("");
            htmlSettings.setOpcPackage(wordMLPackage);
            Docx4J.toHTML(htmlSettings, os, Docx4J.FLAG_NONE);
            String content = os.toString();
            //默认样式替换
            int start = content.indexOf("<style><!--");
            int end = content.indexOf("--></style>");
            Map<String, String> replaceMap = getReplaceContent();
            if (start > 0 && end > 0) {
                replaceMap.put(content.substring(start + 7, end + 3), replaceMap.get("style"));
            }
            replaceMap.remove("style");
    
            for (Map.Entry<String, String> item : replaceMap.entrySet()) {
                content = content.replace(item.getKey(), item.getValue());
            }
            new FileOutputStream("/var/1.html").write(htmlToXhtml(content).getBytes(StandardCharsets.UTF_8));
    
        }
    
        /**
         * html转xhtml不然导出会存在问题
         * @param html
         * @return
         */
        public static String htmlToXhtml(String html) {
            org.jsoup.nodes.Document doc = Jsoup.parse(html);
            doc.outputSettings().syntax(org.jsoup.nodes.Document.OutputSettings.Syntax.xml).escapeMode(Entities.EscapeMode.xhtml);
            return doc.html();
        }
    
        /**
         * 替换的内容
         * @return
         */
        static Map<String, String> getReplaceContent() {
            Map<String, String> replaceMap = new HashMap<>();
            replaceMap.put("style", "html, body, div, span, h1, h2, h3, h4, h5, h6, p, a, img,  table, caption, tbody, tfoot, thead, tr, th, td " +
                    "{ margin: 0; padding: 0; border: 0;}" +
                    "body {line-height: 1.5;} ");
    
            replaceMap.put("TO HIDE THESE MESSAGES, TURN OFF debug level logging for org.docx4j.convert.out.common.writer.AbstractMessageWriter", "");
            replaceMap.put("<script type=\"text/javascript\"><!--function toggleDiv(divid){if(document.getElementById(divid).style.display == 'none'){document.getElementById(divid).style.display = 'block';}else{document.getElementById(divid).style.display = 'none';}}\n" +
                    "--></script>", "");
            return replaceMap;
        }
    
    
    }
    

    展开全文
  • I'm working on my first project using docx4j... My goal is to export xhtml from a webapp (ckeditor created html) into a docx, edit it in Word, then import it back into the ckeditor wysiwyg.I have cre....

    I'm working on my first project using docx4j... My goal is to export xhtml from a webapp (ckeditor created html) into a docx, edit it in Word, then import it back into the ckeditor wysiwyg.

    I have created an html test document with the following contents:

    • TEST LINE 1
    • TEST LINE 2

    My code then creates a docx from this html like so:

    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("test.html"), null));

    System.out.println(XmlUtils.marshaltoString(wordMLPackage

    .getMainDocumentPart().getJaxbElement(), true, true));

    wordMLPackage.save(new java.io.File("test.docx"));

    My code then attempts to convert the docx BACK to html like so:

    WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage

    .createPackage();

    NumberingDefinitionsPart ndp = new NumberingDefinitionsPart();

    wordMLPackage.getMainDocumentPart().addTargetPart(ndp);

    ndp.unmarshalDefaultNumbering();

    XHTMLImporterImpl xHTMLImporter = new XHTMLImporterImpl(wordMLPackage);

    xHTMLImporter.setHyperlinkStyle("Hyperlink");

    WordprocessingMLPackage docx = WordprocessingMLPackage.load(new File("test.docx"));

    AbstractHtmlExporter exporter = new HtmlExporterNG2();

    OutputStream os = new java.io.FileOutputStream("test.html");

    HTMLSettings htmlSettings = new HTMLSettings();

    javax.xml.transform.stream.StreamResult result = new javax.xml.transform.stream.StreamResult(

    os);

    exporter.html(docx, result, htmlSettings);

    The html returned is:

    TEST LINE 1

    TEST LINE 2

    There is a lot of extra space created after each line now. Not sure why this is happening, the conversion appears to add a lot of extra white space/carriage returns.

    展开全文
  • README What is docx4j?...You'll probably want the Helper AddIn to generate code: http://www.docx4java.org/blog/2016/05/docx4j-helper-word-addin-new-version-v3-3-0/ Where to get help? ...
  • 使用Docx4J生成 html

    2021-06-10 03:01:37
    开源Docx4Jdocx文档转换成html文档使用maven导入docx4j包org.docx4jdocx4j3.0.1简单的测试访求publicstaticvoiddocxToHtml(Stringfilepath,Stringoutpath)throwsDocx4JException,FileNotFoundException{...
  • 1、把word文档html,以供显示在页面上 2、在页面上使用可视化富文本插件ckeditor编辑html代码,页面好看又好用 3、把htmlword文档 这其中就遇到了几个难点 1、成的html代码不规范,2、HTML转word...
  • 前段时间调研POI和docx4jword的操作,结合网上其他大佬的代码,自己补充写了并整合HTML转word的相关的公用方法。 用到的jar包 ‘org.docx4j:docx4j:6.0.1’, ‘org.docx4j:xhtmlrenderer:3.0.0’, ‘org.docx4...
  • java实现docx转html,自定义标签属性,然后根据自定义的标签属性,将html转为word,可支持普通段落,图片、表格、单元格合并、文本字体、字体大小、段落对齐方式、删除线、下划线、粗体、斜体、背景颜色等
  • docx4j所需jar包全

    2019-12-25 16:48:04
    docx4j所需jar包整合,其中word转pdf,word转htmlworddocx转doc,java代码实现,都可以使用,仅限学习参考使用。
  • http://www.chendd.cn/information/viewInformation/other/260.a在继本篇文章后,关于docx4j的知识点要完结了,个人认为已经实现了企业级应用中的绝大多数的高端应用的具体实现,另外更多的一些具体实现不准备继续...
  • 使用Docx4j创建word文档

    2021-03-09 06:40:05
    原文标题:Creating Word documents with Docx4j发表时间:2012年9月6日注:第一次翻译博客;由于个人水平不高,而且英语仅有级水平,所以错误很多,请大家见谅!!!只是国内关于docx4j的博客极少,感觉这篇入门...
  • word合并全家桶,包括横页和竖页兼容合并,里面包含使用文件格式转换,rtf转换为标准的word格式或者其他类型转换,jacob合并word案例及jar包,docx4j合并word案例及jar包,还有poi合并,以及Plutext-Enterprise-3.3.0.6...
  • 程序猿最近在做对文件操作的功能,搜索到docx4J的介绍,使用起来不错,所以这里整理记录下。 1.pom文件增加 <!-- https://mvnrepository.com/artifact/org.docx4j/docx4j --> <dependency> <...
  • 在分析阶段发现docx4j(http://www.docx4java.org/trac/docx4j)提供了转换功能。在调试开发时遇到了 HTML 格式兼容,样式丢失,PDF 中文字体等问题。二、分析docx4j-ImportXHTML...
  • 直接复制使用即可private static Logger log = Logger.getLogger...public static void main(String[] args){generate(new File("D:/workspace/TestJsCall/TestJsCall/bin/Debug/tempPrint.html"), new File("...
  • 如题,通过docx4j这个框架解析项目下的docx模板,然后在数据库查询数据,填充到Map,然后替换模板中的占位符${name},生成一个新的docx文档,并生成pdf文件。 1.jar包依赖 <dependency> <groupId>org....
  • 包括生成doc文档和docx文档。 二、什么是Freemarker? FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。 它不是面向最终用户...
  • 使用忠告使用该方式进行xhtml到word的转换, 简单转换是可以, 但是... 毕竟word是一种文档格式, 而html是一种标记性语言, 要想实现完美兼容和转换很难加上wordhtml(1) -- word转html, 虽然wordhtml都有...
  • Docx4j实现MsOffice(word、ppt、Excel)文件PDF
  • docx4j 操作word中的chart

    2020-09-18 08:23:45
    加载word文档 替换文档正文中的变量 替换chart显示的数据内容。 同步chart数据的excel数据。 保存更改后的文件 注意 必须在两个地方更改数据。 如果chart中的数据没有设置,那么打开生成的word后,chart显示的数据...
  • 完整项目包括所有jar包,完美支持html转word,并解决图片断网不能访问的问题。调用HtmlToWord类测试即可,注意修改调用文件的路径,因里面用到jacob,需要将jacob.dll拷贝到项目所在jre\bin目录下面
  • 使用docx4j获取dcox文档的xml文件内容,然后使用dom4j进行解析,对于不同的内容,新建pojo类,将解析的内容封装进去,然后统一转换为html; 由于pojo类过多,所以这里就不展示一个个展示,最后会提供下载地址, ...
  • public static <T> void getDocx(String fileName, List<Map<String, Object>> List) throws Exception { ... String testPath = "docx/研究生导师信息详细导出.docx"; //输出...
  • poi-tl根据word模板导出word、使用spring-thymeleaf模板生成html并通过docx4jhtml转word,使用jxls根据excel模板导出excel(2) thymeleaf 官网 ...
  • word内容提取 word转html 对样式、字体、图片、表格、等等均支持
  • kindeditor 富文本 html docx word

    千次阅读 2019-04-16 16:50:48
    public static void editorToWork(File file, String html) throws Exception { html = html.replaceAll("<p.+>", ""); html = html.replaceAll("</p>", "<br/>"); WordprocessingMLP.....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,176
精华内容 1,270
关键字:

docx4j html转word