您的位置:首页 > 数据库

数据库表字段存入图像(jpg)的byte,转pdf显示与下载

2018-02-11 15:57 579 查看
包:itextpdf
jgp 显示: /**
* 加载image图片
*/
@RequestMapping(value = "showImg", method = RequestMethod.GET)
public void showImg(HttpServletRequest request, HttpServletResponse response) {
String imgno = request.getParameter("imgno");
byte[] bytes = StoreFactory.getImage(new BigDecimal(imgNo));
if (bytes == null)
return;
response.setContentType("text/html");
response.setCharacterEncoding("UTF-8");
try {
OutputStream stream = response.getOutputStream();
stream.write(bytes);
stream.flush();
stream.close();
} catch (IOException e) {
e.printStackTrace();
}
}pdf 显示: @RequestMapping(value = "showPdf", method = RequestMethod.GET)
public void showPdf(HttpServletRequest request, HttpServletResponse response) {
String imgno = request.getParameter("imgno");
byte[] bytes = StoreFactory.getImage(new BigDecimal(imgno));
if (bytes == null)
return;
Document document = new Document();
try{
response.setContentType("application/pdf"); //设置http的content-type为application/pdf。
PdfWriter.getInstance(document, response.getOutputStream());//PdfWriter定向到response的输出流上
// 设置文档的大小
document.setPageSize(PageSize.A4);
// 打开文档
document.open();
// 写入一段文字
// document.add(new Paragraph("JUST TEST ..."));
// 读取一个图片
Image image = Image.getInstance(bytes);
float imageHeight=image.getScaledHeight();
float imageWidth=image.getScaledWidth();
int i=0;
while(imageHeight>500||imageWidth>500){
image.scalePercent(100-i);
i++;
imageHeight=image.getScaledHeight();
imageWidth=image.getScaledWidth();
System.out.println("imageHeight->"+imageHeight);
System.out.println("imageWidth->"+imageWidth);
}

image.setAlignment(Image.ALIGN_CENTER);
// //设置图片的绝对位置
// image.setAbsolutePosition(0, 0);
// image.scaleAbsolute(500, 400);
// 插入一个图片
document.add(image);
}catch(Exception e){
e.printStackTrace();
}
document.close();

}pdf 下载:@RequestMapping(value = "img2pdfDown", method = RequestMethod.POST)
public void img2pdfDown(HttpServletRequest request, HttpServletResponse response){
String imgNos = request.getParameter("imgNos");
String imanos[] = imgNos.split(",");
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
String dateString = sdf.format(new Date());
String fileName = dateString+".pdf";
Document doc = new Document(new Rectangle(800, 800), 0, 0, 0, 0);
try {
OutputStream fos = response.getOutputStream();
response.setHeader("Content-disposition", "attachment;filename=" + fileName); //打开下载框
response.setContentType("application/x-download");
PdfWriter.getInstance(doc, fos);
doc.open();
for (String imgno : imanos) {
if(StringUtils.isEmpty(imgno)) return;
byte[] bytes = StoreFactory.getImage(new BigDecimal(imgno));
Image image = Image.getInstance(bytes);
image.scaleAbsolute(800, 800);
doc.add(image);
}
if(doc!=null && doc.isOpen()) doc.close();
} catch (IOException | DocumentException e) {
e.printStackTrace();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: