1.首先引入对应的 jar 包    

<dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.13.2</version>
</dependency>

2. 因为要展现中文,所以要指定对应的中文字体,否则中文则显示不了...

BaseFont baseFont = BaseFont.createFont("C:/Windows/Fonts/simfang.ttf",  BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);

       linux 环境下 需要下载对应的字体   (linux 默认存放字体的地址   /usr/share/fonts/)

3.简单的PDF 输入...

        指定文本的 大小,粗体,下划线

import com.gfkj.housingsystem.HousingSystemApplication;
import com.itextpdf.text.Chunk;
import com.itextpdf.text.Document;
import com.itextpdf.text.Font;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfWriter;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.context.web.WebAppConfiguration;import java.io.FileOutputStream;@RunWith(SpringRunner.class)
@SpringBootTest(classes = HousingSystemApplication.class)
@WebAppConfiguration
public class JavaPDFTest {@Testpublic void test() {try{Document document = new Document();BaseFont baseFont = BaseFont.createFont( "C:/Windows/Fonts/simfang.ttf", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);Font font1 = new Font(baseFont,18, Font.BOLD);      // 字体大小 , 加粗Font font2 = new Font(baseFont,18, Font.NORMAL);   // 字体大小 , 正常PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("test.pdf"));document.open();document.add(new Paragraph("这是我创建的pdf 加粗",font1));   // 加粗的字体document.add(new Paragraph("这是我创建的pdf 正常",font2));  //  正常的字体Paragraph  paragraph =  new Paragraph("这是我创建的pdf: ",font2);  // 下划线Chunk sig = new Chunk("下划线");sig.setUnderline(0.1f,-2f);paragraph.add(sig);document.add(paragraph);document.close();writer.close();}catch (Exception ex){ex.printStackTrace();}}
}

执行结果

4.PDF 中写入图片

        本地图片的写入,以及图片地址的写入

import com.gfkj.housingsystem.HousingSystemApplication;
import com.itextpdf.text.Document;
import com.itextpdf.text.Font;
import com.itextpdf.text.Image;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfWriter;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.context.web.WebAppConfiguration;import java.io.FileOutputStream;
import java.net.URL;@RunWith(SpringRunner.class)
@SpringBootTest(classes = HousingSystemApplication.class)
@WebAppConfiguration
public class JavaPDFTest {@Testpublic void test() {try{Document document = new Document();BaseFont baseFont = BaseFont.createFont( "C:/Windows/Fonts/simfang.ttf", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);Font font1 = new Font(baseFont,18, Font.BOLD);      // 字体大小 , 加粗Font font2 = new Font(baseFont,18, Font.NORMAL);   // 字体大小 , 正常PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("test.pdf"));document.open();document.add(new Paragraph("PDF 图片",font2));Image image1 = Image.getInstance("C:\\Users\\Administrator\\Pictures\\IMG41.jpg");image1.setAbsolutePosition(200f, 500f);  // 设置图片位置image1.scaleAbsolute(100, 100);   // 设置图片大小document.add(image1);String imageUrl = "https://tse1-mm.cn.bing.net/th/id/OET.4964b3b853484fed81e1d0b10906db86?w=272&h=135&c=7&rs=1&o=5&pid=1.9";Image image2 = Image.getInstance(new URL(imageUrl));document.add(image2);document.close();writer.close();}catch (Exception ex){ex.printStackTrace();}}
}

执行结果

 5.PDF 中插入表格  

        设置表格边框,颜色,边距

import com.gfkj.housingsystem.HousingSystemApplication;
import com.itextpdf.text.*;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfPCell;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfWriter;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.context.web.WebAppConfiguration;import java.io.FileOutputStream;@RunWith(SpringRunner.class)
@SpringBootTest(classes = HousingSystemApplication.class)
@WebAppConfiguration
public class JavaPDFTest {@Testpublic void test() {try{Document document = new Document();BaseFont baseFont = BaseFont.createFont( "C:/Windows/Fonts/simfang.ttf", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);Font font1 = new Font(baseFont,18, Font.BOLD);      // 字体大小 , 加粗Font font2 = new Font(baseFont,18, Font.NORMAL);   // 字体大小 , 正常PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("test.pdf"));document.open();PdfPTable table = new PdfPTable(2); //  设置二列table.setWidthPercentage(100);table.setSpacingBefore(15f);table.setSpacingAfter(15f);PdfPCell cell1 = new PdfPCell(new Paragraph("表格1 ",font2));cell1.setHorizontalAlignment(Element.ALIGN_LEFT);cell1.setVerticalAlignment(Element.ALIGN_MIDDLE);cell1.setPadding(4f);   // 设置内边距cell1.disableBorderSide(15);// 去掉边框PdfPCell cell2 = new PdfPCell(new Paragraph("表格1",font2));cell2.setHorizontalAlignment(Element.ALIGN_LEFT);cell2.setVerticalAlignment(Element.ALIGN_MIDDLE);cell2.setPadding(4f);   // 设置内边距table.addCell(cell1);table.addCell(cell2);PdfPCell cell3 = new PdfPCell(new Paragraph("表格2",font2));cell3.setHorizontalAlignment(Element.ALIGN_LEFT);cell3.setVerticalAlignment(Element.ALIGN_MIDDLE);cell3.setPadding(4f);cell3.setBorderColor(BaseColor.RED);  // 设置边框 红色PdfPCell cell4 = new PdfPCell(new Paragraph("表格2",font2));cell4.setHorizontalAlignment(Element.ALIGN_LEFT);cell4.setVerticalAlignment(Element.ALIGN_MIDDLE);cell4.setBorderColor(BaseColor.BLUE);  // 设置边框 蓝色cell4.setPadding(4f);table.addCell(cell3);table.addCell(cell4);document.add(table);document.close();writer.close();}catch (Exception ex){ex.printStackTrace();}}
}

执行结果

JAVA 使用 itextpdf 构建 PDF相关推荐

