add logo in printing pdf label

This commit is contained in:
Cayo Puigdefabregas 2022-06-09 16:57:15 +02:00
parent 3431bed49e
commit dadfbdd605
1 changed files with 64 additions and 33 deletions

View File

@ -75,6 +75,7 @@ function load_settings() {
if (data.logo) { if (data.logo) {
$("#logoCheck").prop('checked', data.sid); $("#logoCheck").prop('checked', data.sid);
previewLogo(data.logoImg); previewLogo(data.logoImg);
$("#logoCheck").prop('checked', data.logo);
} else { } else {
$("#logoCheck").prop('checked', false); $("#logoCheck").prop('checked', false);
$("#logoCheck").prop('disabled', 'disabled'); $("#logoCheck").prop('disabled', 'disabled');
@ -164,76 +165,106 @@ function printpdf() {
var line = 5; var line = 5;
var height = parseInt($("#height-tag").val()); var height = parseInt($("#height-tag").val());
var width = parseInt($("#width-tag").val()); var width = parseInt($("#width-tag").val());
var img_side = Math.min(height, width) - 2*border; var logo = '';
max_tag_side = (Math.max(height, width)/2) + border; var _rel = 1;
if (max_tag_side < img_side) { if ($('#logoCheck').prop('checked')) {
max_tag_side = img_side + 2*border; logo = $("#logo-preview img").attr("src");
}; if (logo) {
min_tag_side = (Math.min(height, width)/2) + border; var _img = new Image();
_img.src = logo;
_rel = parseInt(_img.height)/parseInt(_img.width);
}
}
var img_side = (width/2) - 2*border;
var last_tag_code = ''; var last_tag_code = '';
var height_need = border*2;
if (logo) {
height_need += width*_rel + border;
};
if ($("#qrCheck").prop('checked')) {
height_need += img_side;
} else if ($("#dhidCheck").prop('checked')) {
height_need += line;
};
if ($("#sidCheck").prop('checked')) { if ($("#sidCheck").prop('checked')) {
height += line; height_need += line;
}; };
if ($("#serialNumberCheck").prop('checked')) { if ($("#serialNumberCheck").prop('checked')) {
height += line; height_need += line;
}; };
if ($("#manufacturerCheck").prop('checked')) { if ($("#manufacturerCheck").prop('checked')) {
height += line; height_need += line;
}; };
if ($("#modelCheck").prop('checked')) { if ($("#modelCheck").prop('checked')) {
height += line; height_need += line;
};
height = Math.max(height, height_need);
if (width > height) {
var pdf = new jsPDF('l', 'mm', [width, height]);
} else {
var pdf = new jsPDF('p', 'mm', [height, width]);
}; };
var pdf = new jsPDF('l', 'mm', [width, height]); var hlogo = 0;
$(".tag").map(function(x, y) { $(".tag").map(function(x, y) {
if (x != 0){ if (x != 0){
pdf.addPage(); pdf.addPage();
}; };
var space = line + border; var hspace = border;
if ($("#qrCheck").prop('checked')) {
space += img_side;
}
var tag = $(y).text(); var tag = $(y).text();
last_tag_code = tag; last_tag_code = tag;
if (logo) {
var wlogo = (width - border*2);
hlogo = wlogo*_rel;
pdf.addImage(logo, 'PNG', border, hspace, wlogo, hlogo);
hspace += hlogo + border;
};
if ($("#qrCheck").prop('checked')) { if ($("#qrCheck").prop('checked')) {
var imgData = $('#'+tag+' img').attr("src"); var imgData = $('#'+tag+' img').attr("src");
pdf.addImage(imgData, 'PNG', border, border, img_side, img_side); pdf.addImage(imgData, 'PNG', border, hspace, img_side, img_side);
hspace += img_side;
} else {
hspace += line;
}; };
if ($("#dhidCheck").prop('checked')) { if ($("#dhidCheck").prop('checked')) {
if ($("#qrCheck").prop('checked')) { pdf.setFontSize(15);
pdf.setFontSize(15); if ($("#qrCheck").prop('checked')) {
pdf.text(tag, max_tag_side, min_tag_side); var h = hspace + border - img_side/2;
} else { var w = border*2 + img_side;
pdf.setFontSize(15); pdf.text(tag, w, h);
pdf.text(tag, border, space); } else {
space += line; pdf.text(tag, border, hspace);
} }
hspace += line;
}; };
if ($("#sidCheck").prop('checked')) { if ($("#sidCheck").prop('checked')) {
var sn = $(y).data('sid'); var sn = $(y).data('sid');
pdf.setFontSize(15); pdf.setFontSize(12);
pdf.text(sn, border, space); if (sn) {
space += line; pdf.text(sn, border, hspace);
hspace += line;
}
}; };
if ($("#serialNumberCheck").prop('checked')) { if ($("#serialNumberCheck").prop('checked')) {
var sn = $(y).data('serial-number'); var sn = $(y).data('serial-number');
pdf.setFontSize(12); pdf.setFontSize(12);
pdf.text(sn, border, space); pdf.text(sn, border, hspace);
space += line; hspace += line;
}; };
if ($("#manufacturerCheck").prop('checked')) { if ($("#manufacturerCheck").prop('checked')) {
var sn = $(y).data('manufacturer'); var sn = $(y).data('manufacturer');
pdf.setFontSize(12); pdf.setFontSize(12);
pdf.text(sn, border, space); pdf.text(sn, border, hspace);
space += line; hspace += line;
}; };
if ($("#modelCheck").prop('checked')) { if ($("#modelCheck").prop('checked')) {
var sn = $(y).data('model'); var sn = $(y).data('model');
pdf.setFontSize(8); pdf.setFontSize(8);
pdf.text(sn, border, space); pdf.text(sn, border, hspace);
space += line; hspace += line;
}; };
}); });