精华内容
下载资源
问答
  • Java 使用pdf 模板生成pdf文件——制作流程1.使用工具adobe acrobat dc、word 20152.使用 word 繪制一個 3*5 的表格並保存,如下: 3.將文檔另存為pdf格式注:不要使用“另存為adobe pdf ”選項,這樣保存出來的文檔...

    Java 使用pdf 模板生成pdf文件

    ——制作流程

    1.      使用工具

    adobe acrobat dc、word 2015

    2.      使用 word 繪制一個 3*5 的表格並保存,如下:

    go

    go

    3.      將文檔另存為pdf格式

    注:不要使用“另存為adobe pdf ”選項,這樣保存出來的文檔比較大(安裝 adobe acrobat dc 工具后,word中會有該選項)

    go

    4.      打開已安裝的adobe acrobat DC 工具

    go

    5.      文件->創建->創建表單,制作 pdf 模板

    go

    6.      選擇要剛剛保存的pdf文件

    go

    7.      打開后,工具自動生成“文本域”

    go

    8.      修改文本域屬性名

    go

    9.      修改文本域默認字體(選個 adobe 開頭的字體,有助於程序生成)

    go

    10.  保存pdf模板

    go

    11.  多行文本域,可以設置自動換行

    go

    12.  以下為使用IText7通過 pdf 模板生成pdf 的效果

    go

    13.  文本域默認字體對文件大小有影響

    go

    改變前

    go

    改變后

    go

    14.  使用itext7 ,通過pdf模板生成pdf的主要代碼

    /**

    * 使用pdf 模板生成 pdf 文件

    *

    * @author xxj 2017年5月24日

    */

    @Test

    public void fillTemplate() {// 利用模板生成pdf

    // 模板路徑

    String templatePath = "D:/Temp/pdf/pdf-template-form.pdf";

    // 生成的新文件路徑

    String fileName = StringExtend.format("itext-template-{0}.pdf", DateExtend.getDate("yyyyMMddHHmmss"));

    String newPDFPath = PathExtend.Combine("D:/Temp/pdf/", fileName);

    try {

    // com.lowagie.text.pdf.PdfStamper.PdfStamper

    // Initialize PDF document

    PdfDocument pdf = new PdfDocument(new PdfReader(templatePath), new PdfWriter(newPDFPath));

    PdfAcroForm form = PdfAcroForm.getAcroForm(pdf, true);

    Map fields = form.getFormFields();

    String maxTxt = "你好,世界!hello word!你好,世界!hello word!你好,世界!hello word!"

    + "你好,世界!hello word!你好,世界!hello word!你好,世界!hello word!"

    + "你好,世界!hello word!你好,世界!hello word!你好,世界!hello word!"

    + "你好,世界!hello word!你好,世界!hello word!你好,世界!hello word!"

    + "你好,世界!hello word!你好,世界!hello word!你好,世界!hello word!"

    + "你好,世界!hello word!你好,世界!hello word!你好,世界!hello word!";

    // 處理中文問題

    PdfFont font = PdfFontFactory.createFont("STSongStd-Light", "UniGB-UCS2-H", false);

    String[] str = { "01.hello word!", "02.你好,世界!", "03.hello word!", "04.你好,世界!", "05.hello word!",

    "06.你好,世界!", "07.hello word!", "08.你好,世界!", "09.hello word!", "10.你好,世界!", "11.hello word!",

    "12.你好,世界!", "13." + maxTxt, "14." + maxTxt, };

    int i = 0;

    java.util.Iterator it = fields.keySet().iterator();

    while (it.hasNext()) {

    // 獲取文本域名稱

    String name = it.next().toString();

    // 填充文本域

    fields.get(name).setValue(str[i++]).setFont(font).setFontSize(12);

    System.out.println(name);

    }

    form.flattenFields();// 設置表單域不可編輯

    pdf.close();

    System.out.println("模板:" + templatePath);

    System.out.println("pdf:" + newPDFPath);

    } catch (IOException e) {

    e.printStackTrace();

    } catch (Exception e) {

    e.printStackTrace();

    }

    }

    15.  常見問題

    go

    異常描述

    java.lang.NullPointerException

    atcom.itextpdf.kernel.pdf.PdfDocument.getFont(PdfDocument.java:1479)

    atcom.itextpdf.forms.fields.PdfFormField.getFontAndSize(PdfFormField.java:2442)

    atcom.itextpdf.forms.fields.PdfFormField.regenerateField(PdfFormField.java:1780)

    atcom.itextpdf.forms.fields.PdfFormField.setValue(PdfFormField.java:1038)

    atcom.itextpdf.forms.fields.PdfFormField.setValue(PdfFormField.java:999)

    解決方案:

    打開pdf模板,將字體修改為 adobe 開頭的字體,如 adobe pi

    展开全文
  • import java.io.File; import java.io.FileOutputStream; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class excel { @Test public void fe_map...

    在这里插入图片描述

    package org.jeecg.modules.caiwu.util.excel;
    
    import org.apache.poi.ss.usermodel.Workbook;
    import org.jeecgframework.poi.excel.ExcelExportUtil;
    import org.jeecgframework.poi.excel.entity.TemplateExportParams;
    import org.testng.annotations.Test;
    
    import java.io.File;
    import java.io.FileOutputStream;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    public class excel {
        @Test
        public void fe_map() throws Exception {
            TemplateExportParams params = new TemplateExportParams(
                    "C:\\Users\\oshait24\\Desktop\\专项支出用款申请书_map.xls");
            Map<String, Object> map = new HashMap<String, Object>();
            map.put("date", "2014-12-25");
            map.put("money", 2000000.00);
            map.put("upperMoney", "贰佰万");
            map.put("company", "执笔潜行科技有限公司");
            map.put("bureau", "财政局");
            map.put("person", "JueYue");
            map.put("phone", "1879740****");
            List<Map<String, String>> listMap = new ArrayList<Map<String, String>>();
            for (int i = 0; i < 4; i++) {
                Map<String, String> lm = new HashMap<String, String>();
                lm.put("id", i + 1 + "");
                lm.put("zijin", i * 10000 + "");
                lm.put("bianma", "A001");
                lm.put("mingcheng", "设计");
                lm.put("xiangmumingcheng", "EasyPoi " + i + "期");
                lm.put("quancheng", "开源项目");
                lm.put("sqje", i * 10000 + "");
                lm.put("hdje", i * 10000 + "");
    
                listMap.add(lm);
            }
            map.put("maplist", listMap);
    
            Workbook workbook = ExcelExportUtil.exportExcel(params, map);
            File savefile = new File("C:Desktop\\");
            if (!savefile.exists()) {
                savefile.mkdirs();
            }
            FileOutputStream fos = new FileOutputStream("C:\\Desktop\\专项支出用款申请书.xls");
            workbook.write(fos);
            fos.close();
        }
    }
    
    
    展开全文
  • java使用模板生成PDF

    2021-02-25 19:19:46
    (1)先用word做出模板界面(2)文件另存为pdf格式文件(3)通过Adobe Acrobat pro软件打开刚刚用word转换成的pdf文件(4)点击右边的"准备表单"按钮,没有请在更多里面找选择"xxx.pdf"选择开始(选择工具栏里面添加文本域,...

    (1)先用word做出模板界面

    ad8fd670fe5c068f30e6efae2c687989.png

    (2)文件另存为pdf格式文件

    f3d22c17959b355b170c8ea25accfdec.png

    (3)通过Adobe Acrobat pro软件打开刚刚用word转换成的pdf文件

    dc5770ad15cc266c2acd26a1d60f9c35.png

    (4)点击右边的"准备表单"按钮,没有请在更多里面找

    选择"xxx.pdf"选择开始(选择工具栏里面添加文本域,可以选择在任意位置添加你想要的文本域。在文本域属性框可以设置文本的属性,例如文本的名称、字体大小、位置等)

    7dd9590cc38e7a0f1571b716d964b3ea.png

    601ea5065de6609f3fb19e9a19e1c671.png

    f16a16961210b67796ccd22c1624d7de.png

    (5)做完上面的工作后,直接"另存为"将pdf存储就可以

    351b00f09743e94f1822f5fbe0c2fe1a.png

    到此模板就制作完成啦!接下来就开始写代码啦

    ————————————————

    public static void exportPdf(String templatePath, Map data) {

    PdfReader reader = null;

    AcroFields s = null;

    PdfStamper ps = null;

    ByteArrayOutputStream bos = null;

    try {

    //设置字体

    String font = "src\\main\\resources\\pdf\\Microsoft-YaHei.ttf";

    reader = new PdfReader(templatePath);

    bos = new ByteArrayOutputStream();

    ps = new PdfStamper(reader, bos);

    s = ps.getAcroFields();

    //使用中文字体 使用 AcroFields填充值的不需要在程序中设置字体,在模板文件中设置字体为中文字体 Adobe 宋体 std L

    BaseFont bfChinese = BaseFont.createFont(font, BaseFont.IDENTITY_H, BaseFont.EMBEDDED);

    //设置编码格式

    s.addSubstitutionFont(bfChinese);

    // 遍历data 给pdf表单表格赋值

    for (String key : data.keySet()) {

    if (data.get(key) != null) {

    String s1 = data.get(key).toString();

    s.setField(key, s1);

    }

    }

    // 如果为false那么生成的PDF文件还能编辑,一定要设为true

    ps.setFormFlattening(true);

    ps.close();

    HttpServletResponse response = ServletUtil.getResponse();

    response.setCharacterEncoding("UTF-8");

    response.setHeader("content-Type", "application/vnd.ms-excel");

    response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("car_bill.pdf", "UTF-8"));

    //用流写出

    try{

    /* 用流将数据写给前端 */

    OutputStream os = response.getOutputStream();

    os.write(bos.toByteArray());

    os.flush();

    os.close();

    }catch (IOException ioe){

    ioe.printStackTrace();

    }

    // 用文件流写出

    // String savePath = "文件保存路径";

    // FileOutputStream fos = new FileOutputStream(savePath);

    //

    // fos.write(bos.toByteArray());

    // fos.flush();

    // fos.close();

    } catch (IOException | DocumentException e) {

    log.error("读取文件异常");

    throw new HwBusinessException(BasicCode.ERROR, "生成PDF失败!");

    } finally {

    try {

    bos.close();

    reader.close();

    } catch (IOException e) {

    log.error("关闭流异常");

    e.printStackTrace();

    }

    }

    }

    参考链接:https://blog.csdn.net/qq_33624558/java/article/details/82891411

    展开全文
  • java根据模板生成pdf

    2021-04-12 14:57:10
    一、创建word模板。 word模板如图:二、将word模板转pdf模板。三、用Adobe Acrobat Pro打开pdf模板。四、编辑模板域,即要填写的内容。点击表单选择添加或编辑域选项:双击可以 修改域的变量名及样式字体的设置。...

    一、创建word模板。 word模板如图:

    8bc81e6730b183cfac86be6cd10ea246.png

    二、将word模板转pdf模板。

    三、用Adobe Acrobat Pro打开pdf模板。

    四、编辑模板域,即要填写的内容。

    28805e808a31fc72db082ec844aea262.png

    点击表单选择添加或编辑域选项:

    2aeaf2dd2663d1b9ca018a75b1e4f582.png

    双击可以 修改域的变量名及样式字体的设置。

    然后保存这样pdf的模板就生成了。

    六、添加mawen引用:

    com.itextpdf

    itextpdf

    5.4.3

    七、生成代码:

    public static void pdfout(Mapo) {//模板路径

    String templatePath = "D:/模板1.pdf";//生成的新文件路径

    String newPDFPath = "D:/test.pdf";

    PdfReader reader;

    FileOutputStream out;

    ByteArrayOutputStream bos;

    PdfStamper stamper;try{

    BaseFont bf= BaseFont.createFont("c://windows//fonts//simsun.ttc,1", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);

    Font FontChinese= new Font(bf, 5, Font.NORMAL);

    out= new FileOutputStream(newPDFPath);//输出流

    reader = new PdfReader(templatePath);//读取pdf模板

    bos = newByteArrayOutputStream();

    stamper= newPdfStamper(reader, bos);

    AcroFields form=stamper.getAcroFields();//文字类的内容处理

    Map datemap = (Map)o.get("datemap");

    form.addSubstitutionFont(bf);for(String key : datemap.keySet()){

    String value=datemap.get(key);

    form.setField(key,value);

    }//图片类的内容处理

    Map imgmap = (Map)o.get("imgmap");for(String key : imgmap.keySet()) {

    String value=imgmap.get(key);

    String imgpath=value;int pageNo = form.getFieldPositions(key).get(0).page;

    Rectangle signRect= form.getFieldPositions(key).get(0).position;float x =signRect.getLeft();float y =signRect.getBottom();//根据路径读取图片

    Image image =Image.getInstance(imgpath);//获取图片页面

    PdfContentByte under =stamper.getOverContent(pageNo);//图片大小自适应

    image.scaleToFit(signRect.getWidth(), signRect.getHeight());//添加图片

    image.setAbsolutePosition(x, y);

    under.addImage(image);

    }

    stamper.setFormFlattening(true);//如果为false,生成的PDF文件可以编辑,如果为true,生成的PDF文件不可以编辑

    stamper.close();

    Document doc= newDocument();

    Font font= new Font(bf, 32);

    PdfCopy copy= newPdfCopy(doc, out);

    doc.open();

    PdfImportedPage importPage= copy.getImportedPage(new PdfReader(bos.toByteArray()), 1);

    copy.addPage(importPage);

    doc.close();

    }catch(IOException e) {

    System.out.println(e);

    }catch(DocumentException e) {

    System.out.println(e);

    }

    }

    代码测试:

    public static voidmain(String[] args) {

    Map map = newHashMap();

    map.put("Name","张三");

    map.put("Code","2565");

    map.put("Number","123456789");

    Map map2 = newHashMap();

    map2.put("img","d:/Spring.jpg");

    Map o=newHashMap();

    o.put("datemap",map);

    o.put("imgmap",map2);

    pdfout(o);

    }

    原文:https://www.cnblogs.com/Revival-of-everything/p/12082814.html

    展开全文
  • 写一个java生成模板

    2021-03-13 01:31:07
    model生成是基于lombok插件的,不明白的可以看看这个:https://blog.csdn.net/u014803081/article/details/84574016 模型位置 src/main/java/model 这个包下就是模型 模型中需要替换的内容 #0 包路径:mybatis....
  • Java制作刷题软件

    2021-11-17 23:27:43
    功能涵盖:刷题、错题记录、导入题库,重置题库 源码:百度网盘: 链接:https://pan.baidu.com/s/1owVrXAzYJwRlixav6eqXWA 提取码:bpjf
  • JAVA根据模板导出PPTX

    2021-09-18 13:51:16
    1、使用PowerPoint新建一个PPTX模板,每个${}占一块,模板图片添加的是jpeg,图片从上到下1,2,3…,keyValueMap.put(“image1.jpeg”, imageEntity);(模板路径:...
  • JAVA生成word模板程序步骤1、 将freemarker-2.3.13.jar复制到项目\WEB-INF\lib目录下2、 编辑模板文件(1) 将DOC文件另存为xml文件,将xml文件在eclipse环境下打开,右键选“源”→“格式”。此处注意xml文件属性是...
  • 以下内容为制作证书图片的第一步,制作证书word模板。首先有一张无内容的证书图片,新建一个docx文件,打开wps,并将模板图片粘贴到docx中接下来修改样式,使证书图片位于word页中央点击图片外的区域,使光标在图片...
  • Java通过word模板导出word1.创建word模板文件,注意调整好格式,后期修改较为麻烦2.打开创建好的word模板,点击文件另存为,选择xml格式3.将生成的模板xml文件后缀改成ftl,例如:模板.xml-->模板.ftl4.在项目中...
  • Java 模板模式

    2021-02-27 14:42:56
    定义:定义了一个算法的骨架,并允许子类为一个或多个步骤提供实现模板方法使得子类可以在不改变算法的结构的情况下,重新定义算法的某些步骤类型:行为型一次性实现一个算法的不变的部分,并将可变的行为留给子类...
  • 天梯(tianti)1、天梯是一款使用Java编写的免费的轻量级CMS系统,目前提供了从后台管理到前端展现的整体解决方案。2、用户可以不编写一句代码,就制作出一个默认风格的CMS站点。3、前端页面自适应,支持PC和H5端,...
  • Java模版引擎Freemarker

    2021-03-22 11:12:29
    Java模版引擎FreemarkerFreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写FreeMarker被设计用来生成HTML Web页面,特别是基于MVC模式的应用程序虽然FreeMarker具有一些编程的能力,但...
  • Java 填充模板

    2021-09-11 17:06:39
    最近接了个任务,需要对模板进行填充,使用word模板进行填充,尝试后,使用.docx的文档。 以下是dome: /** * 模板附件上传 */ @Override @Transactional(rollbackFor = Exception.class) public void ...
  • 模板模式【java

    2021-03-06 06:26:49
    放到豆浆机打碎2) 通过添加不同的配料,可以制作出不同口味的豆浆3) 选材、浸泡和放到豆浆机打碎这几个步骤对于制作每种口味的豆浆都是一样的4) 请使用 模板方法模式完成 (说明:因为模板方法模式,比较简单,很容易...
  • java实现在pdf模板的指定位置插入图片发布于 2020-4-11|复制链接摘记: 本文实例为大家分享了java在pdf模板的指定位置插入图片的具体代码,供大家参考,具体内容如下java操作pdf有个非常好用的库itextpdf,maven:```...
  • 简述 synchronized 和 java.util.concurrent.locks.Lock 的异同? 什么是 ThreadLocal? run() 和 start() 区别。 请说出你所知道的线程同步的方法。 线程调度和线程控制。 什么是线程饿死,什么是活锁? 多线程中的...
  • 只不过访问路径必须是在/api/下,这个目径下不会被模板机制拦截,可以正常的由struts2响应。6-1、示例同样是要继承com.enation.framework.action.WWAction如:@Component@Scope("prototype")@ParentPackage("eop_...
  • 本文实例为大家分享了java实现简单的模板渲染,供大家参考,具体内容如下代码package com.hdwang;import java.util.hashmap;import java.util.map;/*** created by hdwang on 2017/12/19.*/public class mytemplate ...
  • java语言中万事万物皆为对象,例如我们写一个person类那么我们就可以通过这个类来创造一些实例,这里的“实例”就是我们平时使用的对象。publicclassPerson{privateStringname;privateintage;privateStringsex;...
  • Java使用EasyExcel实现模板导出

    千次阅读 2021-03-24 16:54:44
    Java使用EasyExcel实现模板导出一、引入Maven依赖二、模板数据实现2.1模板数据准备2.2实现效果展示2.3代码实现如下: 项目中需要使用到Java来处理Excel模板式导出的情况,记录一次Java使用阿里开源EasyExcel来处理...
  • 一、需求描述 实现合同模板自动生成合同,再添加电子签名。如图:使用html的合
  • 展开全部先下载jacob_1.10.1.zip。解压后将jacob.dll放到windows/system32下面或\j2.../** Java2word.java** Created on 2007年8月13日, 上午10:32** Tochange this template, choose Tools | Template Manager* and...
  • java模板导出PDF

    2021-02-27 13:33:47
    本次完善综合特点:一对一,点对点的给对应的地方写值,比如模板里面放了个name标识,在程序里把“张三”赋给name,那么输出的pdf里面name的地方就变成了张三,准确方便快捷支持中文,可以使用自己下载的字体。...
  • 如何制作动画(java实现动画的代码)内容如下回答一:AE用于制作mg动画,操作确实有些复杂,技术要求也高,但不得不承认它是个神器,可以创建各种吸引人的动态图形和视觉效果当然,现在网上也有一些比较简单的软件可以...
  • 资产端简称放款金额(元)账单月份UZY服务费(元)账单状态${(data.assetName)!""}${(data.loanAmount?string('0.00'))!""}${(data.billMonth)!""}${(data.uzyServiceFee?string('0.00'))!""}${(data.statusName)!...
  • Java操作Word模板插入列表通过poi...1.制作模板,插入列表使用语法*,模板内容为{{*number123}} 2.使用Poi-tl,添加依赖com.deepoovepoi-tl1.0.0poi-tl是一个java的模板引擎。3.Java代码示例package com.deepoove.poi...
  • java实现根据pdf文件模板生成pdf文件

    千次阅读 2021-02-23 09:44:08
    一、如何制作pdf模板 1.首先创建template.doc 2.根据doc文件制作pdf模板 3.将doc文件输出为pdf  文件->输出为pdf 4.输出的pdf文件 5.使用Adobe Acrobat DC打开template.pdf 6.填充文字及创作...
  • java通过freemarker导出word循环合并表格单元格本文主要讲解通过freemarker模板引擎来导出word,并且在word中包含表格的合并部分需要循环生成。一、Java需要通过模板导出的word如上图所示。物品的信息是循环部分。...
  • 展开全部用jxl吧··lib包留个邮箱发给你,或者去搜索一下·很多下载32313133353236313431303231363533e4b893e5b19e31333262363635随便从个...import java.io.*;import java.util.List;import jxl.*;import jxl.wri...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 36,828
精华内容 14,731
关键字:

java制作模板

java 订阅