[WR3.0] WROGetReqWidth() について
-
黒木ゲスト
お世話になっております。
テキストオブジェクトにデータをセット後、
WROGetReqWidth()APIが返す値でオブジェクトの水平幅を
再設定し、印刷しています。
ところが、WROGetReqWidth()APIの返す値が
テキストオブジェクトプロパティ(CharFeedMode)の設定に
よって異なります。
プロパティ「0:通常」の場合は問題ないのですが、
「1:半角1/2送り」の場合で印刷すると最後の文字が
若干欠けます。実際よりも値が短いようです。
プレビュー上は、欠けずに表示されるのですが...。
処理手順は以下の通りです。
1.WROSetText()APIでテキストオブジェクトへデータをセット。
2.プリンターないしプレビューオブジェクトの
WRxFormatReport()APIを実行。
3.WROGetReqWidth()APIで取得した値で
WROSetWidth()APIを実行し、Widthを再設定。
手順に問題があれば、ご指摘願います。
環境
Delphi4[UP3] + Win98SE
WRENGN30.DLL 3.2.0.15
WRCTRL30.DLL 3.0.0.16
WRCIF30.DLL 3.1.0.4
Printer EPSON LP-8300F(Driver Ver:2.02fm)
Printer CANON LBP-1610(Driver Ver:8.41)
黒木ゲスト
お世話になっております。
追加情報です。
テキストオブジェクトのプロパティ値です。
Font : MSゴシック(サイズ:11)
CharPitch : 3.39
CharFeedMode : 1-半角1/2
CharAdjustMode : 左基点
TextLayoutHorz : 左寄せ
以上、宜しくお願いします。
hirayamaゲスト
お世話になります。
ただいま検証中ですのでもうしばらくお待ちください。
以上よろしくお願いいたします。
hirayamaゲスト
たいへん長らくお待たせいたしました。
ご質問の件なのですがこちら検証を行ってみたのですが
御社で発生している現象が再現できません。
そこで、差し支えないようでしたら現象が発生している
レポートファイルを弊社にお送りいただけないでしょうか?
お送りいただけましたレポートファイルにて再度検証を
行ってみたいと思います。
以上よろしくお願いいたします。
hirayamaゲスト
大変ご返事が遅くなってしまい申し訳ございません。
検証を行った結果、ReqWidthプロパティが戻す値を計算する部分で、単位換算する
(論理単位をデバイス単位に換算する)際に誤差が生じていたことがわかりました。
大変ご迷惑をおかけいたしました。
本件の対策版は次回弊社HPにアップ予定ですので宜しくお取り計らいください。
ただ、テキストオブジェクトのCharPitchプロパティに設定されている3.39とい
う値なのですが、フォントサイズが11ポイントですと文字が隣同士でぶつかってし
まうようです。CharPitchプロパティにもう一段階大きい値を設定された方が良いかと
思います。CharPitchプロパティの値はReqWidthプロパティの計算の際にも使用されて
いますので値が小さく設定されていると文字欠けの原因となります。
以上宜しくお願い致します。
- フォーラム「旧サポート掲示板」には新規投稿および返信を追加できません。