問題は、モーダルボディ内のすべてのコンテンツを表示するには、ユーザーが下にスクロールする必要があることです。ただし、モーダルを印刷すると、印刷される部分は表示可能な部分のみです。モーダル全体のコンテンツを印刷したい。次のページですべてのコードを試しましたが、モーダル全体を印刷するものはありません。
次のリンクからprintThis.jsをダウンロードして、HTMLに含めます。 https://github.com/jasonday/printThis/blob/0a7f799693af8a8303bf0b8df0efc80c2694af81/printThis.js
印刷するコンテンツを次のdivでラップします。このdiv以外のすべては印刷されません。
<div id="modalDiv">
..content to print..
</div>
次のjqueryを呼び出して、表示できないコンテンツを含むすべてのコンテンツを印刷します。複数のcssファイルがある場合は、cssファイルを配列に含めることができます。
$("#modalDiv").printThis({
debug: false,
importCSS: true,
importStyle: true,
printContainer: true,
loadCSS: "../css/style.css",
pageTitle: "My Modal",
removeInline: false,
printDelay: 333,
header: null,
formValues: true
});
Anglejs UI bootstrapライブラリで同じ問題に直面していました。上記のリンクを試してみましたが、運はありません。モーダルが[〜#〜] longer [〜#〜]ビューポートより:
@media print {
.modal {
position: absolute;
left: 0;
top: 0;
margin: 0;
padding: 0;
overflow: visible!important;
}
}
注意: position:absolute
およびoverflow:visible
are [〜#〜] must [〜#〜] have。これにより、angularUI-Bootstrap-Modalを印刷する際の問題が解決されることを願っています。
@media print
を使用してCSSで簡単にできると思います:
開いている場合bootstrap=モーダルウィンドウ、モーダルのコンテンツ(複数のページが可能)、その他の場合はウィンドウのコンテンツが印刷されます。
@media print {
/* on modal open bootstrap adds class "modal-open" to body, so you can handle that case and hide body */
body.modal-open {
visibility: hidden;
}
body.modal-open .modal .modal-header,
body.modal-open .modal .modal-body {
visibility: visible; /* make visible modal body and header */
}
}
また、印刷用にモーダルのフッターにボタンを追加できます。
<div class="modal-footer">
<button type="button" class="btn btn-default" onclick="js:window.print()">print modal content</button>
</div>
@Abu Sulaiman:これを使用しても、モーダルで表示されている部分のみが印刷されます。特にコンテンツがオーバーフローしているときに非表示部分も表示するには、removeInline: true
ちょうど下のように。私にとってはうまくいきます。
次のリンクからprintThis.jsをダウンロードして、HTMLに含めます。 https://github.com/jasonday/printThis/blob/0a7f799693af8a8303bf0b8df0efc80c2694af81/printThis.js
印刷するコンテンツを次のdivでラップします。このdiv以外のすべては印刷されません。
次のjqueryを呼び出して、表示できないコンテンツを含むすべてのコンテンツを印刷します。複数のcssファイルがある場合は、cssファイルを配列に含めることができます。
$("#modalDiv").printThis({
debug: false,
importCSS: true,
importStyle: true,
printContainer: true,
loadCSS: "../css/style.css",
pageTitle: "My Modal",
removeInline: true,
printDelay: 333,
header: null,
formValues: true
});