こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

逆方向印刷をしたい。(VB6)

逆方向印刷機能のついていないレーザープリンタを使っています。
印刷文の長さに応じて縦印刷か横印刷かを決めているのですが、縦と横で、印刷方向が合いません。
ちょうど紙を180°回転させたように印刷することは無理でしょうか。

投稿日時 - 2004-04-06 18:36:00

QNo.824607

困ってます

このQ&Aは役に立ちましたか?

3人が「このQ&Aが役に立った」と投票しています

回答(9)

ANo.9

2ch

#8はピクチャボックスをAutoRedraw = Trueでいけるはずです。
ただし、制限があります。
「画面に表示させなければならない」
という点です。


画面にテキストを一度も表示させないのであれば、#5の発言が一番いいように思えてきました。
っていうのは、印刷を必要としないバックも、「白色」としての印刷対象になってしまうからです。

印刷部分が関数になっているとしたならば、その部分を丸々作り直さなければなりませんが、、、、
でもそれが一番まともな方法です。

私が発言したのは、既存を壊さないにしても、邪道です。


http://oshiete1.goo.ne.jp/kotaeru.php3?q=194114

できるだけ付き合います。

わからなかったら言ってください。

投稿日時 - 2004-04-12 14:04:01

補足

文字は見事に反転しました。でも印刷できません。
半角の数字がチョロっと印刷されて終わりです。
Printer.Print Picture2.Image ではだめなのでしょうか。

投稿日時 - 2004-04-13 20:27:50

ANo.8

これだったら?
Picture2.PaintPicture Picture1.Image, Picture2.ScaleWidth, Picture2.ScaleHeight, -Picture1.ScaleWidth, -Picture1.ScaleHeight

投稿日時 - 2004-04-11 07:56:14

補足

イメージは同じサイズで180°回転しますが、文字は転送されません。

投稿日時 - 2004-04-11 20:41:42

ANo.7

>でも印刷がうまくいきません
実際どのようにうまくいってないのかが不明です。

プリンタがうんともすんとも?
印刷レイアウトが壊れる?

投稿日時 - 2004-04-09 01:59:21

補足

(試験場が)半角で、1258621612と印刷されます。

また、Picture1からPicture2に180°回転させて転送しようとした所、Picture1.Pictureに貼り付けてあるアイコン画像は回転するのですが文字はPicture2に出てきません。

Picture2.PaintPicture Picture1.Picture, Picture2.ScaleWidth, Picture2.ScaleHeight, -Picture1.ScaleWidth, -Picture1.ScaleHeight

投稿日時 - 2004-04-09 07:42:55

ANo.6

2ch

Option Explicit

Private Sub Command1_Click()
  Dim lngX    As Long
  Dim lngY    As Long
  Dim lngColor  As Long
  
  lngX = Int(Me.ScaleWidth * Rnd)
  lngY = Int(Me.ScaleHeight * Rnd)
  lngColor = QBColor(Int(8 * Rnd))

  With Me.Picture1
    .CurrentX = lngX
    .CurrentY = lngY
    .ForeColor = lngColor
  End With
  Me.Picture1.Print Format$(Now, "HH:NN:SS")
End Sub

Private Sub Form_Load()
  Me.ScaleMode = vbPixels
  Me.Picture1.ScaleMode = vbPixels
  
  Call Me.Move(0, 0, 300 * Screen.TwipsPerPixelX, 300 * Screen.TwipsPerPixelY)
  Call Me.Picture1.Move(0, 0, Me.ScaleWidth, 230)
  Call Me.Command1.Move(0, Me.ScaleHeight - 40, Me.ScaleWidth, 40)
  
  With Me.Picture1
    .Cls
    .AutoRedraw = True
  End With
  With Me.Command1
    .Caption = "実行"
  End With
End Sub

投稿日時 - 2004-04-08 13:38:51

お礼

回答ありがとうございます。
要は picture.print "文" だったんですね。

でも印刷がうまくいきません。
 
Me.Picture1.Print "試験場"
Printer.Print Picture1.Image
Printer.EndDoc

投稿日時 - 2004-04-08 23:02:06

ANo.5

今の環境で詳しくは調べられないので、雰囲気だけですが
WindowsのAPIを使って印刷処理を記述すればできると
思います。

とは言っても、APIを使うと今の印刷部分をかなり変更する
必要があるかもしれませんので、
#4の方のようにPictureBoxなどに書いて全体を
回転させた方が楽かもしれません。
(印刷解像度にあわせて、大きなイメージを作成すべし)

投稿日時 - 2004-04-07 22:39:58

ANo.4

2ch

>印刷までの過程と、印刷命令はどのようにしているのか知りたいです
と言ったのは意味があります。
ちゃす!田吾作さん
http://oshiete1.goo.ne.jp/kotaeru.php3?q=446201
って感じで、画像なら反転可能です。

プリンタデバイスにPrintで文字を書き込んで印刷命令を発行をしているなら、ピクチャボックスに書き込んで、参考URLのように反転してピクチャボックスを印刷したらどうかなと思ったので発言してみたんだけど。
どうだろう?

そうじゃなければ、オリジナルプリンタデバイスを作成するって方法があるけど、私は実現方法を知りません。
adobeのAcrobatを間にかませてPDFを画像に出力し反転保存する方法も思いつくけど、間にツール挟んだらやっぱ反則だと思うので、なんとも言えず。

参考URL:http://oshiete1.goo.ne.jp/kotaeru.php3?q=446201

投稿日時 - 2004-04-07 20:56:30

補足

プリンタデバイスにPrintで文字を書き込んで印刷命令を発行しています。けどピクチャボックスにテキストが入るのでしょうか。ちょっと本屋で勉強してきます。

投稿日時 - 2004-04-08 09:48:40

お礼

回答ありがとうございます。

投稿日時 - 2004-04-08 09:46:30

ANo.3

#2に賛同

投稿日時 - 2004-04-07 04:51:05

補足

回答ありがとうございます。
1日あたり20~40回くらいデータが送られて来て、専用のホルダーに溜まって行くようになっています。
本プログラムでは5秒間隔でそのホルダーをチェックし、最後に受信したファイルと比較して新しいファイルが届いていればそれを印刷するようになっています。

投稿日時 - 2004-04-07 18:44:35

ANo.2

2ch

なら逆に質問。

印刷データは、どのように作成しています?
ピクチャ?

それなら、180度回転してセットしてあげたらよいと思うけど、文字データなら厄介ですなぁ

印刷までの過程と、印刷命令はどのようにしているのか知りたいです。

投稿日時 - 2004-04-06 23:20:58

補足

印刷データはテキストです。
体裁を考え、文量(行数)に応じて縦印刷にするか横印刷にするか自動判定しています。
用紙は閉じるための穴が空いたものが用紙カセットにセットしてあります。このため縦と横との関係が重要になってくるのです。
どういう訳か自宅のインクジェットプリンタとは逆の方向で印刷されてしまいます。
説明不足ですみませんでした。やっぱり無理なんでしょうか。

投稿日時 - 2004-04-07 18:36:40

ANo.1

2ch

補足

180°回転です。
縦と横の印刷はlandscape,portrateで切換できるのですが。

投稿日時 - 2004-04-06 21:52:02

あなたにオススメの質問