ブラウザの印刷時に一時的にレイアウトを変える

ブラウザの印刷機能で、表示画面を印刷するときに印刷用にjavascriptで一時的にレイアウトを変えるために

WindowEventHandlers.onbeforeprint – Web API Interfaces | MDN

を使ってみました

  function shrink() {
    $('#grid').setGridWidth(900);
  }
  window.onbeforeprint = shrink
  function revertback() {
    $('#grid').setGridWidth(1200);
  }
  window.onafterprint = revertback

メソッドは適当ですが、印刷前に onbeforeprint を呼んで幅を狭めて
印刷後に onafterprint に幅を戻してみました

javascriptをDOMを動的に書いて、CSSでの制御がつらいときに使いました