Bootstap5のウェブページをブラウザで印刷したときのBreakpoint
ホームページを印刷するときになるべく見た目通りに印刷するにはどうしたらいいか調査したときの覚書。
環境: Google Chrome 92, Bootstrap 5.0.2
結局、ブラウザ印刷はB3用紙(364 x 515 mm)とCSSで定義することにした。
@page {
margin: 5mm;
size: 364mm 515mm;
}
※ @pageのsizeはChromeとEdgeで有効。Firefoxは効かない。
印刷したときの横幅(Bootstrap Breakpoint)
B3(364 x 515 mm)の場合
B3の横幅364mmを(両端のマージン10mm引いて)pixelに変換すると
ディスプレイ: (364㎜ - 10mm) * 0.04inch * 72dpi = 1020px
印刷: (364㎜ - 10mm) * 0.04inch * 96dpi = 1359px
CSSの@media(BootstrapのBreakpoint)は72dpiで計算される。
この場合、BootstrapのLarge(lg)が適用。
その後、印刷用に横幅1359pxで再描画。
だからブラウザで印刷したときは見た目とBreakpintの位置に違和感がある。
(あくまでも実験した結果による推測です)
A4(210 x 297 mm)の場合
ディスプレイ: (210㎜ - 10mm) * 0.04inch * 72dpi = 576px
印刷: (210㎜ - 10mm) * 0.04inch * 96dpi = 768px
BootstrapのSmall(sm)が適用されて横幅768pxで印刷。
A3(297 x 420 mm)の場合
ディスプレイ: (297㎜ - 10mm) * 0.04inch * 72dpi = 827px
印刷: (297㎜ - 10mm) * 0.04inch * 96dpi = 1102px
BootstrapのMedium(md)が適用されて横幅1102pxで印刷。