• 締切済み

VB6で回転文字を印刷

こんにちわ。 今更ながら、VB6で業務アプリを開発しております。 文字列を回転(45度や270度など)させて印字する部分があり、 PictureBoxへの出力では問題無いのですが、プリンターに出力すると、 回転されず0度で印字されます。 今回はVB4からVB6へのアップグレードでして、VB4では問題無く動いているようなんです。 ちなみに、API:CreateFontIndirectを使用しています。 原因は何が考えられますでしょうか? 宜しくお願いします。

みんなの回答

  • ese_ee
  • ベストアンサー率48% (68/139)
回答No.2

どうやって印刷していますか? 過去の記事は参考になりますか? http://okwave.jp/qa/q194114.html

参考URL:
http://okwave.jp/qa/q194114.html
taka_chanpe
質問者

お礼

有難う御座います。 勿論、過去の記事は確認していました。 その記事ではダメそうな内容でしたので、他に何かあればと思い、質問させて頂いたわけでした。 色々と試行錯誤している中、プリンターのhdcを直でAPIに渡していた部分を、変数経由にしたところ、無事従来通り印字出来るようになりました。 お騒がせ致しました。

  • BellBell
  • ベストアンサー率54% (327/598)
回答No.1

printer.print " " のように、空白文字でもいいので一度印刷をしておかないと、プリンターのhdcが準備されないという事があった気がしますが。。。 それが関係しているのかどうか、コードでも載せてくれなければ判りません。 記憶では、VB4の頃にも同様だったと思うので、関係ない可能性は高いのかも知れませんが。

taka_chanpe
質問者

お礼

有難う御座います。 Lineの直後に文字回転印字を通しています。 色々と試行錯誤している中、プリンターのhdcを直でAPIに渡していた部分を、変数経由にしたところ、無事従来通り印字出来るようになりました。 お騒がせ致しました。

関連するQ&A

  • 文字回転

    プリンターに印刷時に文字を回転する方法を教えてください。 ピクチャーボックスにAPIを使って新しいフォントスタイルを作り回転する事はできるのですが。 その方法ではプリンターでは回転せず水平に印刷されます。 どうか教えてください。 Printer.Print MOJI

  • VB←→API(C)の文字列加工?

    VisualBasic6で、APIなどで返された文字列に\0が含まれていた場合、 VB内部で扱う文字列に変換させる方法やその逆のAPIに渡すとき C用の文字列に変換する関数や方法はあるのでしょうか?

  • VB2.0からVB6.0へのアップグレードについて

    VB2.0で作成したアプリをWindowsXP上で動作するようVB6.0にアップグレードすることになりました。 VBXからOCXへの置き換え、文字列処理のUnicode対応、DLL呼出しの修正など問題点は多いようです。 そこで、これまでにこのような作業をした方がいらしたら手順や注意点などを教えてください。 また、これに関して書かれているHPなどあれば教えてください。

  • 横書き (左へ 90 度回転)時のプリンタの設定

    88mm×178mmの封筒で短い辺を給紙すると封筒にしわが入ります。 長い辺から給紙しようと思い、Word2013で文字列の方向で横書き(日本語文字を左へ90度回転)にして横向きで印刷しようとしましたが、印字の向きがどうもうまく出力されません。プリンターの設定の仕方をお教え下さい。 プリンターは、エプソンLP-S5300です。 よろしく、お願いいたします。

  • VB6でプリンタへの出力を検出したい

    VB6で作成したアプリで、プリンタへの出力を検出したいと思っています。 作成したソフトを常駐させておき、対象とするアプリの種類を問わず、プリンタへの出力を検出したら強制的にプレビュー画面を表示させたいのです。 自分に具体的な実現方法が思いつかず、また検索しても似たような話題も見つからないので、VBでは不可能なのかと疑問に思っています。 このような開発を手掛けられた事のある方や、知識をお持ちの方がいらっしゃいましたら、ご助言いただきたいのですが、よろしくお願いいたします。 <開発環境> WinXP pro sp1 VB6.0 sp5

  • VBでのプリンタのテスト印刷処理について

    プリンタを接続したときに、プリンタのテスト印刷が出力されますが、VBの処理のなかで処理させたいのですが、テスト印刷と同じように印字させたいのですが、 プリンタの名称を取得はできたのですが、それ以外に情報を印刷したいのですが、方法がわかりません。よろしくお願いします。

  • LPRINTに相当するVBの関数は?

    教えてください VBでは接続しているプリンタのドライバを介さずに直接プリンタに文字列を送ることはできませんか? たとえばN88-BasicやQBasicの「LPRINT #1, "D"」の1文をVBで同じ意味になるようにしたいのです その際に、ここで出力される"D"はプリンタに対してプリンタ固有の命令の意味を持っています たとえば、インクカートリッジを交換などです プリンタ固有の命令を実行したくともドライバが邪魔をして命令のはずが文字のDを印刷するの様に扱われてしまい困っています よろしくお願いします

  • クリスタルレポートで印刷時に文字がズレてしまいます

    開発環境は以下の通りです。  Windows2000  CrystalReport9  Visual Basic6(SP5) RDC(Craxdrt9.dll)使用してViewerに表示させています。 WindowsXP、2000、98で問題は無かったのですが、一部のWindows98マシンで 印刷を行うと、出力された帳票で右寄せ、中央寄せの文字列項目の出力位置が ずれてしまうという現象が起きました。 分かりにくいかもしれませんが、簡単に図を書きます。 以下のように出力したいと思っておりますが、  |  ○○○|  |   ○○|  | ○○○○| 実際に出力されるのはこのような感じです。  |    ○|○○  |    ○|○  |    ○|○○○ プレビュー画面ではズレていないのですが、プリンターに出力したとき このようにズレてしまいます。 CrystalReport側で提供されているサービスパック、マージモジュール等を 更新してやってみたのですがうまくいきません。 他に何か原因があるのでしょうか?プリンター側の問題でしょうか? ご存知の方がいらっしゃいましたら、どうぞご教示ください。 よろしくお願い致します。

  • VB5からAccess97が起動できない

    メイン部分をVB5、DBと印刷業務をAccess97で開発したアプリがOSをWindows95からWindows2000に変更したら、VBからAccessが起動しなかったり、VB終了後もAccessが残ったりします。今の仕様はAccessからVBメニューを起動し、印刷業務を選択した時にAccessをActiveにする設計になっています。VB5からAccess97の制御方法に問題があるようですが、対応方法が判りません。どなたかご存知の方は教えてください。

  • WEBサーバーに文字列を送り戻り値取得

    WEBサーバーに文字列送信の開発を行っています。 開発環境はVB6(アプリ部分)+VB2005(DLL部分)です。 文字列生成はVB6でしています。 サーバーに文字を送るところは.netでDLLを作っています。 VB6はそのdllを参照し関数をcallしています。 送信した文字列に何か不備等があればサーバーから1から5までのエラー区分が返ってくるのですが、戻り値を取得することができません。 どうすれば取得できるのでしょうか? <<サーバーとの通信方法>> サーバーに文字列を送るのはWebClientのUploadStringAsyncを使用しています。 サーバー側で文字列が送られているのは確認できています。 サーバーの戻り値を取得するのはUploadStringCompletedイベントで取得していますが、 通信が終わりVB6側に戻ってきた時にUploadStringCompletedイベントが起きているらしく戻り値を取得できません。 どなたかご教授いただければと思います。

専門家に質問してみよう