package com.qf.staff_manage.controller;
import com.itextpdf.kernel.color.Color;
import com.itextpdf.kernel.font.PdfFont;
import com.itextpdf.kernel.font.PdfFontFactory;
import com.itextpdf.kernel.geom.PageSize;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Cell;
import com.itextpdf.layout.element.Paragraph;
import com.itextpdf.layout.element.Table;
import com.itextpdf.layout.property.TextAlignment;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletResponse;
import java.io.ByteArrayOutputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.List;
@RestController
@RequestMapping("candidate")
public class dd {
@RequestMapping("/dd")
public void createpdf(HttpServletResponse response) throws IOException {
try {
response.reset();
String fileName = new String(("信用承諾失信行為查詢.pdf").getBytes("gb2312"), "ISO8859-1");
response.setContentType("application/pdf");
response.setHeader("Content-disposition", "attachment; filename=" + fileName);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
PdfWriter writer = new PdfWriter(baos);
PdfDocument pdf = new PdfDocument(writer);
Document document = new Document(pdf, PageSize.A4);
// 創(chuàng)建字體
PdfFont font = PdfFontFactory.createFont("STSong-Light", "UniGB-UCS2-H", true); // 設(shè)置加粗和字體大小
PdfFont font1 = PdfFontFactory.createFont("STSong-Light", "UniGB-UCS2-H", true);
// 創(chuàng)建表格
Table table = new Table(5); // 3列的表格
//添加標(biāo)題
table.addHeaderCell(new Cell(1, 5).add(new Paragraph("信用承諾失信行為查詢").setFont(font).setTextAlignment(TextAlignment.CENTER)).setBold().setFontSize(18));
// 添加表頭
table.addCell(new Cell().add(new Paragraph("序號(hào)").setFont(font).setTextAlignment(TextAlignment.CENTER)).setBold());
table.addCell(new Cell().add(new Paragraph("單位名稱").setFont(font).setTextAlignment(TextAlignment.CENTER)).setBold());
table.addCell(new Cell().add(new Paragraph("是/否信用承諾失信行為").setFont(font).setTextAlignment(TextAlignment.CENTER)).setBold());
table.addCell(new Cell().add(new Paragraph("查詢?nèi)?).setFont(font).setTextAlignment(TextAlignment.CENTER)).setBold());
table.addCell(new Cell().add(new Paragraph("查詢時(shí)間").setFont(font).setTextAlignment(TextAlignment.CENTER)).setBold());
//查詢出表格數(shù)據(jù)
// 在文檔中添加表格
document.add(table);
// 關(guān)閉文檔
document.close();
byte[] pdfBytes = baos.toByteArray();
// 將PDF內(nèi)容寫入響應(yīng)輸出流
response.setContentLength(pdfBytes.length);
response.getOutputStream().write(pdfBytes);
response.getOutputStream().flush();
response.getOutputStream().close();
writer.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
直接復(fù)制以上代碼即可完成,但是也要引入一些依賴文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-694350.html
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>kernel</artifactId>
<version>7.0.3</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>io</artifactId>
<version>7.0.3</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>layout</artifactId>
<version>7.0.3</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>font-asian</artifactId>
<version>7.0.3</version>
</dependency>
引入以后修修補(bǔ)補(bǔ)增增改改就可以了文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-694350.html
到了這里,關(guān)于java生成pdf表格并支持下載可選另存為的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!