1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > Java使用iText PDF导出PDF文档

Java使用iText PDF导出PDF文档

时间:2020-02-08 06:05:40

相关推荐

Java使用iText PDF导出PDF文档

1.使用jar包

itextpdf-5.5.13.jar

itext-asian-5.2.0.jar

可以到maven中央仓库下载jar文件或加入项目pom.xml文件

中央仓库地址:/

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);// 设置表格宽度比例为%100table.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();}}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。