版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_36675996/article/details/79281095
String newName ="文字文字.pdf"; //导出pdf的名称
File fileName = new File(savePhotoPath + newName); //导出pdf的位置
FileOutputStream fos2 = new FileOutputStream(fileName); //文件输出流
ByteArrayOutputStream ba = new ByteArrayOutputStream();
Document document = new Document(PageSize.A4); // Step 1—Create a Document.
PdfWriter writer = PdfWriter.getInstance(document, ba);// Step 2—Get a PdfWriter instance.
writer.setEncryption(null, null, PdfWriter.ALLOW_PRINTING, PdfWriter.STANDARD_ENCRYPTION_128);// 空加密,禁用编辑
document.open();
// 页边空白
document.setMargins(50, 50, 30, 30);
// 设置字体
BaseFont bfChinese = BaseFont.createFont("C:/WINDOWS/Fonts/simhei.TTF", BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);
com.itextpdf.text.Font FontChinese18 = new com.itextpdf.text.Font(bfChinese, 18,com.itextpdf.text.Font.BOLD);
com.itextpdf.text.Font FontChinese11Bold =new com.itextpdf.text.Font(bfChinese, 11,com.itextpdf.text.Font.BOLD);
com.itextpdf.text.Font FontChinese11Normal = new com.itextpdf.text.Font(bfChinese, 11,com.itextpdf.text.Font.NORMAL);
Paragraph pg_bt = new Paragraph("文字文字", FontChinese18);//标题
pg_bt.setAlignment(Element.ALIGN_CENTER);
pg_bt.setSpacingAfter(50);
document.add(Chunk.NEWLINE);
document.add(Chunk.NEWLINE);
document.add(pg_bt);
//加入空行
Paragraph blankRow1 = new Paragraph(18f, " ", FontChinese18);
Paragraph paragraph = new Paragraph("文字文字:", FontChinese11Bold);
paragraph.setIndentationLeft(45f);// 段落缩进
Paragraph p1 = new Paragraph("");
p1.add(new Chunk(new LineSeparator(1, 83, new BaseColor(144, 205, 247), Element.ALIGN_CENTER, 10))); //加入一条蓝线
document.add(paragraph);
document.add(p1);
document.add(Chunk.NEWLINE);
try {
Image image = Image.getInstance(photoUrl); //写入图片
image.scaleAbsolute(80, 110);// 控制图片大小 (宽,高)
image.setAbsolutePosition(130, 565);// 控制图片位置
document.add(image);
}catch(Exception e) {
System.out.println("照片没找到");
}
Paragraph kh = new Paragraph("文字文字:" + ksxx.getKsbh(), FontChinese11Normal);
kh.setIndentationLeft(280f);// 段落缩进
document.add(kh);
document.add(Chunk.NEWLINE);
Paragraph xm = new Paragraph("文字文字:" + ksxx.getXm(), FontChinese11Normal);
xm.setIndentationLeft(280f);// 段落缩进
document.add(xm);
document.add(Chunk.NEWLINE);
Paragraph xb = new Paragraph("文字文字:" + ksxx.getXbmc(), FontChinese11Normal);
xb.setIndentationLeft(280f);// 段落缩进
document.add(xb);
document.add(Chunk.NEWLINE);
Paragraph zjhm = new Paragraph("文字文字:" + ksxx.getZjhm(), FontChinese11Normal);
zjhm.setIndentationLeft(280f);// 段落缩进
document.add(zjhm);
document.add(Chunk.NEWLINE);
document.add(new Chunk(" 文字文字:", FontChinese11Bold));
document.add(p1);
//加入空行
document.add(blankRow1);
//table1
PdfPTable table1 = new PdfPTable(2); //创建一个表格,2为一行有几栏
int width1[] = {45,40};//每栏的宽度
table1.setWidths(width1); //设置宽度
PdfPCell cell1 = new PdfPCell(new Paragraph("文字文字: "+ksxx.getBkyxsm()+" "+ksxx.getBkyxsmc(),FontChinese11Normal));//每栏的值
PdfPCell cell2 = new PdfPCell(new Paragraph("文字文字:"+ksxx.getXxfsmc(),FontChinese11Normal));
cell1.setBorder(0);//设置边框线亮度为0
cell2.setBorder(0);
table1.addCell(cell1);//将每栏加入表格中
table1.addCell(cell2);
document.add(table1);//将表格加入到document中
document.add(blankRow1);
//table2
PdfPTable table2 = new PdfPTable(2);
table2.setWidths(width1);
PdfPCell cell3 = new PdfPCell(new Paragraph("文字文字: "+ksxx.getBkzydm()+" "+ksxx.getBkzymc(),FontChinese11Normal));
PdfPCell cell4 = new PdfPCell(new Paragraph("文字文字:"+ ksxx.getKsfsmc(), FontChinese11Normal));
cell3.setBorder(0);
cell4.setBorder(0);
table2.addCell(cell3);
table2.addCell(cell4);
document.add(table2);
//加入空行
document.add(blankRow1);
Paragraph ksfs = new Paragraph("文字文字:"+ksxx.getYjfxm()+" "+ksxx.getYjfxmc(), FontChinese11Normal);
ksfs.setIndentationLeft(55f);// 段落缩进
document.add(ksfs);
document.add(Chunk.NEWLINE);
//NumberFormat nf = NumberFormat.getInstance();
document.add(new Chunk(" 文字文字:", FontChinese11Bold));
document.add(p1);
//加入空行
document.add(blankRow1);
//table3
PdfPTable table3 = new PdfPTable(4);
int width3[] = {25,35,25,30};
table3.setWidths(width3);
PdfPCell cell5 = new PdfPCell(new Paragraph("文字文字:",FontChinese11Normal));
PdfPCell cell6 = new PdfPCell(new Paragraph(""+checkFloat(ksxx.getZzll()),FontChinese11Normal));
PdfPCell cell7 = new PdfPCell(new Paragraph("文字文字:",FontChinese11Normal));
PdfPCell cell8= new PdfPCell(new Paragraph(""+checkFloat(ksxx.getWgy()),FontChinese11Normal));
cell5.setBorder(0);
cell6.setBorder(0);
cell7.setBorder(0);
cell8.setBorder(0);
table3.addCell(cell5);
table3.addCell(cell6);
table3.addCell(cell7);
table3.addCell(cell8);
document.add(table3);
//加入空行
document.add(blankRow1);
document.close();
ba.writeTo(fos2); // response.getOutputStream()
fos2.close();
ba.close(); // 导出pdf注解
maven,pom.xml:
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.10</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext-asian</artifactId>
<version>5.2.0</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<version>1.55</version>
</dependency>