初めまして、あぼみと申します。
印刷プレビュー制御コンポーネント、プリンタ設定コンポーネントを多用させていただいております。
サンプルプログラム集も色々な場面で参考にさせていただいてます。
印刷プレビュー制御コンポーネントについて、プリンタ出力時に改ページ出来ない時があります。
使用環境は以下の通りです。
-----------------------------------------------
WindowsXP Pro(SP2) + Delphi6 PRO UpdatePack 2
「plPrev Ver 4.56」 「TplSetPrinter Ver 6.06」
LPT1:に接続したPM-770C
-----------------------------------------------
フォーム上に印刷プレビュー制御とプリンタ設定コンポーネントとボタンを一つずつ配置してあります。
メインの処理は、簡単に書くと以下の通りです。
-----------------------------------------------
procedure TForm1.Button1Click(Sender: TObject);
begin
// 帳票No.1を作成
plPrev1.BeginDoc;
plPrev1.FontName('MS ゴシック');
plPrev1.FontSize(50);
plPrev1.TextOutLC(150,100,'帳票No.1の1頁');
plPrev1.EndDoc;
plPrev1.Print; //プリンタ出力
// 帳票No.2を作成
plPrev1.BeginDoc;
//1ページ
plPrev1.TextOutLC(150,100,'帳票No.2の1頁');
plPrev1.NewPage; //*** 改ページ ***
//2ページ
plPrev1.TextOutLC(150,100,'帳票No.2の2頁');
plPrev1.EndDoc;
plPrev1.Print //プリンタ出力
end;
-----------------------------------------------
No.2の2ページ目が印刷されません。
OnBeforeViewイベントを使いPageとPageCountを描画してみたところPageCountは2ページになっているようです。
plPrev1.PrintをplPrev1.ShowModalにしてプレビューさせると正常です。
一度に大量に印刷するときは帳票が出来上がった段階で出力したほうが気分的に早いような気がするのでこのようなプログラミングになりました。
「BeginDoc〜EndDoc,Print」を一つにしたプログラムにすれば良いのかとは思いますが・・・
ちょっと気になったので、とりあえずご報告します。
|