1.使用jar包
itextpdf-5.5.13.jar
itext-asian-5.2.0.jar
可以到maven中央仓库下载jar文件或加入项目pom.xml文件
中央仓库地址:https://mvnrepository/
2.代码
package com.test.basecommon;
import java.io.FileOutputStream;
import com.itextpdf.text.Document;
import com.itextpdf.text.Element;
import com.itextpdf.text.Font;
import com.itextpdf.text.Image;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.Rectangle;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfPCell;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfWriter;
public class PDFUtil {
public static void main(String[] args) {
try {
// 定义文档对象
Document document = new Document();
// 文档横向展示
Rectangle pageSize = new Rectangle(PageSize.A4.getHeight(),
PageSize.A4.getWidth());
pageSize.rotate();
document.setPageSize(pageSize);
// 输出文档
PdfWriter writer = PdfWriter.getInstance(document,
new FileOutputStream("F:/test.pdf"));
// 开启文档
document.open();
// 引入中文字体,避免中文不显示,字体文件可自行百度下载
BaseFont font = BaseFont.createFont("E:/simsun/simsun.ttf",
BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
// 可设置不同大小,样式的字体
Font titleChinese = new Font(font, 15, Font.BOLD);
Font fontChinese = new Font(font, 10);
// 正文标题,段落标记
Paragraph par = new Paragraph("标题", titleChinese);
par.setAlignment(Element.ALIGN_CENTER);
document.add(par);
// 空白段落,上下文间隔
par = new Paragraph(" ", fontChinese);
par.setAlignment(Element.ALIGN_LEFT);
document.add(par);
// 创建表格对象,参数为表格的列数
PdfPTable table = new PdfPTable(3);
// 上边距
table.setSpacingBefore(10);
// 设置表格宽度比例为%100
table.setWidthPercentage(100);
// 防止单元格内容过长自动换到下一页,避免空白部分
table.setSplitLate(false);
// 设置表格标题,单元格内容不能直接放如中文,应该使用段落标记,并设置字体,否则中文不显示
PdfPCell titleCell = new PdfPCell(new Paragraph("表头", titleChinese));
// 合并列数
titleCell.setColspan(3);
// 垂直居中
titleCell.setVerticalAlignment(Element.ALIGN_MIDDLE);
// 最小高度
titleCell.setMinimumHeight(20);
table.addCell(titleCell);
for (int i = 0; i < 10; i++) {
table.addCell(new Paragraph("单元格" + (i + 1), fontChinese));
}
// 单元格列数不满一行的不显示,需要手动补全空白单元格
int emptyCount = 3 - (10 % 3);
for (int i = 0; i < emptyCount; i++) {
table.addCell(" ");
}
// 将表格添加进文档
document.add(table);
// 图片路径
String qrName = "F:/images/图片2.jpg";
// 设置图片大小
float scalePercentage = (72 / 300f) * 30.0f;
// 获取图片流
Image image = Image.getInstance(qrName);
// 设置宽高
image.scalePercent(scalePercentage, scalePercentage);
// 设置显示位置
image.setAlignment(Element.ALIGN_CENTER);
// 将图片添加到pdf文件中
document.add(image);
// 文档关闭
document.close();
writer.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
更多推荐
Java使用iText PDF导出PDF文档
发布评论