HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2008
0108
AKIscreenの印刷?2解決


AKI

リンク

2008/1/8(Tue) 22:01:44|NO.13040

以前質問したのですが・・
screenで配置した文字列を印刷したいのですが
以前はダミーの画像に下記の命令で印刷したのですが
bmpsave "dame.jpg"
exec "dame.jpg",32
文字列フォントを
font "MS 明朝",10,16
にしてみたのですが文字のギザギザが取れません
やはり画像で出力しているせいでしょうか?
screenに配置されている通りにキレイに印刷するにはどうすれば良いですか?



この記事に返信する


TockMS

リンク

2008/1/14(Mon) 04:08:05|NO.13080

通りすがりに、興味を持ったのでいろいろ試してみました。

>screenで配置した文字列を印刷したい
とのことですが、これはmes命令で表示した文字列を印刷するということですか?
多分そうだと思いますので、そうだと仮定して進めさせていただきます。

まず、mes命令で表示した文字列というのは画像ですので、これをそのまま
印刷したい場合、画像として印刷するほかありません。
画像として印刷する場合APIを駆使して印刷することもできますが、(結構複雑です。
google等で検索すればあるはず。)今回AKIさんがダミー画像を利用する方法を
利用していらっしゃるので、その方法を使うこととします。

ギザギザは小さいものを拡大しているために起こります。それを解消するためには
大きくすれば良いのです。もちろん、この場合ただ大きくしただけでは字が大きくなり
ギザギザはそのままですので、全体の描画画面サイズを大きくし、印刷するときに
ページにあわせて縮小してもらうようにします。(印刷するときにVistaの場合、
自動的にページの大きさに合わせて縮小してくれます。)

サンプル(文字サイズは適当。。ためしに印刷してみて調節してください。)

buffer 2, 2520, 3564 ;用紙サイズは1 : 1.4 pos 100, 100 font "MS 明朝", 33, 16 ;文字サイズは大きく mes "印刷のテスト" bmpsave "dummy.jpg" exec "dummy.jpg", 32 stop

このサンプルではbufferに直接描画していますが、実際にはscreenに描画する際
bufferにも比率を何倍かにし描画し、bufferを印刷するようにすると良いかと思います。

尚、現在Vista環境しかないためほかの環境の確認はできませんので、
他の環境の場合にはうまくいかない場合もあるかもしれません。



…こんな解決法で良いのでしょうか。。
本当は文字列を簡単にプリンタに送れれば楽なんですが。。



AKI

リンク

2008/1/14(Mon) 08:44:20|NO.13081

こんにちは
やはり、キレイな文字としては印刷されませんね^^;
とりあえず次はExcelのセルに転記しての印刷を試みます。
myname = "dame.xls"
fname = dir_cur+"\\"+myname ; フルパスを作成する newcom xlApp, "Excel.Application" xlApp("Visible") = 1; Excelウィンドウは非表示 xlApp("DisplayAlerts") = 0; 警告メッセージを表示させない xlBooks = xlApp("Workbooks") ; Workbooks コレクション取得 xlBooks->"Open" fname ; 指定ファイルを開く xlBook = xlBooks("Item",myname) ; book取得 xlSheet = xlBook("Worksheets","Sheet1") ; Sheet取得
PS:それならExcelのマクロフォームで作れば・・・と頭によぎる



ONION software Copyright 1997-2021(c) All rights reserved.