如何在java中使用OpenHtmlToPdf库下载pdf
我想用java将html转换成pdf并下载生成的pdf。我正在使用OpenHtmlToPdf库。它正在生成PDF,但我无法下载它 我可以通过传递文件名下载生成的pdf如何在java中使用OpenHtmlToPdf库下载pdf,java,spring-boot,pdf,openhtmltopdf,Java,Spring Boot,Pdf,Openhtmltopdf,我想用java将html转换成pdf并下载生成的pdf。我正在使用OpenHtmlToPdf库。它正在生成PDF,但我无法下载它 我可以通过传递文件名下载生成的pdf OutputStream os=newfileoutputstream(“E:\\out5.pdf”); PdfRendererBuilder=新PdfRendererBuilder(); useFastMode(); 使用W3C文档(html5ParseDocument(htmlString,3000),“”); toStrea
OutputStream os=newfileoutputstream(“E:\\out5.pdf”);
PdfRendererBuilder=新PdfRendererBuilder();
useFastMode();
使用W3C文档(html5ParseDocument(htmlString,3000),“”);
toStream(os);
builder.run();
但是我想下载pdf而不是写在文件里。因此,我编写以下代码:
pdfrenderbuilder builder=new pdfrenderbuilder();
useFastMode();
使用W3C文档(html5ParseDocument(htmlString,80000000),“”);
toStream(httpServletResponse.getOutputStream());
builder.run();
试一试{
httpServletResponse.setContentType(“application/pdf”);
httpServletResponse.setCharacterEncoding(“UTF-8”);
setHeader(“内容处置”,“附件;
文件名=\“qr\u code.pdf\”;
httpServletResponse.flushBuffer();
}捕获(例外e){
logger.error(e.getMessage(),e);
}
此代码下载pdf,但它是空的
File pdf = new File("E://output.pdf");
OutputStream os = new FileOutputStream(pdf);
PdfRendererBuilder builder = new PdfRendererBuilder();
builder.useFastMode();
builder.withW3cDocument(html5ParseDocument(htmlString,3000),"file:///E://input.html");
builder.toStream(os);
builder.run();
return Pdf;
然后您可以将此文件写入响应输出流
然后您可以将此文件写入响应输出流。尝试使用中间ByteArrayOutputStream。请参见尝试使用中间ByteArrayOutputStream。看见