выбор нескольких изображений и печать выбранных изображений с использованием jquery - PullRequest
0 голосов
/ 06 января 2020

У меня есть тег set изображения div, как показано ниже:

function printImg() {
  pwin = window.open(document.getElementById("mainImg").src,"_blank");
  window.print();
}
$(function () {
    $("#gallery > img").click(function () {
        if ($(this).data('selected')) {
        $(this).removeClass('selected');
        $(this).data('selected', false);
    } else {
        $(this).addClass('selected');
        $(this).data('selected', true);
    }
    });
    var selectedImageArray = [];
$('#gallery > img').each(function () {
    if ($(this).data('selected')) {
        selectedImageArray.print(this);
    }
});
 window.onafterprint = function(){
      window.location.reload(true);
 }

});
img.selected {
    border: 3px solid green;
}
img:hover {
    cursor: pointer;
}
imagesize(180)->generate($user->emp_code[$i])) !!} ">

Мне нужно выбрать изображение, когда пользователь нажимает на него, я добавил скрипт для этого, и он работает, но я нажимаю кнопку печати, он не печатает qrcode image, тем временем печатает всю страницу.

Мне также нужно проверить, выбрано ли изображение, и пройти через значение массива, чтобы напечатать выбранные изображения + имя данных.

Ответы [ 3 ]

0 голосов
/ 06 января 2020

Вы вызываете print в главном окне, вызываете print из окна, которое вы открыли

function printImg() {
  pwin = window.open(document.getElementById("mainImg").src,"_blank");
  pwin.print();
}
0 голосов
/ 07 января 2020

Не думаю, что с вашими кодами возникнут какие-либо проблемы,

, попробуйте это и дайте мне знать

Firefox:

enter image description here


Google Chrome:

enter image description here

0 голосов
/ 06 января 2020

Window.print () всегда печатает все текущее окно. Вы можете обойти это, добавив выбранные изображения во всплывающее окно, а затем распечатать это всплывающее окно.

popup = window.open();
popup.document.write("imagehtml");
popup.focus(); //required for IE
popup.print();

Вы можете сделать это одно окно для одной фотографии, но, конечно, вы также можете добавить несколько фотографий на один экран и затем распечатать его.

Ваш второй вопрос требует массив с выбранными изображениями. Поскольку вы используете jQuery, вы можете просто получить их с помощью

allSelectedImages = $('.selected');

. Вы можете l oop в этом массиве вызвать функцию .data (), чтобы получить все атрибуты данных!

Надеюсь, это поможет!

...