Как напечатать изображение с помощью JavaScript - PullRequest
2 голосов
/ 09 декабря 2011

Я пытаюсь напечатать ASP.NET Image, используя пример здесь .

Когда я использую приведенный выше пример для div, он работает, но я не могуприспособьте это, чтобы напечатать что-нибудь еще.Как я могу заставить его напечатать Image?Должен ли я обернуть Image в div и заменить часть ".text ()" в скрипте на что-то другое?

Ответы [ 5 ]

7 голосов
/ 09 декабря 2011

Потому что вы передаете неправильный параметр в функцию печати.Распечатать что-то в JavaScript так же просто, как вызвать метод window.print();.Чтобы проверить это, просто используйте средства разработчика вашего браузера и напишите в его консоли:

window.print();

Теперь, когда вы хотите напечатать что-то конкретное, у вас есть два способа:

  1. Создайте специальную таблицу стилей для печати на той же странице, которая скрывает другие элементы и показывает только указанный вами регион.
  2. Или откройте новое окно, скопируйте туда, что вы хотите, затем распечатайте его.

Теперь вы можете написать свою собственную функцию:

function printImage(image)
{
        var printWindow = window.open('', 'Print Window','height=400,width=600');
        printWindow.document.write('<html><head><title>Print Window</title>');
        printWindow.document.write('</head><body ><img src=\'');
        printWindow.document.write(image.src);
        printWindow.document.write('\' /></body></html>');
        printWindow.document.close();
        printWindow.print();
}

var image = document.getElementById('image');
printImage(image);

, и вы также можете увидеть эту функцию в действии здесь .

Просто дайте браузеру открыть всплывающее окно, а также обратите внимание, что я только передаю значение src элемента изображения в новое окно.

2 голосов
/ 19 апреля 2012

Да.

Следующий java-скрипт поможет вам напечатать изображение в элементе управления изображением.

var printContent = document.getElementById('divImage');
var img = document.getElementById('imgMain');

var windowUrl = 'MyPage.aspx';
var uniqueName = new Date();
var windowName = "MyPage" + uniqueName.getTime();

printWindow = window.open(windowUrl, windowName, 'location=1,status=1,scrollbars=1,width=800,height=600');

printWindow.document.write("<div style='width:100%;'>");
printWindow.document.write("<img id='img' src='" + img.src + "'/>");
printWindow.document.write("</div>");

printWindow.document.close();
printWindow.focus();
printWindow.print();
printWindow.close();
return false;
0 голосов
/ 20 октября 2015

это лучшее решение, которое также отлично работает в Google Chrome:

   var printWindow = window.open('', 'Print Window', 'height=533,width=800');
        printWindow.document.write('<html><head><title>Print Window</title>');

        printWindow.document.write("<script src='script/jquery-1.11.3.min.js' type='text/javascript'><\/script>");


        printWindow.document.write("<script type='text/javascript'>");

        printWindow.document.write("var DoPrint = false;");
        printWindow.document.write("$(document).ready(function () {");

        printWindow.document.write("DoPrint = true;");

        printWindow.document.write("});");

        printWindow.document.write("<\/script>");


        printWindow.document.write('</head><body ><img src=\'');
        printWindow.document.write(document.getElementById('image').src);
        printWindow.document.write('\' /></body></html>');
        printWindow.document.close();


        function Print() {

            if (typeof printWindow.DoPrint != "undefined" && printWindow.DoPrint == true) {

                clearInterval(PrintintervalNumber);

                printWindow.print();
                printWindow.close();

            }

        }


        PrintintervalNumber = setInterval(Print, 1000);
0 голосов
/ 09 декабря 2011

Почему бы просто не сделать это так просто?

<input type="button" value="Print Div" onclick="PrintElem('<img src=myimage.jpg>')" /> 

и затем вызовите Popup следующим образом: Всплывающие (эль);

(вам не нужна эта функция Popup (), если вы передаете изображение для печати таким образом)

0 голосов
/ 09 декабря 2011

Да, вместо использования .text(), вы используете .html(), где вы передаете <img /> (включая источник курса) в поддельный документ, готовый к печати. ​​

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...