JAVA 使用 itextpdf 构建 PDF
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相关推荐
- java用itextPDF生成PDF文件保存至本地并上传至ftp服务器
标题java用itextPDF生成PDF文件保存至本地并上传至ftp服务器 所需jar :itext-asian-5.2.0.jar,itextpdf-5.5.5.jar,commons-net-3. ...
- java使用itextpdf生成PDF批量打印荣誉证书(指定位置输出文字)
最近公司项目有个需求,批量打印荣誉证书,一开始尝试过传统的网络打印,控件打印,JS调用浏览器打印方法,遇到各种问题,比如定位不准,分页问题,缩放问题等.然后就自己研究,整理了一套打印方案,项目已测 ...
- Java通过itextpdf生成PDF
通过Java生成PDF我用的是itextpdf,需要引入的pop坐标如下 <!-- https://mvnrepository.com/artifact/com.itextpdf/itextpd ...
- java使用itextpdf生成pdf并填充自定义数据
项目中有个需求,对于已有的数据生成对应的发票pdf或者合同pdf,这些pdf具有一些特性,就是pdf有固定的格式,类似于表格,我们只要往表格里面填充数据即可.当然,也会涉及到签章,二维码等需求. 总体 ...
- java使用itextpdf生成pdf文档指定图片印章位置
项目结构 1.引包 <dependencies><!-- itextpdf--><dependency><groupId>com.itextpdf< ...
- Java使用itextpdf生成PDF文件,用浏览器下载
浏览器下载生成PDF文件 1.引入jar包 <dependency><groupId>com.itextpdf</groupId><artifactId> ...
- JAVA通过itextpdf实现PDF骑缝章
先引入pom引入jar包 <dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf ...
- #踩坑 Java 使用itextpdf将PDF模板导出文件过大
itextpdf导出文件 踩坑 问题产生 解决方案 最终方法 涉及到的公共方法/参数 问题产生 处理需求将PDF模板导出后发现前端调取文件时间过长,1min左右.查看才发现导出的文件6m左右,又查看了 ...
- 【Java中级篇】使用itextpdf生成PDF
我们可以发现很多求职网站都会将我们录入的信息来生成一个PDF简历文件.所以我这里提供了用itextpdf生成的PDF的代码. 一.步骤 1.1.使用Adobe Acrobat Pro工具编辑PDF模板 ...
- java + jfreechart + itextpdf创建折线图饼图并导出为pdf
一.添加需要的maven依赖 <!--用于生成pdf--> <dependency><groupId>com.itextpdf</groupId>< ...
最新文章
- 高并发大流量专题---8、动态语言的并发处理
- 干货 | 一文搞懂极大似然估计
- 历史为什么丑化隋朝_隋朝于中国历史,到底处于什么样的地位,为何它一直被低估...
- we need to have frequent contact for relationships for transferring from aca to career
- Python之爬虫-段子网
- 4. 堪比JMeter的.Net压测工具 - Crank 进阶篇 - 认识wrk、wrk2
- 唐山职业技术学院计算机专业分数线,唐山职业技术学院历年分数线 2021唐山职业技术学院录取分数线...
- 医学方面的创业计划书_【就业创业】设计学院开展2019“汉军杯”大学生创业大赛 初评及复评工作...
- 三相全控tc787触发电路_典型定频空调器的电路识图方法,一看就懂
- 如何用chrome浏览器打开swf文件
- Chang-Xiao Li Machine Learning 2019 Task5
- maven项目报error in opening zip file.
- 强迫症狂喜!PC端相册还能智能分类!
- 蓝桥杯——测试次数·摔手机(2018JavaB组第4题,17分)
- https://start.spring.io‘ 的初始化失败请检查 URL、网络和代理设置
- VC下自制一个MusicPlayer:调用activemovie控件
- 装detectron2报错:nvcc fatal : No input files specified; use option --help for more information
- 什么是AOP,AOP的优点是什么?
- 文件复制软件评测:FastCopy、TeraCopy、ExtremeCopy、Supercopier
- APS排程软件与ERP、MES的集成方式
热门文章
- oracle varchar2 转换成date,将Oracle VARCHAR2转换为DATE并排除无效数据
- 微信如何收发企业邮箱邮件
- 微软小娜关闭服务器,图文详解彻底关闭windows10系统里的小娜(Cortana)语音服务-系统操作与应用
-亦是美网络...
- 利用WPF做出的简单界面布局一
- 【Axure交互教程】拖动滑块确定评分区间效果
- SmartSVN使用
- 《计算机算法设计与分析 第4版 (王晓东) 课后答案[1-9章]》pdf版电子书附下载链接
- form表单提交serialize()方法和
- JAVA32位的如何换成64位的_win10系统中怎么把32位改成64位教程
- Python时间序列分析指南!