2017-04-19 3 views
3

私はいくつかのHTMLコンテンツと画像を持っており、ボタンをクリックするとそのページを印刷します。私が最初に印刷するとき、印刷プレビューページは空であり、2回目は正常です。最初にページを印刷しない理由を教えてください初めてクロムブラウザで印刷が行われない

イメージソースはベース64形式です。だから、大きなコンテンツのため、私はコードスニペットを追加することができません、デモのリンクで確認してください。

<input type="button" id="printImage" onclick=printImage() value="print" /> 
function printImage() { 
    var htmlContent = "The html code in stack-overflow exceeded. So please check with demo link for html content"; 
    var win = window.open(); 
    win.document.write(htmlContent); 
    win.document.close(); 
    win.focus(); 
    win.print(); 
    win.close(); 
} 

sample demo link

誰もがこの上で私を助けて...

答えて

3
win.document.write(htmlContent); 
win.document.close(); 
win.focus(); 
setTimeout(function(){win.print();win.close();}, 10); 
0

var win = window.open('', '', 'toolbar=0'); 
    win.document.write(htmlContent); 
    win.document.onload = function() { 

    win.document.close(); 
    win.focus(); 
    win.print(); 
    win.close(); 
    }; 

の変化を、それを試してみてください

これは動作します。ロードすると、次の項目を実行する前にページがロードされていることを確認します。

0
var win = window.open('', '', 'toolbar=0'); 
    win.document.write(htmlContent); 
    win.document.close(); 
    win.focus(); 
    setTimeout(function() { 
    win.print();},50); 
    window.close(); 
     } 

これは

(テスト済み)...あなたのbase64で画像をHTMLにバインドすることができ.soの実行印刷前に50ミリ秒を待ちます
関連する問題