数据库表字段存入图像(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();
}
}
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();
}
}
相关文章推荐
- VC保存和显示数据库图像(JPG、JPEG)
- 如何将存放在数据库BLOB字段的图像显示在asp.net的IMAGE控件中
- VC保存和显示数据库图像(JPG、JPEG)
- VC保存和显示数据库图像(JPG、JPEG)
- PDF 以二进制存入数据库 上传,读取,下载
- VC保存和显示数据库图像(JPG、JPEG)
- 从数据库中字段为byte的图片读取处理存入磁盘
- 用位域枚举作将多个 Boolean 值存入数据库的同一个字段
- 推荐 | 基于深度学习的图像语义分割方法回顾(附PDF下载)
- 文档下载和数据库字段关联
- textarea 存入数据库后 换行 、空格显示
- ImageKit使用教程:数据库中图像数据的显示和检索
- java 通用文件下载 excel,pdf,word,jpg,exe,rar
- java hibernate 将图片存入数据库,并从数据库取出显示在网页上
- pyinstaller打包pyqt4程序时在部分电脑上无法显示jpg图像的问题
- 发布Qt程序,显示不了jpg图像的问题
- 页面下拉框显示值,存入数据库的是id
- 查询并逐行显示数据库表中的所有字段名
- 数据库 价格字段 设置 decimal(8,2),价格为100W,只显示999999.99
- 图片异步下载+本地缓存+listview显示+服务器缩放图像代码