精华内容
下载资源
问答
  • word 模板生成ftl并实现转换成pdf

    千次阅读 2019-04-19 11:56:48
    最近在处理doc转换成pdf的时候碰到个比较奇葩的问题,正常的doc文件转换成pdf,使用openoffice,poi,itextpdf,都能进行转换 但是,我需要转换的doc是一...后台程序根据ftl文件生成具有内容的doc文件。 后面通过...

    最近在处理doc转换成pdf的时候碰到个比较奇葩的问题,正常的doc文件转换成pdf,使用openoffice,poi,itextpdf,都能进行转换

     

    但是,我需要转换的doc是一个word模板类型的文件,形成过程为:编写word模板-->将word模板转换成xml文件-->将xml文件改成ftl后缀-->后台程序根据ftl文件生成具有内容的doc文件。

     

    后面通过查询才找到一种方式,根据aspose.words可以将这种类型的文档转换成pdf文件。

     

    下面码代码:

     

     

    package com.zt.fs.util;
    
    import com.aspose.words.Document;
    import com.aspose.words.License;
    import com.aspose.words.SaveFormat;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.InputStream;
    
    
    public class Word2PdfUtil {
        private static InputStream license;
        private static InputStream fileInput;
        private static File outputFile;
    
        /**
         * 获取license
         *
         * @return
         */
        public static boolean getLicense(String docFile, String licenseFile, String pdfFile) {
            boolean result = false;
            try {
                license = new FileInputStream(licenseFile);// 凭证文件
                fileInput = new FileInputStream(docFile);// 待处理的文件
                outputFile = new File(pdfFile);// 输出路径
                License aposeLic = new License();
                aposeLic.setLicense(license);
                result = true;
            } catch (Exception e) {
                e.printStackTrace();
            }
            return result;
        }
    
    
        public static int doc2Pdf(String docFile, String pdfFile, String licenseFile) {
            // 验证License
            if (!getLicense(docFile, licenseFile, pdfFile)) {
                return 1;
            }
            try {
                long old = System.currentTimeMillis();
                Document doc = new Document(fileInput);
                FileOutputStream fileOS = new FileOutputStream(outputFile);
                doc.save(fileOS, SaveFormat.PDF);
                long now = System.currentTimeMillis();
                System.out.println("共耗时:" + ((now - old) / 1000.0) + "秒\n\n" + "文件保存在:" + outputFile.getPath());
                return 0;
            } catch (Exception e) {
                e.printStackTrace();
                return 1;
            }
        }
    }

     

     

    此处需要aspose的license.xml文件与aspose.words的jar包,这两个文件以下载的形式提供。

    下载链接地址:https://download.csdn.net/download/yh4623/11128319

    警告:请勿用于商业用途,仅供学习研究,如有任何版权纠纷,本人概不负责!

    展开全文
  • FreeMarker是一款用java语言编写的模版引擎,它是基于模板文件生成其他文本的通用工具。它虽然不是web应用框架,但它很合适作为web应用框架的一个组件。 2.它的特点? ① 一轻量级模版引擎,不需要Servlet环境就...

    1.什么是freeMarker?
    FreeMarker是一款用java语言编写的模版引擎,它是基于模板文件生成其他文本的通用工具。它虽然不是web应用框架,但它很合适作为web应用框架的一个组件。
    2.它的特点?
    ① 一轻量级模版引擎,不需要Servlet环境就可以很轻松的嵌入到应用程序中
    ② 能生成各种文本,如html,xml,java,等
    ③ 入门简单,它是用java编写的,很多语法和java相似
    3.使用步骤:
    ① 创建一个spring boot项目引入maven依赖导入FreeMarker jar 包
    导入依赖如下:


    org.freemarker
    freemarker

    ② 创建一个模板目录在项目底下比如 file目录,创建一个模板文件test.ftl文件

    参考博客: https://www.jianshu.com/p/e7b3146cc7e8
    在test.ftl文件中相应位置追加<#list thingList as thing> </#list> 标签
    ③ 创建一个运行FreeMarker模板引擎的Java文件
    package com.bh.service;

    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.OutputStreamWriter;
    import java.io.Writer;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;

    import freemarker.template.Configuration;
    import freemarker.template.Template;
    import freemarker.template.Version;

    //参考博客:
    //https://www.bootwiki.com/note/freemarker-quick-start.html
    //https://blog.csdn.net/weixin_41926301/article/details/83787733
    //word模板转ftp文件参考 https://www.jianshu.com/p/e7b3146cc7e8

    public class WordUtil {
        public static void main(String[] args) {
    	    new WordUtil().test();
        }
    
        public void test(){
    	   try {
    		//step1 创建freeMarker配置示例
    		Configuration configuration = new Configuration(new Version("2.3.0"));
    		//设置编码格式为utf-8
    		configuration.setDefaultEncoding("UTF-8");
    		//批量引入file文件下的多个ftl模板文件
    		//第一种方式根据某个类的相对路径指定
    		//configuration.setClassForTemplateLoading(WordUtil.class,"file/");
    		//获取file/文件下的某个模板文件
    		//Template template = configuration.getTemplate("file/test.ftl");
    		//第二种方式指定路径
    		//step2 获取模板路径
    		configuration.setDirectoryForTemplateLoading(new File("file/"));
    		//step3 创建数据模型
    		Map<String,Object> dataMap = new HashMap<>();
    		dataMap.put("name","测试哈哈哈哈");
    		dataMap.put("num","11111111111");
    		List<Map<String,Object>> thingList = new ArrayList<>();
    		for(int i=0;i<20;i++){
    			Map<String,Object> thingMap = new HashMap<>();
    			thingMap.put("num","1232323232");
    			thingMap.put("name","事情是的发送到发");
    			thingMap.put("writepernum","132232323");
    			thingList.add(thingMap);
    		}
    		dataMap.put("thingList",thingList);
    		//step4  加载模板文件
    		Template template = configuration.getTemplate("test.ftl","UTF-8");
    		//step5  定义输出文件流
    		File outFile = new File("temp"+File.separator+"test.doc");
    		//如果输出目标文件夹不存在,则创建
            if (!outFile.getParentFile().exists()){
                outFile.getParentFile().mkdirs();
            }
            //
            Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile),"UTF-8"));
            //step6 输出文件 模板文件参考数据模型值 输出到输出文件中 
            template.process(dataMap,out);
            //关闭流
            out.flush();
            out.close();
    	} catch (Exception e) {
    		// TODO Auto-generated catch block
    		e.printStackTrace();
    	}
    }
    }
    

    ④ 执行main方法,刷新项目,找到生成的word文件

    展开全文
  • world模板生成ftl文件

    2021-04-11 15:59:08
    需要将world模板生成ftl文件然后进行操作ftl文件,再生成word文件。 问题: 使用freemarker会以 .ftl文件为模板,刚开始接触还不知道怎么生成ftl文件,百度之后才发现可以进行如下操作: 解决方法: 首先创建...

    需求:

    需要将world模板生成ftl文件然后进行操作ftl文件,再生成word文件。

    问题:

    使用freemarker会以   .ftl   文件为模板,刚开始接触还不知道怎么生成ftl文件,百度之后才发现可以进行如下操作:

     

    解决方法:

    首先创建一个world文档并编辑成自己需要的模板,然后点击保存成 world xml格式,然后修改后缀名为.ftl即可,

    就这样一个.ftl 文件就生成了。

    使用技巧:

    增加换行:后台可以在换行出添加<w:br/>

    添加空格:&#160;

    显示特殊字符:${xxx?html!}       ?html显示特殊字符   !非空验证

    日期转换:${xxx!?string("EEEE")} 日期转换成星期几(这个转换形式与jstl标签中的fmt标签很相似,以后数据转换可以参考fmt标签来进行转换)

     

    下面是我是我--创建word模板--->>生成ftl文件-->>Java代码编辑ftl文件--->>生成编辑后的word文件

    url:

     

     

     

     

     

     

     

     

    参考:https://blog.csdn.net/u012129030/article/details/90489296

     

     

     

    展开全文
  • ftl生成word输出

    2021-07-06 11:20:34
    ftl生成word输出 百度方式: 1.导包,用ftl生成word,常见问题可百度。 2.关于表格 1 2 3 4 a b c d 表格纵列和横列,abcd就是数据,用循环可导 常见百度即可。 关于1234,如果列需要查询数据库才能得出结论,...

    ftl生成word输出


    百度方式:
    1.导包,用ftl生成word,常见问题可百度。
    2.关于表格

                  1    2    3   4
             a
             b
             c
             d
    

    表格纵列和横列,abcd就是数据,用循环可导 常见百度即可。

    关于1234,如果列需要查询数据库才能得出结论,要采用“合并单元格”的解决办法。

    如果,列可以确定大致位置,多做几个模板,按照传参数量决定用哪个文件生成word,多写几个模板

    或者多占位。

    展开全文
  • 使用freemarker生成word相对来说是一种比较简单的方式,下面来说说使用ftl生成word的方法。 1、编写需要生成word模板,如下图 2、将需要替换的内容修改为参数形式,如下图 3、将word另存为xml,格式化,并...
  • 使用ftl生成word

    2020-12-14 16:54:38
    背景:根据word模板下载wordword里面需要填充数据,格式是固定的。首先在word中给数据起个变量名称 需要更换的数据改成${变量名!},必须是英文的,加感叹号是为了防止null,如果数据是null,文档下载下来后会直接...
  • java根据ftl模板生成word文档

    千次阅读 2016-06-17 10:17:56
    java根据ftl模板生成word文档
  • 使用ftlftl模板生成word文档打不开,一直未响应的可能问题如下: 1.word模板另存为xml格式文件的时候,选择Word 2003 XML格式(兼容问题) 2.模板中有图片的时候,将ftl文件中图片的base64编码改成变量${xxx} ...
  • SpringCloud之利用FTL生成Word报表并下载

    千次阅读 热门讨论 2018-10-12 10:04:47
    1、首先,新建一个word文档:里面写需要下载...3、这个ftl就是在Java代码中可生成word的模板文件了 进入前端代码模块: <input type="button" class="btn_default" onclick="createSchoolWord();" value="导出...
  • 一、 制作模板 ...--生成PDF的类库--> <dependency> <groupId>com.aspose.words</groupId> <artifactId>aspose-words</artifactId> <version>15.8.0</version&
  •  * 根据ftl生成word方法  * @param dataMap -- 数据集  * @param fileSrc -- 生成后的文件地址  * @param ftlName -- ftl模版名称  */  public void createOrderAndDown(Map,Object> dataMap,...
  • 一、编辑好word模板 二、将word模板另存为xml格式 使用wps或者word都可以,我这里用的wps,将word另存为XML格式文件 三、将xml模板文件后缀名改为.ftl 四、ftl文件格式化 通过myeclipse设置ftl的编辑器为jsp的编辑...
  • 近日项目涉及到Word的导出,四处需找资料。可惜网上实例太少,只好根据别人的思路写一下这个简单的实例。以后也许会补充图片导出Word模块,敬请其代表吧!还有,本实例只适合初学者。大牛绕路。当然本实例也存在不足...
  • Java根据ftl模板生成多表格复杂性word文档,工程可直接导入eclipse中执行的。
  • word生成.zip

    2020-06-11 11:00:18
    包里面含有生成代码,ftl模板和word模板包里面含有生成代码
  • 生成ftl文件有2种。有循环数据或者无循环数据 没有循环数据的比较简单,在woed模板里,将需要数据库填充的数据写入每个表格,生成xml文件,然后将之前写入的字段全部依次改成${username}的形式即可。   ...
  • JAVA根据ftl模板生成需要的多表格word文档
  • 前有java-poi替换模板文件word文档中的变量,生成Word文档,后有Java-Freemarker替换模板文件.ftl中的变量,生成Word文档。 Freemarker是如今最流行的文档处理组件,poi已经相对过时了。 FreeMarker 是一款模板...
  • java根据ftl模板生成word文档(列表)

    千次阅读 2016-06-21 14:32:24
    freemarker生成列表
  • <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId> <exclusions> <exclusion>...
  • 根据模板生成word文档下载

    千次阅读 2017-07-04 10:36:38
    需求:根据数据库已有字段,填入写好的word并下载 工具 :freemark 一种方便生成word的引擎,...将模板word生成ftl文件,以便freemark来改造 三.将存有数据的map依靠wordutlis工具类传递数据给ftl 四.前台连接,生成word 详
  • 求大佬有什么什么解决办法 ,服务器下载word文件后使用poi对文件无法读取,必须把word文件另存为以后才能操作,但是java无法对word文件进行这种操作把
  • 1 将模板需要替换的地方换成${nian} ${yue} ${ri} 第一个坑:写了${...}的地方java中...2 将word存成xml,再改扩展名为.ftl 3 将图片的base64字符串改成${im} 4 多张的时候需要循环 第二坑:</#list> lis...

空空如也

空空如也

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

word生成ftl