1

サーバーで生成した HTML ページを印刷しようとしNode.jsています。AJAX リクエストへの応答としてページをクライアント側に持ってきて、それをjavascript変数に入れました。

var resp_json = printRequest.getResponseJson();

今、送信されるDOMオブジェクトではなく、レンダリングされたHTMLページ(タグなし)を印刷しようとしています。

について読みましwindow.print()たが、ブラウザの現在のページのみを印刷します。誰でも私にアプローチする方法を提案できますか。

また、ノードで HTML ページを生成することは正しいアプローチであるか、他の種類のドキュメントであるべきです。ページはノードで動的に生成され、最終結果は印刷されたドキュメントになるはずです。事前にサンクス!!

PS私は閉鎖ライブラリを使用しています。理由は聞かないでください。それは私にとってすでに決定されています。

PPS 私はかなり新しいのでjavascriptnode.js長い講義をすることを恐れないでください.私はすべての耳です!!

4

4 に答える 4

3

ポップアップなし

function printHTMLString(htmlString) {
     var originalDocument = document.body.innerHTML;    
     document.body.innerHTML = htmlString;    
     window.print();   
     document.body.innerHTML = originalDocument;
}

ポップアップあり

var popupWIndow = window.open('','','width=200,height=100');    
popupWIndow.document.write(jsonResponse);    
popupWindow.window.print();

何らかの理由で機能しない場合は、print() の前に次の行を追加します。

popupWindow.window.location.reload(); 

また、印刷する前にjsonオブジェクトを文字列に変換する必要があります

JSON.stringify(jsonObject)

ただし、これらすべてが機能するためには、ブラウザーが HTML ページとして読み取ってレンダリングできる必要があります。JSON オブジェクトは機能しません。

于 2013-06-01T09:16:15.750 に答える
1

https://code.google.com/p/wkhtmltopdf/を使用できます

それを使用すると、URL から直接またはファイルによって、どのページからでも PDF をレンダリングできます。ページをPDFとしてレンダリングし、PDF全体を印刷できます。

注意: 1 ページを印刷することも、複数のページを連結することもできます。

于 2013-06-01T09:12:46.087 に答える
0

一般的な方法は、印刷するコンテンツを含む新しいブラウザ ウィンドウを開き、window.print() を呼び出すことです。

于 2013-06-01T09:11:31.697 に答える