|
たにきさん今日は、ひろです。
> そこでパブリッシャの設定か何かで、文字コードがISO-2022-JPならこのテンプ
> レート、それ以外なら別のテンプレートを自動的に使うようにはできないでしょ
> うか。
> もしやり方があるなら教えていただけるとうれしいです。
標準で実装するとなると、鶴亀/秀丸パブリッシャーの何方で設定をするの
かなかなか難しいところですね。現状でやり方は 2 つ有ります。
(1) 秀丸パブリッシャーを使うのを止め、「秀丸の動作環境」→「印刷」の
「印刷処理方法」は「新タイプ」にする
※お使いの OS の関係で、他のタイプは上手くいかない恐れ有り
(2) マクロから秀丸パブリッシャーを呼び出すことにより、文字コードごとに
テンプレートを変更
下記のマクロを使ってください
//鶴亀で文字コード毎にテンプレートを変更して、秀丸パブリッシャーを起動
//Content-Type: text/plain; charset=us-ascii
//なら使用するテンプレートは us-ascii を使用する。
// もしも字コードと同名のテンプレートがなければ、
//「標準のテンプレート」を使用する
loaddll "tkinfo.dll";
call GetLang;
openreg "CLASSESROOT",
"CLSID\\{3790E08E-DA26-41E2-B6B7-A2C2DED41C2F}\\InprocServer32";
if( ! result ) {
message "秀丸パブリッシャーがインストールされていません。";
freedll;
endmacro;
}
$$path = getregstr("");
closereg;
loaddll $$path;
if( !result ) {
message
"HidemaruApi.dllのロードに失敗しました。\nファイル名 = " + $$path;
endmacro;
}
if(!existfile(leftstr($$path, strlen($$path) - 15)
+ "Template\\" + $$return + ".hpt"))$$return = "標準のテンプレート";
#tmp = dllfunc("PrintDialog", hidemaruhandle(0),
$$return, selecting, 0, 0, 1, 0 );
freedll;
endmacro;
GetLang://言語情報取得
$$return = dllfuncstr( "CurrentHeader","X-Body-Content-Type");
if( $$return == "" )
$$return = dllfuncstr( "CurrentHeader","Content-Type");
$$return = dllfuncstr( "ToLower",$$return );
$$return = rightstr($$return,strlen($$return)
- strstr($$return,"charset=") - 8);
##return = strstr($$return, ";");
if(##return != -1)$$return = leftstr($$return, ##return);
call DelQuote $$return;
return $$return;
DelQuote://double quotation で括られていたら削除
if( ascii( $$1 ) == 0x22 ){
if( ascii( rightstr( $$1, 2 ) ) >= 0xFF00 )return $$1;
if( ascii( rightstr( $$1, 1 ) ) != 0x22 )return $$1;
else return midstr( $$1, 1, strlen( $$1 ) - 2 );
}
return $$1;
|
|