掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
印刷ジョブを分けずに用紙サイズを変更したい (ID:151617)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
こんにちは ある複合機の機能を使用するために印刷ジョブを分けずに用紙サイズを変更する処理を作成しています 添付しているソースだと2ページ目でA3に変更しようとした時点で「現在印刷中です」というエラーが発生します 私自身「印刷中に用紙サイズの変更はできない」と認識しておりエラーも当然だと思っていましたが、 Word等のアプリケーションでは同一ジョブ内で異なる用紙サイズ出力を実現させています 印刷中に用紙サイズを変更する方法をご存じではないでしょうか よろしくお願いします uses Printers; var Def_Port, Def_Device, Def_Driver : array[0..250] of Char; Def_pDev : PDevMode; Def_hDeviceMode: THandle; procedure ChangePapersize(PaperName: String); begin Printer.GetPrinter(Def_Device,Def_Driver,Def_Port,Def_hDeviceMode); Def_pDev:=GlobalLock(Def_hDeviceMode); if PaperName = 'A3' then Def_pDev^.dmPaperSize:=DmPaper_A3 else if PaperName = 'A4' then Def_pDev^.dmPaperSize:=DmPaper_A4; GlobalUnlock(Def_hDeviceMode); Printer.SetPrinter(Def_Device,Def_Driver,Def_Port,Def_hDeviceMode); end; procedure TForm1.Button1Click(Sender: TObject); begin if PrintDialog1.execute then begin ChangePapersize('A4'); Printer.BeginDoc; Printer.canvas.TextOut(100,100,PChar('PAGE1')); Printer.NewPage; ChangePapersize('A3'); Printer.canvas.TextOut(100,100,PChar('PAGE2')); Printer.EndDoc; end; end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.