* 仕様書
[REFS[
- [12] [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2014-04-03 03:44:44 +09:00]] 版)
- [15] [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2014-04-03 03:44:44 +09:00]] 版)
- [17] [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2014-04-03 03:44:44 +09:00]] 版)
]REFS]
* 物理形
[13] [[利用者エージェント]]は[[利用者]]に対して[DFN[[RUBYB[[[物理形を得る]]]@en[obtain a physical form]]]]
(または物理形の[RUBYB[表現]@en[representation]]を得る) 機会を要求できるようにすることが[[期待されています]] [SRC[>>12]]。
ここで物理形を得るとは例えば[[印刷]]のことを、物理形の表現を得るとは例えば [[PDF]] への変換のことをいいます
[SRC[>>15]]。
[19] [[利用者]]が[[物理形を得る]] (または表現を得る) 機会を要求した時には、 [[printing steps]]
を走らせる[['''べきです''']] [SRC[>>15]]。
;; [30] 「物理形を得る」が >>19 と >>26 で異なる意味で使われているように見えます。
[14] 実際に[[物理形を得る]] (または表現を得る) 際には、当該 [CODE(DOMi)@en[[[Document]]]]
の[[印刷]][[媒体]]用の新しい[[レンダリング]]を作成することが[[期待されています]] [SRC[>>12]]。
* [CODE(JS)@en[window.print]] (DOM)
[16] [CODE(DOMi)@en[[[Window]]]] [[インターフェイス]]の [DFN[[CODE(DOMm)@en[[[print]]]]]]
は、[[引数]]なし、[[返り値]]なしの[[メソッド]]です [SRC[>>15]]。
[18] [CODE(DOMi)@en[[[Document]]]] が [[ready for post-load tasks]] 状態なら、
同期的に [[printing steps]] を実行します。そうでないなら、 [DFN[[[print when loaded]]]]
フラグを設定します。 [SRC[>>15]]
* printing steps
[20] [DFN[[[printing steps]]]] とは、次の手順です [SRC[>>15]]。
[FIG[
= [21] [[利用者]]にメッセージを表示するか、ここで終わるか、あるいはその両方を実行して構いません。
=- [22] 例えば[[キオスクモード]]では黙って無視して構いません。
=- [23] 例えば[[モバイル機器]]の[[ブラウザー]]で印刷機がないときはメッセージを出してから「[[PDF]] で保存」
オプションを提示しても構いません。
= [24] 印刷される[[文書]]とその[[入れ子閲覧文脈]]の [CODE(DOMi)@en[[[Window]]]] で
[CODE(DOMe)@en[[[beforeprint]]]] [[単純イベントを発火]]します。
= [25] [[ストレージミューテックスを開放]]します。
= [26] [[物理形を得る]] (または表現を得る) 機会を提供する[['''べきです''']]。
=- [27] [[利用者]]がこれを受け付けるか断るかするまで待って[['''構いません''']]。待つ場合は [[pause]] しなければ[['''なりません''']]。
=- [28] 待たない場合であっても、この時点での[[文書]]の状態を使わなければ[['''なりません''']]。
= [29] 印刷される[[文書]]とその[[入れ子閲覧文脈]]の [CODE(DOMi)@en[[[Window]]]] で
[CODE(DOMe)@en[[[afterprint]]]] [[単純イベントを発火]]します。
]FIG]
* 歴史
[1]
[CITE[Printing the Web: Solutions and Techniques | Smashing Magazine]] ([CODE[2007-02-24 00:44:42 +09:00]] 版)
([[名無しさん]] [WEAK[2007-02-23 16:09:40 +00:00]])
[2]
[CITE[TRANS - 印刷用CSSをもっとよくするための4つのTips。]] ([CODE[2007-04-22 03:28:49 +09:00]] 版)
([[名無しさん]] [WEAK[2007-04-23 01:23:19 +00:00]])
[4]
[CITE@de[W3C Print Symposium 2006]] ([CODE[2006-10-23 20:51:46 +09:00]] 版)
[5] [CITE[CSS Print Profile]]
( ([TIME[2013-03-14 20:50:03 +09:00]] 版))
[6] [CITE@en[The New Publishing - A W3C Workshop on the Open Web Platform and the Traditional Print Publishing Industry]]
( ([TIME[2013-10-04 08:21:37 +09:00]] 版))
[7] [CITE['''['''whatwg''']''' window.print() when printing is not supported]]
([TIME[2010-03-23 11:24:14 +09:00]] 版)
[8] [CODE(HTMLa)@en[[[onload]]]] で [CODE(JS)@en[[[window]].[[print]]()]]
する頁がありました。うざいですね。
[CODE(JS)@en[[[window]].[[open]]()]]
と同じで制限するべきではないでしょうか。
([[名無しさん]] [WEAK[2007-07-01 12:42:56 +00:00]])
[REFS[
- [9] [CITE[Bug 43658 – Calling window.print() before the page is loaded results in a blank printed page]]
( ([TIME[2011-01-22 02:20:14 +09:00]] 版))
- [10] [CITE[''''''[''''''whatwg'''''']'''''' Browsers delay window.print() action until page load finishes]]
( ([TIME[2011-08-03 08:57:12 +09:00]] 版))
]REFS]
- [11] [CITE@ja[はてなブックマーク - コメントなし - 2009年12月24日]]
([TIME[2010-01-01 12:19:17 +09:00]] 版)