ブラウザ枠・個別ブラウザ枠から印刷No.40895
(-L-) さん 23/10/26 22:42
 
ソースをエディタ画面で書き、その結果がブラウザ枠(個別ブラウザ枠)に表示され
ています。
ブラウザ枠(個別ブラウザ枠)にフォーカスしてからCTRL+Pして印刷。
PDFに出力したかったのですが、ソースが印刷されただけのPDFでした。

ああ、そうか。CTRL+Pでは、エディタ画面の印刷しかできないのかと気が付きました。
ブラウザ枠・個別ブラウザ枠の内容が印刷(私の場合はプリンタドライバになってい
るPDF出力)できる方法は何かありますでしょうか。

[ ]
RE:40895 ブラウザ枠・個別ブラウザ枠からNo.40896
秀丸担当 さん 23/10/27 10:13
 
ブラウザ枠は、秀丸エディタの印刷コマンドは確かにできないです。
やる場合、ブラウザ枠の右上の▼ボタンにある[関連付けで開く(Y)]をしてから、普
通のブラウザで印刷するしかなさそうです。
キー操作なら、Shift+Tab(またはキー割り当てしたコマンド)でブラウザ枠にフ
ォーカス移動し、アプリケーションキー(キーボード右側)でメニューを出してY、
そしてブラウザのCtrl+Pみたいになると思います。

file: から始まるURLであれば、以下のようなマクロで印刷を呼び出すことができま
した。

browserpanecommand("""
  {
    "target": "_common",
    "uri": "javascript:window.print();"
  }
  """);  //↑個別の場合"_each"
endmacro;

でもウィンドウが小さい場合、操作が困難になってしまうようです。(edgeもそうで
すが)
調べてみたら、edgeのコマンドラインでmsedge.exe --headless --print-to-pdf="...
" みたいにして操作できるようでした。

//edgeのコマンドラインの例
//$targetPdf="c:\\folder\\test.pdf";
$targetPdf=browsefile("","*.pdf");
$sourceUri = browserpanecommand("""
  {
    "target": "_common",
    "get": "uri"
  }
  """);  //↑個別の場合"_each"
if($targetPdf!="" && $sourceUri!=""){
  runsync2 "\"C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedge.
exe\"  --headless --print-to-pdf=\""+$targetPdf+"\" "+$sourceUri;
  //そのまま開く場合
  //openbyshell $targetPdf;
}
endmacro;

[ ]