To print more than one image:
Code:
function ImagePrinter() {
var i = 0;
var end = arguments.length;
this.initImages();
this.initOptions();
while (i < end) {
this.addImage( arguments[i] );
i++;
}
}
ImagePrinter.prototype = {
images : null,
options : null,
window : null,
addImage : function(src) {
return this.images.push(src) - 1;
},
initImages : function() {
this.images = [];
},
initOptions : function() {
this.options = [
"width=400",
"height=400",
"scrollbars=yes",
"location=no",
"toolbar=no"
];
},
closeWindow : function() {
if (this.window && this.window.close) {
this.window.close();
this.window = null;
}
},
getImagesSource : function() {
var i = 0;
var end = this.images.length;
var src = "";
while (i < end) {
src += '<img src="'+this.images[i]+'">';
i++;
}
return src;
},
getOptions : function() {
return this.options.join(",");
},
openWindow : function() {
if (!this.window) {
this.window = window.open("", "_blank", this.getOptions() );
}
this.window.focus();
},
print : function() {
if (this.window) {
this.closeWindow();
}
this.openWindow();
this.window.document.write( this.getImagesSource() );
this.window.document.close();
this.window.onload = function() {
print();
};
}
};
var p1 = new ImagePrinter("img1.jpg", "img2.jpg", ... , "imgN.jpg");
p1.addImage("img.jpg");
p1.addImage("cereal.jpg");
Then in an onclick for a link or button, just call p1.print().
Bookmarks