java动态生成pdf含表格table和 合并两个pdf文件功能
1.首先一样需要maven依赖包:
<!-- https://mvnrepository.com/artifact/com.itextpdf/itextpdf --><dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.10</version></dependency>
<!-- https://mvnrepository.com/artifact/com.itextpdf/itext-asian -->
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext-asian</artifactId>
<version>5.2.0</version>
</dependency>
2.废话不多说,上代码,直接拿去运行测试:
public static void test1(){//生成pdfBaseFont bf;Font font = null;try {bf = BaseFont.createFont( "STSong-Light", "UniGB-UCS2-H",BaseFont.NOT_EMBEDDED);//创建字体font = new Font(bf,12);//使用字体} catch (Exception e) {e.printStackTrace();}Document document = new Document();try {PdfWriter.getInstance(document, new FileOutputStream("E:/测试.pdf"));document.open();document.add(new Paragraph("就是测试下",font));//引用字体document.add(new Paragraph("真的测试下",font));//引用字体float[] widths = {25f,25f,25f };// 设置表格的列宽和列数 默认是4列 PdfPTable table = new PdfPTable(widths);// 建立一个pdf表格 table.setSpacingBefore(20f); table.setWidthPercentage(100);// 设置表格宽度为100% PdfPCell cell = null; cell = new PdfPCell(new Paragraph("姓名",font));// cell.setBackgroundColor(BaseColor.LIGHT_GRAY);cell.setHorizontalAlignment(Element.ALIGN_CENTER);table.addCell(cell);cell = new PdfPCell(new Paragraph("性别",font));// cell.setBackgroundColor(BaseColor.LIGHT_GRAY);cell.setHorizontalAlignment(Element.ALIGN_CENTER);table.addCell(cell);cell = new PdfPCell(new Paragraph("身份证号",font));// cell.setBackgroundColor(BaseColor.LIGHT_GRAY);cell.setHorizontalAlignment(Element.ALIGN_CENTER);table.addCell(cell);//以下代码的作用是创建100行数据,其中每行有四列,列依次为 编号 姓名 性别 备注for (int i = 1; i <=10; i++) {//设置编号单元格PdfPCell cell11=new PdfPCell(new Paragraph("aa名媛",font));PdfPCell cell22=new PdfPCell(new Paragraph("bb女",font));PdfPCell cell33=new PdfPCell(new Paragraph("cc花姑娘",font));//单元格水平对齐方式cell11.setHorizontalAlignment(Element.ALIGN_CENTER);//单元格垂直对齐方式cell11.setVerticalAlignment(Element.ALIGN_CENTER);cell22.setHorizontalAlignment(Element.ALIGN_CENTER);cell22.setVerticalAlignment(Element.ALIGN_CENTER);cell33.setHorizontalAlignment(Element.ALIGN_CENTER);cell33.setVerticalAlignment(Element.ALIGN_CENTER);table.addCell(cell11);table.addCell(cell22);table.addCell(cell33);}document.add(table); document.close();} catch (Exception e) {System.out.println("file create exception");}}
******************************************************************************************************
以下是合并多个pdf文件功能程序,上代码:
//*********合并 pdfFilenames为文件路径数组,targetFileName为目标pdf路径public static void combinPdf(String[] pdfFilenames, String targetFilename) throws Exception { PdfReader reader = null; Document doc = new Document(); PdfCopy pdfCopy = new PdfCopy(doc, new FileOutputStream(targetFilename)); int pageCount = 0; doc.open(); for (int i = 0; i < pdfFilenames.length; ++i) { System.out.println(pdfFilenames[i]);reader = new PdfReader(pdfFilenames[i]); pageCount = reader.getNumberOfPages(); for (int j = 1; j <= pageCount; ++j) { pdfCopy.addPage(pdfCopy.getImportedPage(reader, j)); } } doc.close(); }
这里附上测试程序:
public static void main(String[] args) throws InterruptedException {String fillTemplate1 = "E:/测试.pdf";String fillTemplate2 = "E:/测试.pdf";String[] st = {fillTemplate1,fillTemplate2};try {combinPdf(st,"E:/合并.pdf");} catch (Exception e) {e.printStackTrace();}}
java动态生成pdf含表格table和 合并两个pdf文件功能相关推荐
- Java中利用freemarker模板动态生成word含表格
最近公司有导出word的需求,由于word的样式有的很复杂所以记录一下Java中利用freemarker模板动态生成word含表格,以防以后忘记. 1.word表格的模板 删掉无用的数据留下基础的样式 ...
- Java 使用iText7生成带页码的PDF文件(同时生成目录,但是不会合并两个PDF)
一.效果图 1.带页码效果 2.目录效果 前言:Java 使用iText7生成带页码的PDF文件,同时生成目录PDF,但限于水平,暂时还在摸索合并两个PDF.不过看了一下,iText好像有生成目录的代 ...
- java poi生成word 插入表格,图片,自动合并单元格,并且可以在已存在的word上追加
poi版本选3.10以上的 要不然插入图片 word会打不开 <dependency><groupId>org.apache.poi</groupId><ar ...
- SpringBoot+Poi-tl根据Word模板动态生成word(含动态行表格、合并单元格)
本编文章继SpringBoot+Poi-tl根据Word模板动态生成word(含动态行表格)文章之后 介绍Poi-tl导出word的延伸功能: 所需依赖以及word模板所属位置 见 SpringBoo ...
- java动态生成pdf文件的方法
java动态生成pdf文件 文章目录 java动态生成pdf文件 前言 一.生成pdf模板 二.使用步骤 1.使用jar包 2.pdf实现方法 总结 前言 java开发过程中难免会遇到生成文件的需求, ...
- Java动态生成类以及动态添加属性 本篇文章来源于 Linux公社网站(www.linuxidc.c
2019独角兽企业重金招聘Python工程师标准>>> 有个技术实现需求:动态生成类,其中类中的属性来自参数对象中的全部属性以及来自参数对象propertities文件. 那么技术实 ...
- java自动生成word,java动态生成word解决方案
java动态生成word 我想弄一个java网站上的可以生成word,上网搜索了几天,找到几个可以java令jsp(html)转换成word的有jacob和poi, 还有JS,还有在jsp上添加头文件 ...
- java poi生成的word表格在wps中的显示问题
java poi生成的word表格在wps中的显示问题 问题描述: poi导出的word文档使用office打开效果正常: poi导出的word文档使用wps打开效果异常: 问题分析: 1.怀疑是合并 ...
- android 动态显示表格,在Android Studio中动态生成并显示表格
我在Android上创建我的第一个应用程序,因此我有低开发android应用程序的经验,而且我也是第一次使用java.在Android Studio中动态生成并显示表格 我想要什么? 我想从Array ...
- java使用flex生成swf_flex动态生成矢量swf字体--java动态生成swf文件
前言 相信很多在线设计的前端WEB应用会用到字体作为素材的案例,丰富多样的字体一般是部署在服务器端让用户去选择,而且能动态部署,使用客户端字体显然是不可取的: 现状 然而中文字体动不动就几个M,做过f ...
最新文章
- Linux-DNS服务器的配置与管理(上)
- Mac os硬盘空间释放
- Python进阶-----property用法(实现了get,set,delete三种方法)
- hao123电脑版主页_生活小技巧003:电脑主页被恶意篡改怎么办?
- (转)mybatis一级缓存二级缓存
- 系统诊断概述-如何通过windbg来dump特定process的memory.
- Java中的日期操作
- 分享网页加载速度优化的一些技巧?
- filters获取data中的数据
- Python:通过执行100万次打印来比较C和python的性能,以及用C和python结合来解决性能问题的方法 ....
- U8修改销售订单模板
- JAVA之CRC校验算法
- DevOps落地实践:通讯行业系列:NTT COMWARE之Devaas
- 是否还为制作PPT而烦恼?珍藏的PPT实用网站打包送给你!
- cfree5.0中文版
- C语言,最新猴子摘桃(递归方法)
- (21)心有猛虎,细嗅蔷薇之Backward Propagation
- 好用的浏览器,与Google Chrome同内核
- amd处理器更新zen4服务器芯片,AMD Zen4接口AM5曝光:改用LGA触点式、告别脆弱的针脚...
- Access to script at ‘file:///D:/html/vue-%E6%A8%A1%E5%9D%97%E5%8C%96%E5%BC%80%E5%8F%91/js/aaa.js‘ fr
热门文章
- matlab中fprintf整数,matlab中fprintf函数的用法
- GitHub上十大热门Python项目
- 用python的xlwings模块实现excel工作表批量隐藏和取消隐藏
- 白嫖UltraEdit、UltraCompare等等类似工具(2021.2.16更新)
- 初中计算机软件课后反思,信息技术的教学反思
- Windows 8 应用开发 - 磁贴
- 这一年很幸运,平平淡淡的|2021 年度总结
- 【Linux网络】第一篇:初识网络(分层,封装与分用)
- 2022年6月 青少年软件编程(Python) 等级考试试卷(二级)
- 2022年6月青少年软件编程(Python)等级考试试卷(一级)