gpt4 book ai didi

java - 需要在客户端/用户计算机而不是 Spring Boots 或 MVC 中的服务器计算机上下载 pdf 文件

转载 作者:行者123 更新时间:2023-12-02 02:59:52 25 4
gpt4 key购买 nike

我已经编写了在服务器计算机中生成 pdf 文件的代码,但我的要求是,当用户单击网站上的某个按钮/url 时,在这种情况下,他应该能够在新选项卡中看到该 pdf 文件浏览器或者直接下载到他的机器上。

这是我写的代码

@RequestMapping(value = "/downloadPDF", method = RequestMethod.POST)
public void downloadPDF()
throws FileNotFoundException, DocumentException {

final String DEST = "column_width_example.pdf";

StringBuilder sb = new StringBuilder();

//Below method returns the data which will be convert in table format for pdf file
String dataForPDFFile = rowForUserCompetency(sb, "name");

Document document = new Document(PageSize.A4.rotate());
PdfWriter.getInstance(document, new FileOutputStream(DEST));
document.open();
float[] columnWidths = { 2.5f, 2, 2, 1, 2, 2, 3 };
String[] lines = dataForPDFFile.toString().split("\\n");

Font fontRow = new Font(Font.FontFamily.TIMES_ROMAN, 10, Font.NORMAL);

PdfPTable table = new PdfPTable(columnWidths);
table.setWidthPercentage(100);
table.getDefaultCell().setUseAscender(true);
table.getDefaultCell().setUseDescender(true);

for (String string : lines) {
String[] cellData = string.toString().split(",");
for (String header : cellData) {
PdfPCell cell = new PdfPCell();

cell.setPhrase(new Phrase(header.toUpperCase(), fontRow));
table.addCell(cell);
}
table.completeRow();

}

document.add(table);
document.close();

}

此代码正在该服务器上生成 pdf 文件,因此普通用户将无法在他的计算机中看到该文件,所以有人可以指导我上面的代码应该进行哪些更改。

最佳答案

您需要管理 HTTP 响应。

public void downloadPDF(HttpServletResponse response) {
// Set the headers for downloading or opening your document
response.setContentType("application/pdf");
response.setHeader("Content-Disposition", "attachment; filename=\"user_file_name.pdf\"");
...
// Write directly the output stream.
PdfWriter.getInstance(document, response.getOutputStream());
...
// Build your document as ever.
}

关于java - 需要在客户端/用户计算机而不是 Spring Boots 或 MVC 中的服务器计算机上下载 pdf 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42514319/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com