精华内容
下载资源
问答
  • 1.根据word模板添加书签,例如在标题后需要输入内容的部分定义标签名title,然后保存模板到指定文件目录下。 2.java代码 此处用到Spire.Doc.jar,这个在官网Spire.Doc.jar进行下载支持maven和jar包两种格式 public ...

    1.根据word模板添加书签,例如在标题后需要输入内容的部分定义标签名title,然后保存模板到指定文件目录下。
    在这里插入图片描述
    2.java代码 此处用到Spire.Doc.jar,这个在官网Spire.Doc.jar进行下载支持maven和jar包两种格式
    public static void main(String[]args) throws IOException {
    //加载包含书签的Word文档
    Document doc = new Document();
    doc.loadFromFile(“E:\file\notice.docx”);
    //获取书签
    BookmarksNavigator bookmarksNavigator = new BookmarksNavigator(doc);
    bookmarksNavigator.moveToBookmark(“title”);
    //用新的内容替换原书签内容
    bookmarksNavigator.replaceBookmarkContent(“这是标题”,true);
    bookmarksNavigator.moveToBookmark(“content”);
    String text=“这是内容这是内容这是内容这是内容这是内容这是内容这是内容这是内容这是内容这是内容这是内容这是内容这是内容这是内容这是”;
    //用新的内容替换原书签内容
    bookmarksNavigator.replaceBookmarkContent(text,true);
    bookmarksNavigator.moveToBookmark(“date”);
    //用新的内容替换原书签内容
    bookmarksNavigator.replaceBookmarkContent(“这是日期”,true);
    bookmarksNavigator.moveToBookmark(“issuer”);
    //用新的内容替换原书签内容
    bookmarksNavigator.replaceBookmarkContent(“这是发布者”,true);
    doc.saveToFile(“E:\file\outputword.docx”, FileFormat.Docx);//输出word
    doc.saveToFile(“E:\file\output2pdf.pdf”, FileFormat.PDF);//输出pdf格式有页数限制,仅支持3页
    doc.dispose();
    }

    在这里插入图片描述

    展开全文
  • Java填充PDF模板数据

    2020-12-10 14:17:41
    根据业务需求,获取实际业务数据,借助itext库功能,业务数据填充入提前制作好的PDF模板中 二.操作步骤 制作PDF模板:提前下载好Adobe Acrobat Pro DC 效果展示 1.准备PDF,如下图 2.编辑PDF 3.准备表单 4....

    PDF模板数据填充

    一.思路

    根据业务需求,获取实际业务数据,借助itext库功能,将业务数据填充入提前制作好的PDF模板中

    二.操作步骤
    • 制作PDF模板:提前下载好Adobe Acrobat Pro DC
    • 效果展示

    1.准备PDF,如下图

    在这里插入图片描述

    2.编辑PDF

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    3.准备表单

    在这里插入图片描述
    在这里插入图片描述

    4.设置字体

    在这里插入图片描述

    5.设置多行

    在这里插入图片描述

    6.模板表单标签

    在这里插入图片描述

    7.标签绑定具体业务数据

    • pom依赖
    <dependency>
                <groupId>com.itextpdf</groupId>
                <artifactId>itextpdf</artifactId>
                <version>5.5.10</version>
            </dependency>
            <dependency>
                <groupId>com.itextpdf</groupId>
                <artifactId>itext-asian</artifactId>
                <version>5.2.0</version>
            </dependency>
    
            <dependency>
                <groupId>cn.hutool</groupId>
                <artifactId>hutool-all</artifactId>
            </dependency>
    
    • 具体实现
    private ByteArrayOutputStream getYearData() {
            ClassPathResource classPathResource = new ClassPathResource("template/pdf-template.pdf");
            PdfReader reader;
            ByteArrayOutputStream bos = new ByteArrayOutputStream();
            try {
                reader = new PdfReader(classPathResource.getStream());
                bos = new ByteArrayOutputStream();
                PdfStamper stamper = new PdfStamper(reader, bos);
                AcroFields form = stamper.getAcroFields();
                Map<String, String> map = new HashMap<>();
                map.put("changeTag1", ReportConstant.CHOOSE_FLAG);
                map.put("changeTag2", ReportConstant.CHOOSE_FLAG);
                map.put("passport0", "88484695274732");
                map.put("passport1", "88484695274733");
                map.put("signDate0", DateUtil.format(new Date(), ReportConstant.DATE_FORMAT_YMS));
                map.put("signDate1", DateUtil.format(new Date(), ReportConstant.DATE_FORMAT_YMS));
                map.put("validDate0", DateUtil.format(new Date(), ReportConstant.DATE_FORMAT_YM));
                map.put("validDate1", DateUtil.format(new Date(), ReportConstant.DATE_FORMAT_YM));
                map.put("orgName0", "贤一坊科技有限公司");
                map.put("orgName1", "贤一坊科技有限公司");
                map.put("remark0", "这是一个备注,里面的内容并不是无限长");
                map.put("remark1", "这是一个备注,里面的内容并不是无限长");
    
                this.fillPdfCellForm(map, form);
    
                // true代表生成的PDF文件不可编辑
                stamper.setFormFlattening(true);
                stamper.close();
            } catch (IOException e) {
                e.printStackTrace();
            } catch (DocumentException e) {
                e.printStackTrace();
            }
    
            return bos;
        }
    
        private void fillPdfCellForm(Map<String, String> map, AcroFields form) throws IOException, DocumentException {
            for (Map.Entry entry : map.entrySet()) {
                String key = (String) entry.getKey();
                String value = (String) entry.getValue();
                form.setField(key, value);
            }
        }
    

    8.效果展示

    在这里插入图片描述

    9.源码

    Java填充PDF模板数据

    参考文档

    展开全文
  • JAVA根据PDF模板生成PDF文件(支持文本内容,图片,条形码,二维码), 用于JAVA Web 动态根据模板生成PDF并打印
  • itext+velocity 填充字段 html转pdf,可用于开发过程中,合同的数据填充,提供合同模板,根据所需,填充相应的数据,生成pdf
  • 本篇文章主要介绍了java根据模板动态生成PDF实例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 封装好的工具类,静态方法直接调用,支持pdf转图片,可设置清晰度。支持模板pdf域的填充。传入pdf文件路径和map,调用方法即可map内容填充pdf,并重新生成新的pdf文件
  • Java xml模板动态填充数据转换为word文档

    万次阅读 多人点赞 2018-05-30 19:56:00
     2、通过Java程序,使用freemarker.jar包转换为xml格式的word文档文件 3、使用jacob包,xml格式的word文档文件,转换为docx格式的文档文件具体实现步骤:一、模板编辑 1、word文档另存为xml模板: 2、模板中...

    需要用到的jar包:

    commons-codec-1.10.jar

    freemarker-2.3.21.jar

    jacob-1.6.jar

    实现思路:



        1、先将word文档另存为 : Word 2003 XML文档(*.xml) 格式的模板文件;


        2、通过Java程序,使用 freemarker.jar包转换为xml格式的word文档文件


        3、使用jacob包,将xml格式的word文档文件,转换为docx格式的文档文件


    具体实现步骤:

    一、模板编辑

           1、将word文档另存为xml模板:

        2、模板中需要动态改变的内容,通过freemarker标签:${variableName}

        说明:variableName是需要动态添加内容的一个标志符号,可自由命名

        注意:freemarker标签:${variableName},不能再word文档中直接输入,需要通过记事本,或者其他notePad++ 文本编辑工具先写好,然后再复制到文档中,否则在转换为xml模板时会出问题。具体问题可百度查找

        模板样式(参考):


        3、处理将要替换的图片,通过xml编辑工具打开xml模板文件:(可使用notePad++打开)

            两种替换图片方式,一种是直接动态插入一张图片,另一种是从数据库中读取,并循环插入图片

            (1)直接动态插入单张图片:(编辑xml模板文件)

                    每个位置在保存模板前,放置一张图片,通过notePad++ 打开xml模板文件,找到对应的图片,在xml模板中,图片会发生转换,以base64的编码形式存在,只要找到一长串的字符就能确定这是一张图片;


            把红框中的内容(后面还有很长),删除掉,直接替换freemarker标签,另外一张图片同样操作,如图所示:


        (2)需要循环插入图片:(编辑xml模板文件)

                    循环插图,需要加入freemarker循环标签,xml模板中:一对 <tr></tr>,为一行;我的模板设置了表格,需要循环插入表格,那么需要将循环标签包围到图片所在的 tr 标签:


    图片中横线说明:

            (1)图片中因为有两个地方插入图片,所以需要将一个list对象中,要存两张图片的数据,

           (2)<#list loopImageList as imgList> :loopImageList 可自由命名,但是在Java代码中动态填充的数据对象名要一致,imageList 作为一个遍历的对象名,等于将loopImageList的内容赋值给imageList ,获取对象中的属性值,通过imageList.attr 获取

            (3)上面的 w:name= 后面是图片的名称,不能一致,必须存不同的文件名,所以,这个需要改动,否则一旦所有文件名称一致,则会出现问题。

            (4)如果需要合并第一列的单元格,需要在tr加入标签:

                具体合并方法:<#if imageList_index == 0><w:vmerge w:val="restart"/><#else><w:vmerge/></#if>

                        a、开始合并的行:<w:vmerge w:val="restart"/>

                        b、需要合并的行:<w:vmerge/>

                上面的语句中,_index为imageList 的索引写法,因为需要合并,所以通过判断的方式,将第一个单元格作为合并起始行,其余需要合并的行需要添加结束标签。

            (5)如果不需要合并,则不用添加(4)中的语句



    二、Java后台代码实现

        (1)创建一个封装图片对象的ImageBean类:

    (由于list遍历中存了两张不同的图片,所以参数设计不太合理,可参考例子,自己进行优化)

    package testXML;
    /**
     * 图片bean
     */
    public class ImageBean {
    	// 图片1
    	private Integer img1Index;
    
    	private String imgName;
    
    	private String img1Width;
    
    	private String img1Height;
    
    	private String img1Base64;
    
    	// 图片2
    	private Integer img2Index;
    
    	private String img2Width;
    
    	private String img2Height;
    
    	private String img2Base64;
    
    
    
    	public ImageBean(Integer img1Index, String imgName, String img1Width,
    			String img1Height, String img1Base64, Integer img2Index,
    			String img2Width, String img2Height,
    			String img2Base64) {
    		this.img1Index = img1Index;
    		this.imgName = imgName;
    		this.img1Width = img1Width;
    		this.img1Height = img1Height;
    		this.img1Base64 = img1Base64;
    		this.img2Index = img2Index;
    		this.img2Width = img2Width;
    		this.img2Height = img2Height;
    		this.img2Base64 = img2Base64;
    	}
    
    	public Integer getImg1Index() {
    		return img1Index;
    	}
    
    	public void setImg1Index(Integer img1Index) {
    		this.img1Index = img1Index;
    	}
    
    	public String getImgName() {
    		return imgName;
    	}
    
    	public void setImgName(String imgName) {
    		this.imgName = imgName;
    	}
    
    	public String getImg1Width() {
    		return img1Width;
    	}
    
    	public void setImg1Width(String img1Width) {
    		this.img1Width = img1Width;
    	}
    
    	public String getImg1Height() {
    		return img1Height;
    	}
    
    	public void setImg1Height(String img1Height) {
    		this.img1Height = img1Height;
    	}
    
    	public String getImg1Base64() {
    		return img1Base64;
    	}
    
    	public void setImg1Base64(String img1Base64) {
    		this.img1Base64 = img1Base64;
    	}
    
    	public Integer getImg2Index() {
    		return img2Index;
    	}
    
    	public void setImg2Index(Integer img2Index) {
    		this.img2Index = img2Index;
    	}
    
    	public String getImg2Width() {
    		return img2Width;
    	}
    
    	public void setImg2Width(String img2Width) {
    		this.img2Width = img2Width;
    	}
    
    	public String getImg2Height() {
    		return img2Height;
    	}
    
    	public void setImg2Height(String img2Height) {
    		this.img2Height = img2Height;
    	}
    
    	public String getImg2Base64() {
    		return img2Base64;
    	}
    
    	public void setImg2Base64(String img2Base64) {
    		this.img2Base64 = img2Base64;
    	}
    
    
    }
    

        (2)将xml模板生成word文档(本质是xml):(代码中存在通用工具处理类)

    package testXML;
    
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    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 org.apache.commons.codec.binary.Base64;
    
    import freemarker.template.Configuration;
    import freemarker.template.Template;
    import freemarker.template.TemplateException;
    
    public class XmlTemplate2Word {
    	public static void main(String[] args) throws IOException, TemplateException{
    		Map<String, Object> dataMap = new HashMap<String, Object>();
    		dataMap.put("title", "测试转换word文档");
    		dataMap.put("head", "头部信息");
    		dataMap.put("content", "主要内容主要内容主要内容");
    		dataMap.put("tableDescription", "表格描述内容");
    		// 构造一个list,存放图片相关信息
    		List<Object> list = new ArrayList<Object>();
    		// 将图片转为base64编码格式 (实际运用中可通过循环处理)
    		String imgBase64Str1 = getImgStr("C:/Users/admin/Desktop/签名/李燕萍.png");
    		String imgBase64Str2 = getImgStr("C:/Users/admin/Desktop/签名/李燕萍2.png");
    		String imgBase64Str3 = getImgStr("C:/Users/admin/Desktop/签名/彭玉婷.png");
    		String imgBase64Str4 = getImgStr("C:/Users/admin/Desktop/签名/琪.png");
    		String imgBase64Str5 = getImgStr("C:/Users/admin/Desktop/签名/婿丹.png");
    		String imgBase64Str6 = getImgStr("C:/Users/admin/Desktop/签名/杨诗敏.png");
    		
    		list.add(new ImageBean(1,"图片1","101","35",imgBase64Str1,2,"101","35",imgBase64Str2));
    		list.add(new ImageBean(3,"图片2","101","35",imgBase64Str3,4,"101","35",imgBase64Str4));
    		list.add(new ImageBean(5,"图片3","101","35",imgBase64Str5,6,"101","35",imgBase64Str6));
    		
    		dataMap.put("loopImageList", list);
    		// 模板文件路径:
    		String templetFilePath = "C:/Users/admin/Desktop/测试模板.xml";
    		// 目标文件存放路径
    		String targetFilePath = "C:/Users/admin/Desktop/测试模板(xml格式).doc";
    		// 将xml模板转换为后缀为doc文件,本质仍是属于xml
    		xml2XmlDoc(dataMap,templetFilePath,targetFilePath);
    	}
    	/**
    	 * 将xml模板转换为后缀为doc文件,本质仍是属于xml
    	 * @param dataMap	需要填充到模板的数据
    	 * @param templetFilePath	模板文件路径
    	 * @param targetFilePath	目标文件保存路径
    	 * @throws IOException 
    	 * @throws TemplateException 
    	 */
    	public static void xml2XmlDoc(Map<String,Object> dataMap, String templetFilePath, String targetFilePath) throws IOException, TemplateException{
    		// 将模板文件路径拆分为文件夹路径和文件名称
    		String tempLetDir = templetFilePath.substring(0,templetFilePath.lastIndexOf("/"));
    		// 注意:templetFilePath.lastIndexOf("/")中,有的文件分隔符为:\ 要注意文件路径的分隔符
    		String templetName = templetFilePath.substring(templetFilePath.lastIndexOf("/")+1);
    		// 将目标文件保存路径拆分为文件夹路径和文件名称
    		String targetDir = targetFilePath.substring(0,targetFilePath.lastIndexOf("/"));
    		String targetName = targetFilePath.substring(targetFilePath.lastIndexOf("/")+1);
    		Configuration configuration = new Configuration();
    		configuration.setDefaultEncoding("UTF-8");
    		// 如果目标文件目录不存在,则需要创建
    		File file = new File(targetDir);
    		if(!file.exists()){
    			file.mkdirs();
    		}
    		// 加载模板数据(从文件路径中获取文件,其他方式,可百度查找)
    		configuration.setDirectoryForTemplateLoading(new File(tempLetDir));
    		// 获取模板实例
    		Template template = configuration.getTemplate(templetName);
    		File outFile = new File(targetDir + File.separator + targetName);
    		//将模板和数据模型合并生成文件
    		Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile),"UTF-8"));
    		//生成文件
    		template.process(dataMap, out);
    		out.flush();
    		out.close();
    	}
    	
    	/**
    	 * 将图片转换成Base64编码 (优化:在web工程下,可通过工程路径获取流的方式获取图片)
    	 * @param imgFile	图片路径
    	 * @return
    	 * @throws IOException 
    	 */ 
    	public static String getImgStr(String imgFilePath) throws IOException{
    		//将图片文件转化为字节数组字符串,并对其进行Base64编码处理
    		InputStream in = null;
    		byte[] data = null;
    		//读取图片字节数组
    			in = new FileInputStream(imgFilePath);        
    			data = new byte[in.available()];
    			in.read(data);
    			in.close();
    		return new String(Base64.encodeBase64(data));
    	}
    }
    

    (3)模板准备好,模板路径正确后,运行程序,得到输出文件:文件内容如下。表格内容进行了替换,图片也循环填充到文档中,但是,这个文档,本质仍然属于xml.格式文档,打开之后,点击另存为会发现是xml格式。

        (4)通过调用转换docx方法,将xml格式的doc转换为docx的word文档格式:

        注意:此步骤,需要用到jacob的jar包,在进行此操作之前,需要将对应jacob包的dll文件,拷贝到系统盘的目录和jdk目目录下的 jre\lib\ 下面

    目前我测试的版本有:jacob-1.6.jar、jacob-1.14.3.jar

    1.6版本对应的dll : jacob-1.17-M2-x64.dll

    1.14.3版本对应的dll : jacob-1.14.3-x64.dll

    我展示的展示的是64位操作系统的,具体32位的到网上查找,不懂的可评论留言我看到会回复

    具体的资源文件jar包,可自行到网上找,或者到maven仓库中下载。

    /**
    	 * xml形式的doc文件转换为Docx格式
    	 * @param sourcePath 被转换文件的路径
    	 * @param targetPath 目标文件路径
    	 * @return
    	 * @author lixs 
    	 * @Date 2018年5月29日16:24:08
    	 */
    	public static void docToDocx(String sourcePath, String targetPath){
    		//Word.Application代表COM OLE编程标识,可查询MSDN得到  
    		ActiveXComponent app = new ActiveXComponent("Word.Application");  
    		//设置Word不可见  
    		app.setProperty("Visible",false);  
    		//调用Application对象的Documents属性,获得Documents对象  
    		Dispatch docs = app.getProperty("Documents").toDispatch();  
    		//Dispatch doc = Dispatch.call(docs,"Open",sourcePath,new Variant(false),new Variant(true)).getDispatch();  
    		Dispatch doc = Dispatch.call(docs,"Open",sourcePath).getDispatch(); 
    		Dispatch.call(doc,"SaveAS",targetPath,12);  
    		//关闭打开的Word文件  
    		Dispatch.call(doc,"Close",false);  
    		//关闭Word应用程序  
    		app.invoke("Quit",0);  
    	}

    (5)有的需要将word文档转换为PDF文件,这里提供一个转PDF的通用方法,:

    /**
    	 * @Description: word文件转pdf文件
    	 * @param sourcePath 被转换word文档路径
    	 * @param targetPath 目标PDF文件路径路径
    	 * @return boolean
    	 * @date 2018年5月22日15:19:48
    	 */
    	public static boolean word2pdf(String sourcePath, String targetPath) {
    		ActiveXComponent app = null;
    		try {
    			app = new ActiveXComponent("Word.Application");
    			app.setProperty("Visible", false);
    			Dispatch docs = app.getProperty("Documents").toDispatch();
    			Dispatch doc = Dispatch.call(docs, "Open", sourcePath, false, true).toDispatch();
    			File tofile = new File(targetPath);
    			if (tofile.exists()) {
    				tofile.delete();
    			}
    			Dispatch.call(doc, "SaveAs", targetPath, 17); // word转PDF格式
    			Dispatch.call(doc, "Close", false);
    			return true;
    		} catch (Exception e) {
    			e.printStackTrace();
    			return false;
    		} finally {
    			if (app != null) {
    				app.invoke("Quit", 0); // 不保存待定的更改
    			}
    		}
        }






    展开全文
  • Java–依照PDF模板进行数据填充并输出 今天因为有一个逻辑问题迟迟没有定下来,老板去了学习,所以闲着也是闲着,就抽空学习研究了下用Java输出PDF文件的技术。 引入相应的Jar包 这是导出pdf文件必备的jar包,我们...

    Java–依照PDF模板进行数据的填充并输出

    今天因为有一个逻辑问题迟迟没有定下来,老板去了学习,所以闲着也是闲着,就抽空学习研究了下用Java输出PDF文件的技术。

    引入相应的Jar包

    这是导出pdf文件必备的jar包,我们将其在pom文件中引用

            <dependency>
                <groupId>com.itextpdf</groupId>
                <artifactId>itext-asian</artifactId>
                <version>5.2.0</version>
            </dependency>
            <dependency>
                <groupId>com.itextpdf</groupId>
                <artifactId>itextpdf</artifactId>
                <version>5.5.10</version>
            </dependency>
    

    pdf生成的主要方法

    首先需要创建一个pdf模板,再把该模板引入至项目的resource文件夹下,再在代码中进行资源文件的读取。

    private static ByteArrayOutputStream createPdfStream(String templateFilePath, String templateFileName, Map<String, String> resultMap) {
            ByteArrayOutputStream ba = new ByteArrayOutputStream();
            try {
                PdfReader reader = new PdfReader(templateFilePath + "\\" + templateFileName);
                PdfStamper stamp = new PdfStamper(reader, ba);
                //使用字体
                BaseFont bf = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
                //获取模版中的字段
                AcroFields form = stamp.getAcroFields();
                //填充表单
                if (resultMap != null) {
                    //依次获取要填充的数据
                    for (Map.Entry<String, String> entry : resultMap.entrySet()) {
                        form.setFieldProperty(entry.getKey(), "textfont", bf, null);
                        form.setField(entry.getKey(), entry.getValue());
                    }
                }
                stamp.setFormFlattening(true);//设置为不能编辑
                stamp.close();
                reader.close();
            } catch (IOException ioException) {
                ioException.printStackTrace();
            } catch (DocumentException documentException) {
                documentException.printStackTrace();
            }
            return ba;
        }
    

    导出的方法

        @PostMapping("/pdfTest")
        public String pdfTest() {
            //定义要填充的数据封装成Map对象
            Map<String, String>  resultMap= new HashMap<String, String>(0);
            resultMap.put("name","张三");
            //根据模板填充数据源
            try{
                ByteArrayOutputStream pdf = createPdfStream(ClassLoader.getSystemResource("template").getPath(), "pdf.pdf", resultMap);
                //输出Pdf的位置
                String newPadPath="D:\\idea_workspace\\springboot-webscoket\\src\\main\\resources\\template"+"\\pdf2.pdf";
                FileOutputStream out = new FileOutputStream(newPadPath);
                out.write(pdf.toByteArray());
                out.flush();
                out.close();
                pdf.close();
            }catch (Exception e){
                e.printStackTrace();
            }
            return "success";
        }
    

    根据以上的代码可以进行测试,可以进行pdf的导出。

    结语

    不知为何,最近心情十分地烦躁,或许是因为环境的因素吧,每次来到了工位上就想马上下班一起和她煲剧,在这里感受不到任何的乐趣。还是那句话,既来之,则安之。

    展开全文
  • // 标签模板填充 map.put("QRCodeInfo", content); map.put("InnerBoxDetail", "详细信息"); PdfHelper.fromPDFTempletToPdfValue(sourceFile, map, realPath); Map result = new HashMap(); result.put("success",...
  • 内含maven仓库在文件itext.txt文件中,含架包,需要先用adobe来生成pdf模板
  • Java Word数据动态填充,并word转为pdf 适用范围: 1.已有word模板,word中的一些数据需要动态生成。 2.word转为pdf 本文章讲解的内容是一个完整的适用流程。就是首先是一个word模板,然后动态填充数据生成了一个...
  • maven依赖com.itextpdfitextpdf5.5.13com.itextpdfitext-asian5.2.0com.itextpdfhtml2pdf2.1.5itext官网地址(里面有最新的导出api文档):https://itextpdf.com/en/products/itext-7/pdfhtml后端controller方法(后端...
  • 里面放了测试过的工具类,pdf工具太大放不上来,感觉临时使用这种方式填充pdf还是可以的
  • 用途:根据PDF模板生成PDF文件,数据库查询的数据插入到模板指定未知,然后生成新的PDF文件 原理: 代码说明:exprotPDF_Main 为主文件。调用了outpdf1的两个文件的方法。outpdf1里的方法,是通过outpdf2345678这...
  • 启动表单向导)编辑生成带参pdf模板 二、PDF工具类 public class PdfUtils { private final static Logger log = LoggerFactory.getLogger(PdfUtils.class); // 利用模板生成pdf public sta...
  • 由于PDF需要动态生成某些行,不能采用制作PDF表单的形式,word文档直接转PDF的形式会导致排版不美观。由于需要部署在linux服务器,采用windows的中间件的框架也不方便采用,最后选择了动态操作word文档,word文档...
  • 直接开始需要两个jar包 itext-asian-5.2.0.jar和 itextpdf-5.5.6.jar ,我的业务逻辑可能比较复杂,在这里我就简单的提供一个...读取到要填充pdf 地址 2. 然后PdfReader对象,代表一个pdf 3. 然后成PdfStam...
  • 主要为大家详细介绍了java如何实现在pdf模板的指定位置插入图片,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • Java中使用itextPdf工具根据PDF合同模板填充内容 设置PDF合同模板的文本域 导入itextPdf的pom依赖 编写生成填充pdf代码 1:设置PDF合同模板的文本域 ​ 设置PDF文本域我们需要通过Adobe Acrobat DC 工具来设置 ...
  • 用word导出pdf文件格式 在线生成pdf模板文件表单,网址:https://www.pdfescape.com 上传刚刚保存的pdf文件在下拉中选择自己需要的类型选中文本框点击鼠标右键选择 object Properties在name框中输入你要填充的字段...
  • 一、先创建pdf模板1.先用word做出界面image.png2.再转换成pdf格式image.pngimage.png3.用Adobe Acrobat 打开你刚刚用word转换成的pdfimage.png会出现如下界面image.png下一步image.png点击浏览,选择刚才你转换好的...
  • java填充pdf模板

    2021-04-25 22:42:40
    (1)使用itext填充pdf (2)使用itextasian来解决无法填充中文的问题 <dependency> <groupId>com.lowagie</groupId> <artifactId>itext</artifactId> <version>
  • JAVApdf填充数据

    千次阅读 2020-03-14 09:07:11
    功能非常强大,不仅可以在表单编辑中批量插入文本,相比较adobe pdf软件,丝毫不逊色,更重要的是免费使用,并且处理的pdf文档页面干净,不会有任何的讨人厌的水印! 2. jar包: <dependency> <groupId&...
  • java生成pdf字体和模板

    2017-07-24 22:31:46
    java生成pdf字体和模板
  • 对企业合同word模版,可通过java 程序实现生成word文件,然后再通过wordpdf实现。本实例的方案,可实现模版到word文件的转换。附件有代码和效果图。
  • java使用itext填充pdf模板1、先去建一个Word文件,设置好想要填充的地方,留好位置,设置好下划线2、Word另存为pdf3、打开电脑中的Adobe Acrobat pro DC(这个应该win10 都有,搜索一下就出来了),点击 文件→...
  • 因为项目需要用到pdf模板生成pdf,其中模板中有图片,找了好久没有资料,无奈之下翻看api和源码,给大家分享下
  • //读取pdf模板 bos = new ByteArrayOutputStream(); stamper = new PdfStamper(reader, bos); AcroFields form = stamper.getAcroFields(); String[] str = {"小证明","110","13666666666","163@qq.com", ...

空空如也

空空如也

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

java将html模板填充数据转pdf

java 订阅