2013-12-16 4 views
4

Я хочу распечатать изображение с помощью javascript. Таким образом, я использовал этот код, чтобы открыть изображение в новом окне и печати:Распечатать изображение с помощью Javascript

win = window.open(img.src,"_blank"); 
win.onload = function() { win.print(); } 

Это прекрасно работает с файлом изображения по умолчанию:

<img id="image1" src="myimage.jpg"> 

Но когда я заменить изображения по умолчанию с данными изображения читать диск:

var fileElem = document.getElementById("fileElem").files[0]; 
var reader = new FileReader(); 
reader.onload = function(event) { 
    img.src = event.target.result; 
}; 
reader.readAsDataURL(fileElem); 

а затем открыть новое окно & печать - изображение apears штраф в новом окне, но никакие операции печати не выполняется. Как заставить win.print() работать?

+0

* t нет печать работа делается * Что это значит? Диалоговое окно печати не отображается? – epascarello

+0

Да, не печатайте диалоговые окна во втором сценарии. – Joe

+0

Зачем использовать новое окно? CSS Print Media, скрыть все, кроме изображения при печати. – epascarello

ответ

4

OK!

I'v попробовал это на Chrome, и это хорошо работает:

<html> 
    <head> 
     <script language="javascript" type="text/javascript"> 
      function printImage() { 
       var fileElem = document.getElementById("fileElem").files[0]; 
       var reader = new FileReader(); 
       reader.onload = function(event) { 
        var html = "<html><head>" + 
         "</head>" + 
         "<body style ='-webkit-print-color-adjust:exact;'>"+ 
         "<img src=\"" + event.target.result + "\" onload=\"javascript:window.print();\"/>" + 
         "</body>"; 
        var win = window.open("about:blank","_blank"); 
        win.document.write(html); 

       }; 
       reader.readAsDataURL(fileElem); 
      } 
     </script> 
    </head> 
    <body> 
     <input type="file" id="fileElem"/> 
     <button onclick="printImage()">PRINT</button> 
    </body> 
</html> 

С уважением.

0

Я не уверен, потому что я не знаю, весь код, но, возможно, это может работать:

var fileElem = document.getElementById("fileElem").files[0]; 
var reader = new FileReader(); 
reader.onload = function(event) { 
    var win = window.open(event.target.result,"_blank"); 
    win.onload = function() { win.print(); } 
}; 
reader.readAsDataURL(fileElem); 

Вам не нужно больше «IMG» тег.

+0

Спасибо, я тестировал этот код, но поведение такое же (я тестировал с Google Chrome) – Joe

Смежные вопросы