- このトピックは空です。
-
投稿者投稿
-
2021年6月29日 4:03 PM #587
shimizu
ゲストお世話になります
WR3.1 VB2005で開発をしています。プログラムで両面印刷を指示したいのですが
サンプルが見当たりません。
サンプルの場所 or サンプルをご教授ください。
以上、よろしくお願いします。(プリンタは両面印刷可能です)
2021年6月29日 4:03 PM #588伊藤@ソフトウィング
ゲスト日頃より弊社製品をご利用いただきまして、誠にありがとうございます。
WingReportの標準の機能でご質問のような内容を実現するには、下記のような方法が考えられます。
【方法1:DEVMODE情報の使用】
ご使用となるプリンタの両面印刷設定が行われたプリンタの、DEVMODE情報をPrinterInfoプロパティにて取得していただき、バイナリファイルとして出力を行っていただきます。
そして、印刷時に準備していただいたDEVMODE情報をPrinterInfoプロパティへ設定していただくという方法です。
ただし、この方法での注意点といたしまして、ドライバのバージョンが変わると、互換性が失われてしまう恐れがございます。その場合は、DEVMODE情報の再取得を行っていただく必要がございます。【方法2:ダイアログの表示】
印刷時にプリンターの印刷ダイアログを表示するように設定を行っていただいて、ユーザー様が両面印刷を行い印刷処理を行っていただくという方法です。【方法3:両面印刷専用のプリンタの作成】
事前に両面印刷用のプリンタを追加(例:両面印刷プリンタ 等)していただき、印刷時には通常使用するプリンタではなく、そちらのプリンタを指定していただくという方法です。プログラムから両面印刷を指示する方法と致しましては、方法1が一番近いかと存じますが、手間を考えますと方法3が一番手軽かと思われます。
DEVMODE情報については、Microsoft VisulaStudio等の資料を参照して下さい。ご不明な点などありましたら、大変お手数ですがご連絡頂きますようお願い申し上げます。
2021年6月29日 4:04 PM #589shimizu
ゲストお世話になります。
もし【方法3:両面印刷専用のプリンタの作成】
を選択した場合、すべて両面印刷されてしまいますか?本アプリは両面で出力したいものと片面で出力したいもの
両方存在するのですが・・2021年6月29日 4:04 PM #590伊藤@ソフトウィング
ゲスト日頃より弊社製品をご利用いただきまして、誠にありがとうございます。
【方法3】を選択した場合、すべて両面印刷が行われてしまいます。
片面印刷と両面印刷を切り替える方法としては、予め片面印刷用プリンタと両面印刷用プリンタを追加して頂きまして、プログラム中で片面印刷時は片面印刷用プリンタを使用し、両面印刷時は両面印刷用プリンタを使用する事で制御が行えると考えられます。
以上、宜しくお願い致します。
2021年6月29日 4:04 PM #591shimizu
ゲストお世話になります。
【方法1:DEVMODE情報の使用】にて両面印刷を実現しようと思いますが、具体的にどのような手順で何をすればよいかわかりません。サンプル等をいただきたいのですが。
ちなみに、プリンタは東芝製で両面印刷可能機種です。2021年6月29日 4:05 PM #592伊藤@ソフトウィング
ゲスト日頃より弊社製品をご利用いただきまして、誠にありがとうございます。
方法1のサンプル(VB6)を下記に記述させていただきます。
【DEVMODE情報の取得(ファイルへ保存)】
Dim hPrinter ssAs Long
Dim lngPrintInfoSize sAs Long
Dim bytBuff sAs Byte
Dim lngFileNum sAs Long
Dim strFileName sAs String‘ プリンター情報のサイズ取得
If Not CBool(WRPGetPrinterInfoSize(hPrinter, lngPrintInfoSize)) Then
MsgBox “WRPGetPrinterInfoSizeに失敗”
End IfReDim bytBuff(lngPrintInfoSize)
‘ プリンター情報の取得
If Not CBool(WRPGetPrinterInfo(hPrinter, bytBuff(0), lngPrintInfoSize)) Then
MsgBox “WRPGetPrinterInfoに失敗”
End If‘ ファイル番号の取得
lngFileNum = FreeFile()
strFileName = App.Path & “\” & FILE_NAME‘ ファイルを開く
Open strFileName For Binary As lngFileNum
Put #lngFileNum, , bytBuff
Close #lngFileNum【DEVMODE情報の設定(ファイルから取得)】
Dim dvMode As DEVMODE_TYPE‘ ファイル番号の取得
lngFileNum = FreeFile()
strFileName = App.Path & “\” & FILE_NAME‘ ファイルを開く
Open strFileName For Binary As lngFileNum
Get #lngFileNum, , dvMode
Close #lngFileNum‘ DEVMODE情報の設定
If Not CBool(WRPSetPrinterInfo(hPrinter, dvMode)) Then
MsgBox “WRPSetPrinterInfoに失敗”
Else
‘ プリンタ情報の更新
If Not CBool(WRPUpdateInfo(hPrinter)) Then
MsgBox “WRPUpdateInfoに失敗”
End IfEnd If
※ DEVMODE_TYPE構造体の中身
Type DEVMODE_TYPE
dmDeviceName As String * 32
dmSpecVersion As Integer
dmDriverVersion As Integer
dmSize As Integer
dmDriverExtra As Integer
dmFields As Long
dmOrientation As Integer
dmPaperSize As Integer
dmPaperLength As Integer
dmPaperWidth As Integer
dmScale As Integer
dmCopies As Integer
dmDefaultSource As Integer
dmPrintQuality As Integer
dmColor As Integer
dmDuplex As Integer
dmYResolution As Integer
dmTTOption As Integer
dmCollate As Integer
dmFormName As String * 32
dmUnusedPadding As Integer
dmBitsPerPel As Integer
dmPelsWidth As Long
dmPelsHeight As Long
dmDisplayFlags As Long
dmDisplayFrequency As Long
End Type以上、宜しくお願い致します。
2021年6月29日 4:05 PM #593shimizu
ゲストVB.NETで開発しておりますので
VB.NET用のサンプル or 詳細がのっているURLをお願いします。2021年6月29日 4:05 PM #594shimizu
ゲストお世話になります、両面印刷の別件なのですが
【方法3:両面印刷専用のプリンタの作成】で試したところ
両面印刷用プリンタを通常使うプリンタに設定すると、
両面印刷できたのですが片面印刷用プリンタを通常使うプリンタに設定しておき
両面印刷時に指定した両面プリンタを使用すると
片面印刷されたレポートが2枚出力されます。
両面印刷される方法はあるのでしょうか?
また、プリンタは
TOSHIBA e-STUDIO451cSeries PSL3
です。
以上、よろしくお願いします。2021年6月29日 4:06 PM #595伊藤@ソフトウィング
ゲスト日頃より弊社製品をご利用いただきまして、誠にありがとうございます。
まずサンプルについてですが、VB6・VB.NET共にWingReportのAPI呼び出しに関しては変更が御座いません。
サンプルの呼び出し方法を試して頂きエラーが発生するようでしたら、お手数をお掛け致しますがご連絡をお願い致します。【方法3:両面印刷専用のプリンタの作成】にて両面印刷が正常に行われない件についてですが、ウィングレポートではDEVMODE情報を設定する以外にプリンタの両面・片面印刷の設定を行う事は出来ません。
プログラムから使用するプリンタを変更する際、ダイアログを表示している場合はダイアログにて両面・片面印刷の設定、ダイアログの表示を行っていない場合は他端末よりプリンタドライバの両面・片面印刷の設定変更が行われていないかご確認を頂けませんでしょうか。以上、宜しくお願い致します。
-
投稿者投稿
- フォーラム「旧サポート掲示板」には新規投稿および返信を追加できません。