您的位置:首页 > Web前端 > HTML

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文档资料下载:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: