java生成pdf下载到指定位置
1.下载依赖
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.9</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext-asian</artifactId>
<version>5.2.0</version>
</dependency>
- 直接上代码
package com.tcl.tof.order.obg.ohs.remote.controller;
import com.itextpdf.text.Document;
import com.itextpdf.text.Font;
import com.itextpdf.text.Phrase;
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 java.io.ByteArrayOutputStream;
import java.io.FileOutputStream;
/**
* @Author ex_chao.xie
* @Date 2023-05-04 19:22
* @Version 1.0
*/
public class PdfUtil{
public void writePDF() {
try {
Document document = new Document();
ByteArrayOutputStream bos = new ByteArrayOutputStream();
PdfWriter writer = PdfWriter.getInstance(document, bos);
// 向文档中添加内容
document.open();
for(int i=0;i<10;i++) {
createTable5(writer,"第"+i+"页");
document.newPage();
}
document.close();
FileOutputStream fos = new FileOutputStream("output.pdf");
bos.writeTo(fos);
} catch (Exception e) {
}
}
public void createTable5(PdfWriter writer, String i) {
try{
// 设置一个50长度单元格 //如果是表格可以 new PdfPTable(new float[]{50,50})
PdfPTable table = new PdfPTable(50);
table.setTotalWidth(50); // 宽度
PdfPCell heardCell = new PdfPCell();
heardCell.setPhrase(new Phrase(i, getTextFont()));
heardCell.setMinimumHeight(50); // 高度
table.addCell(heardCell);
// 设置坐标
table.writeSelectedRows(0, -1, 1, 100, writer.getDirectContentUnder());
}catch (Exception e){
}
}
// 设置字体
public Font getTextFont(){
try{
BaseFont baseFont = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
Font textFont = new Font(baseFont, 10, Font.NORMAL);
return textFont;
}catch (Exception e){
}
return null;
}
}