【发布时间】:2019-06-10 11:28:09
【问题描述】:
我正在使用以下代码从 html 下载 PDF 包含我的工作正常但文件被下载两次我试图修改渲染器行为但仍然没有得到任何东西。
public Response downloadResumePdf(@PathParam("userId") String userId) throws IOException, DocumentException {
String homePath = System.getProperty("user.home");
String filePath = homePath + "/Downloads/Resume" + LocalDateTime.now().toLocalDate() + ".pdf";
org.xhtmlrenderer.pdf.ITextRenderer renderer = new ITextRenderer();
String yourXhtmlContentAsString = "<h1>hi </h1>";
renderer.setDocumentFromString(yourXhtmlContentAsString);
renderer.layout();
java.io.FileOutputStream fos = new java.io.FileOutputStream(filePath);
renderer.createPDF(fos);
fos.close();
File file = new File(filePath);
return Response
.ok((Object) file)
.header("Content-Disposition", "attachment; filename=\"Resume" + LocalDateTime.now().toLocalDate() + ".pdf\"")
.build();
【问题讨论】:
-
我无法重现此问题,它只为我下载一次。您是否在某个地方两次调用此端点,使其下载两次?
-
@Mark 在下载文件夹中相同的文件被创建了两次
-
同一个文件怎么创建两次?它们有不同的文件名吗?
-
@Mark 我只使用上述代码
-
您正在从您的下载文件夹中加载一个名为
Resume2019-01-16.pdf的文件以在您的 API 上提供服务,然后您在本地运行您的 API,它将下载到Resume2019-01-16 (1).pdf,这是“下载两次”吗你提?现在下载文件夹中有两个文件?或者当你去那个端点时它会创建Resume2019-01-16 (1).pdf和Resume2019-01-16 (2).pdf?
标签: java pdf jersey itext html-to-pdf