VB6.0で印刷プレビューを作成するコントロールもしくは方法ありましたら
教えてください。.NETだとPrintPreviewControlとかいうのがあると聞きま
した。6.0の場合は印刷プレビューを作成するコントロールありませんか?
現在の印刷方法は
Printer.Print ・・・・
というように印刷してて、特にActiveReportのような特殊なコントロール
は使用していません。どなたか方法が分かる方教えてください。
印刷に、「Printer.Print」などを使っているなら、プレビューには
「Form2.Print」や「Picture1.Print」などを使ってみては如何でしょう。
たとえば、印刷ロジック部分を
Public Sub Draw(ByVal Campus As Object)
If Not TypeOf Campas Is Printer Then
Campas.Cls
End If
'印刷処理
Campas.Print "データ"
Campas.Line (0, 0)-(1000, 1000)
If TypeOf Campas Is Printer Then
Campas.EndDoc
End If
End Sub
のようにしておけば、印刷時には
Draw Printer
プレビュー時には
Draw Picture1
のように記述する事ができます。
あう。スペルミス。m(_ _)m
> Public Sub Draw(ByVal Campus As Object)
> If Not TypeOf Campas Is Printer Then
Campas ではなく、Campus に統一しておいてください。
返答遅くなりました。
確かにこの方法ならプレビューのようなものができると思います。
ですが、改ページなどで複数ページにわたる場合対応できないのでは?
という疑問が浮かびます。やはり、VB6.0だと印刷プレビューを作成する
コントロールがないのでしょうか?
>改ページなどで複数ページにわたる場合対応できないのでは?
そこはあなたの腕の見せ所なんじゃないですか?
というより質問は印刷プレビューを作りたいじゃなくて
印刷プレビューのでるコントロールが欲しいですか?
買い物ならあると思いますよ。
> VB6.0だと印刷プレビューを作成するコントロールがないのでしょうか?
あります。印刷プレビュー機能を持つコントロールとしては、
VB6にDataReportコントロールやCrystalReportコントロールが
付属しています。エディションにもよりますけれども。
ただ、これらは Printerオブジェクトとは印刷手順がまったく異なるので、
現在の「Printer.Print ・・・・」なコードを流用する事はできません。
現在の印刷ロジックを捨て去っても良いのであれば、こうした
外部コンポーネントに頼ってみるのも手かも知れません。
> 改ページなどで複数ページにわたる場合対応できないのでは?
たとえば、プレビューフォーム側に、独自のNewPageメソッドを
実装しておき、その中で
Public Sub NewPage()
Set Picture配列変数(n) = Me.Image
Me.Cls
End Sub
のような実装を行うことで対応できないでしょうか?
で、別途実装したページ切り替えボタンで、
Set .Picture = Picture配列変数(ページ番号)
のようにして切り替えて表示させるとか……。
# ちなみに、秀丸エディタのプレビュー機能(秀丸パブリッシャー)は、
# VB6にて開発されているようですね。(プレビュー部分はPictureBox)
魔界の仮面弁士さん、親切丁寧にありがとうございます。
アドバイスを参考に色々試してみようと思います。
一応、これでこの質問は解決という扱いにしたいと思います。
今後ともよろしくお願いします。