掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
印刷ジョブを分けずに用紙サイズを変更したい (ID:151618)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
TPrinter.NewPageの実装が procedure TPrinter.NewPage; begin CheckPrinting(True); EndPage(DC); StartPage(DC); Inc(FPageNumber); Canvas.Refresh; end; となっていて、NewPageを呼び出したら新しいページの処理が始まっちゃってるのが原因な気がします。 例えば uses Vcl.Consts; type TChangingPageProc = reference to procedure (); TPrinterHelper = class helper for TPrinter public procedure NewPage2(ChangingPageProc: TChangingPageProc); end; procedure TPrinterHelper.NewPage2(ChangingPageProc: TChangingPageProc); begin if Printing = False then begin raise EPrinter.Create(SNotPrinting); end; EndPage(Handle); if Assigned(ChangingPageProc) then begin ChangingPageProc(); end; StartPage(Handle); Canvas.Refresh; end; こんなのを用意して、 ChangePapersize('A4'); Printer.BeginDoc; Printer.canvas.TextOut(100,100,PChar('PAGE1')); Printer.NewPage2( procedure begin ChangePapersize('A3'); end); Printer.canvas.TextOut(100,100,PChar('PAGE2')); Printer.EndDoc; こんな感じで用紙サイズを変更したらどうでしょう? (動かして試していないのでダメだったらすいません
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.