  1. java用itextPDF生成PDF文件保存至本地并上传至ftp服务器

    标题java用itextPDF生成PDF文件保存至本地并上传至ftp服务器 所需jar :itext-asian-5.2.0.jar,itextpdf-5.5.5.jar,commons-net-3. ...

  2. java使用itextpdf生成PDF批量打印荣誉证书(指定位置输出文字)

    最近公司项目有个需求,批量打印荣誉证书,一开始尝试过传统的网络打印,控件打印,JS调用浏览器打印方法,遇到各种问题,比如定位不准,分页问题,​​缩放问题等.然后就自己研究,整理了一套打印方案,项目已测 ...

  3. Java通过itextpdf生成PDF

    通过Java生成PDF我用的是itextpdf,需要引入的pop坐标如下 <!-- https://mvnrepository.com/artifact/com.itextpdf/itextpd ...

  4. java使用itextpdf生成pdf并填充自定义数据

    项目中有个需求,对于已有的数据生成对应的发票pdf或者合同pdf,这些pdf具有一些特性,就是pdf有固定的格式,类似于表格,我们只要往表格里面填充数据即可.当然,也会涉及到签章,二维码等需求. 总体 ...

  5. java使用itextpdf生成pdf文档指定图片印章位置

    项目结构 1.引包 <dependencies><!-- itextpdf--><dependency><groupId>com.itextpdf< ...

  6. Java使用itextpdf生成PDF文件,用浏览器下载

    浏览器下载生成PDF文件 1.引入jar包 <dependency><groupId>com.itextpdf</groupId><artifactId> ...

  7. JAVA通过itextpdf实现PDF骑缝章

    先引入pom引入jar包 <dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf ...

  8. #踩坑 Java 使用itextpdf将PDF模板导出文件过大

    itextpdf导出文件 踩坑 问题产生 解决方案 最终方法 涉及到的公共方法/参数 问题产生 处理需求将PDF模板导出后发现前端调取文件时间过长,1min左右.查看才发现导出的文件6m左右,又查看了 ...

  9. 【Java中级篇】使用itextpdf生成PDF

    我们可以发现很多求职网站都会将我们录入的信息来生成一个PDF简历文件.所以我这里提供了用itextpdf生成的PDF的代码. 一.步骤 1.1.使用Adobe Acrobat Pro工具编辑PDF模板 ...

  10. java + jfreechart + itextpdf创建折线图饼图并导出为pdf

    一.添加需要的maven依赖 <!--用于生成pdf--> <dependency><groupId>com.itextpdf</groupId>< ...

最新文章

  1. 高并发大流量专题---8、动态语言的并发处理
  2. 干货 | 一文搞懂极大似然估计
  3. 历史为什么丑化隋朝_隋朝于中国历史,到底处于什么样的地位,为何它一直被低估...
  4. we need to have frequent contact for relationships for transferring from aca to career
  5. Python之爬虫-段子网
  6. 4. 堪比JMeter的.Net压测工具 - Crank 进阶篇 - 认识wrk、wrk2
  7. 唐山职业技术学院计算机专业分数线,唐山职业技术学院历年分数线 2021唐山职业技术学院录取分数线...
  8. 医学方面的创业计划书_【就业创业】设计学院开展2019“汉军杯”大学生创业大赛 初评及复评工作...
  9. 三相全控tc787触发电路_典型定频空调器的电路识图方法,一看就懂
  10. 如何用chrome浏览器打开swf文件
  11. Chang-Xiao Li Machine Learning 2019 Task5
  12. maven项目报error in opening zip file.
  13. 强迫症狂喜!PC端相册还能智能分类!
  14. 蓝桥杯——测试次数·摔手机(2018JavaB组第4题,17分)
  15. https://start.spring.io‘ 的初始化失败请检查 URL、网络和代理设置
  16. VC下自制一个MusicPlayer:调用activemovie控件
  17. 装detectron2报错:nvcc fatal : No input files specified; use option --help for more information
  18. 什么是AOP,AOP的优点是什么?
  19. 文件复制软件评测:FastCopy、TeraCopy、ExtremeCopy、Supercopier
  20. APS排程软件与ERP、MES的集成方式

热门文章

  1. oracle varchar2 转换成date,将Oracle VARCHAR2转换为DATE并排除无效数据
  2. 微信如何收发企业邮箱邮件
  3. 微软小娜关闭服务器,图文详解彻底关闭windows10系统里的小娜(Cortana)语音服务-系统操作与应用 -亦是美网络...
  4. 利用WPF做出的简单界面布局一
  5. 【Axure交互教程】拖动滑块确定评分区间效果
  6. SmartSVN使用
  7. 《计算机算法设计与分析 第4版 (王晓东) 课后答案[1-9章]》pdf版电子书附下载链接
  8. form表单提交serialize()方法和
  9. JAVA32位的如何换成64位的_win10系统中怎么把32位改成64位教程
  10. Python时间序列分析指南!