Lodop打印控件HTML转成jpg等文件,图片上传服务器
2015-02-04 16:21
639 查看
一、实现思路及相关资源
1、安装lodop打印控件(收费,网上应该有破解版的),lodop官方网址:lodop官网
2、将打印的html转换为jpg存在filePath,(参见官网实例二十七);
相关方法:SET_SAVE_MODE(varMODEname,var MODEvalue);SAVE_TO_FILE(strFileName);
3、将图片从客户端传入服务器。
因为js不能在不进行处理的情况下根据路径自动获取本地文件,input 中的file 的value值是只读的,不能通过html或者js直接赋值。而控件中FORMAT (oType, oValue)
4、将打印文件流传到后台。
用ajax将FORMAT()转的64位流用text传入后台(注意编码js编码:点击打开链接)。后台request中获取、解码、转换生成图片。
注:lodop中print(param)方法,打印完成后回家内容清空,且该方法是异步的。
二、部分代码实现
1、js 部分代码; 注:visionariPrinter:Lodop控件.引入jquery等相关js文件(LodopFuncs.js等)
function uploadImage(){
visionariPrinter.ADD_PRINT_HTM(0,0,"100%","100%",$('#top',$("#print").html());
var filePath="C:/a.jpg";
var fileName="<%=entry_id%>_master_bol_"+(i+1)+".jpg";
visionariPrinter.SET_SAVE_MODE("FILE_PROMPT",false);
visionariPrinter.SAVE_TO_FILE(filePath);
var imageBuffer=visionariPrinter.FORMAT("FILE:EncodeBase64",filePath);
$.ajax({
url:url,
data:'fileName='+fileName+'&imageBuffer='+encodeURIComponent(imageBuffer),
dataType:'text',
type:'post',
success:function(data){
alert("保存成功");
}
});
2、后台部分java代码
// 创建目录
File file = new File(fileUploadPath);
if (!file.exists()) {
file.mkdirs();
}
BASE64Decoder decoder = new sun.misc.BASE64Decoder();
String base64StringOfImage = request.getParameter("imageBuffer");
String fileName = StringUtil.getString(request, "fileName");
if (fileName != null && base64StringOfImage != null) {
/*
* step1 生成jpg
*/
byte[] bt = decoder.decodeBuffer(base64StringOfImage);
ByteArrayInputStream bais = new ByteArrayInputStream(bt);
BufferedImage bi1 = ImageIO.read(bais);
File imagefile = new File(fileUploadPath, fileName);// 可以是jpg,png,gif格式
ImageIO.write(bi1, "jpg", imagefile);// 不管输出什么格式图片,此处不需改动
注:按该思路完成的代码运行成功,但是该处只给出思路和部分代码,要结合自己环境和应用的框架编写自己的代码
Lodop文档资料下载:
1、安装lodop打印控件(收费,网上应该有破解版的),lodop官方网址:lodop官网
2、将打印的html转换为jpg存在filePath,(参见官网实例二十七);
相关方法:SET_SAVE_MODE(varMODEname,var MODEvalue);SAVE_TO_FILE(strFileName);
3、将图片从客户端传入服务器。
因为js不能在不进行处理的情况下根据路径自动获取本地文件,input 中的file 的value值是只读的,不能通过html或者js直接赋值。而控件中FORMAT (oType, oValue)
4、将打印文件流传到后台。
用ajax将FORMAT()转的64位流用text传入后台(注意编码js编码:点击打开链接)。后台request中获取、解码、转换生成图片。
注:lodop中print(param)方法,打印完成后回家内容清空,且该方法是异步的。
二、部分代码实现
1、js 部分代码; 注:visionariPrinter:Lodop控件.引入jquery等相关js文件(LodopFuncs.js等)
function uploadImage(){
visionariPrinter.ADD_PRINT_HTM(0,0,"100%","100%",$('#top',$("#print").html());
var filePath="C:/a.jpg";
var fileName="<%=entry_id%>_master_bol_"+(i+1)+".jpg";
visionariPrinter.SET_SAVE_MODE("FILE_PROMPT",false);
visionariPrinter.SAVE_TO_FILE(filePath);
var imageBuffer=visionariPrinter.FORMAT("FILE:EncodeBase64",filePath);
$.ajax({
url:url,
data:'fileName='+fileName+'&imageBuffer='+encodeURIComponent(imageBuffer),
dataType:'text',
type:'post',
success:function(data){
alert("保存成功");
}
});
2、后台部分java代码
// 创建目录
File file = new File(fileUploadPath);
if (!file.exists()) {
file.mkdirs();
}
BASE64Decoder decoder = new sun.misc.BASE64Decoder();
String base64StringOfImage = request.getParameter("imageBuffer");
String fileName = StringUtil.getString(request, "fileName");
if (fileName != null && base64StringOfImage != null) {
/*
* step1 生成jpg
*/
byte[] bt = decoder.decodeBuffer(base64StringOfImage);
ByteArrayInputStream bais = new ByteArrayInputStream(bt);
BufferedImage bi1 = ImageIO.read(bais);
File imagefile = new File(fileUploadPath, fileName);// 可以是jpg,png,gif格式
ImageIO.write(bi1, "jpg", imagefile);// 不管输出什么格式图片,此处不需改动
注:按该思路完成的代码运行成功,但是该处只给出思路和部分代码,要结合自己环境和应用的框架编写自己的代码
Lodop文档资料下载:
相关文章推荐
- HTML转PDF,再转图片、影像文件,并压缩及上传到ftp服务器
- html input控件type为file上传文件、图片,及保存为原文件
- 图片按钮来代替文件上传控件(Freemaker,JQuery,HTML,CSS,JavaScript)
- [翻译]运用HtmlInputFile服务器控件上传多个文件
- asp.net2.0服务器控件(图片上传的服务器控件)
- 通过HtmlInputFile控件上传文件的类
- 就是那个上传的。按实际上传时的文件名称保存(不在是test.jpg了)图片可以改大小,图
- 通过HtmlInputFile控件上传文件的类
- 自定义服务器控件开发之3:自定义缩略图和水印的图片上传控件
- 正式发布 .Net2.0 大文件上传服务器控件
- 通过HtmlInputFile控件上传文件的类
- 自定义服务器控件开发之:文件上传控件
- 通过HtmlInputFile控件上传文件的类
- FileUpload 服务器控件示例,Asp.net上传文件,找不到上传文件的控件问题,(转)
- NET 用户控件 文件上传,并给图片文件加水印(增加文字水印文字设置)
- 关于Html动态添加上传文件控件inputFile(附件)及清除已选择的文件的几个方法
- 破晓之阳原创『上传图片』之HtmlInputFile控件
- 动态创建服务器控件,获取HTML输出(用于生成静态文件,简化页面,简化编程等)
- asp.net 通过HtmlInputFile控件上传文件的类
- asp.net 通过HtmlInputFile控件上传文件的类