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文件功能相关推荐

  1. Java中利用freemarker模板动态生成word含表格

    最近公司有导出word的需求,由于word的样式有的很复杂所以记录一下Java中利用freemarker模板动态生成word含表格,以防以后忘记. 1.word表格的模板 删掉无用的数据留下基础的样式 ...

  2. Java 使用iText7生成带页码的PDF文件(同时生成目录,但是不会合并两个PDF)

    一.效果图 1.带页码效果 2.目录效果 前言:Java 使用iText7生成带页码的PDF文件,同时生成目录PDF,但限于水平,暂时还在摸索合并两个PDF.不过看了一下,iText好像有生成目录的代 ...

  3. java poi生成word 插入表格,图片,自动合并单元格,并且可以在已存在的word上追加

    poi版本选3.10以上的 要不然插入图片 word会打不开 <dependency><groupId>org.apache.poi</groupId><ar ...

  4. SpringBoot+Poi-tl根据Word模板动态生成word(含动态行表格、合并单元格)

    本编文章继SpringBoot+Poi-tl根据Word模板动态生成word(含动态行表格)文章之后 介绍Poi-tl导出word的延伸功能: 所需依赖以及word模板所属位置 见 SpringBoo ...

  5. java动态生成pdf文件的方法

    java动态生成pdf文件 文章目录 java动态生成pdf文件 前言 一.生成pdf模板 二.使用步骤 1.使用jar包 2.pdf实现方法 总结 前言 java开发过程中难免会遇到生成文件的需求, ...

  6. Java动态生成类以及动态添加属性 本篇文章来源于 Linux公社网站(www.linuxidc.c

    2019独角兽企业重金招聘Python工程师标准>>> 有个技术实现需求:动态生成类,其中类中的属性来自参数对象中的全部属性以及来自参数对象propertities文件. 那么技术实 ...

  7. java自动生成word,java动态生成word解决方案

    java动态生成word 我想弄一个java网站上的可以生成word,上网搜索了几天,找到几个可以java令jsp(html)转换成word的有jacob和poi, 还有JS,还有在jsp上添加头文件 ...

  8. java poi生成的word表格在wps中的显示问题

    java poi生成的word表格在wps中的显示问题 问题描述: poi导出的word文档使用office打开效果正常: poi导出的word文档使用wps打开效果异常: 问题分析: 1.怀疑是合并 ...

  9. android 动态显示表格,在Android Studio中动态生成并显示表格

    我在Android上创建我的第一个应用程序,因此我有低开发android应用程序的经验,而且我也是第一次使用java.在Android Studio中动态生成并显示表格 我想要什么? 我想从Array ...

  10. java使用flex生成swf_flex动态生成矢量swf字体--java动态生成swf文件

    前言 相信很多在线设计的前端WEB应用会用到字体作为素材的案例,丰富多样的字体一般是部署在服务器端让用户去选择,而且能动态部署,使用客户端字体显然是不可取的: 现状 然而中文字体动不动就几个M,做过f ...

最新文章

  1. Linux-DNS服务器的配置与管理(上)
  2. Mac os硬盘空间释放
  3. Python进阶-----property用法(实现了get,set,delete三种方法)
  4. hao123电脑版主页_生活小技巧003:电脑主页被恶意篡改怎么办?
  5. (转)mybatis一级缓存二级缓存
  6. 系统诊断概述-如何通过windbg来dump特定process的memory.
  7. Java中的日期操作
  8. 分享网页加载速度优化的一些技巧?
  9. filters获取data中的数据
  10. Python:通过执行100万次打印来比较C和python的性能,以及用C和python结合来解决性能问题的方法 ....
  11. U8修改销售订单模板
  12. JAVA之CRC校验算法
  13. DevOps落地实践:通讯行业系列:NTT COMWARE之Devaas
  14. 是否还为制作PPT而烦恼?珍藏的PPT实用网站打包送给你!
  15. cfree5.0中文版
  16. C语言,最新猴子摘桃(递归方法)
  17. (21)心有猛虎,细嗅蔷薇之Backward Propagation
  18. 好用的浏览器,与Google Chrome同内核
  19. amd处理器更新zen4服务器芯片,AMD Zen4接口AM5曝光:改用LGA触点式、告别脆弱的针脚...
  20. 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

热门文章

  1. matlab中fprintf整数,matlab中fprintf函数的用法
  2. GitHub上十大热门Python项目
  3. 用python的xlwings模块实现excel工作表批量隐藏和取消隐藏
  4. 白嫖UltraEdit、UltraCompare等等类似工具(2021.2.16更新)
  5. 初中计算机软件课后反思,信息技术的教学反思
  6. Windows 8 应用开发 - 磁贴
  7. 这一年很幸运,平平淡淡的|2021 年度总结
  8. 【Linux网络】第一篇:初识网络(分层,封装与分用)
  9. 2022年6月 青少年软件编程(Python) 等级考试试卷(二级)
  10. 2022年6月青少年软件编程(Python)等级考试试卷(一级)