名前 題名 ▼ Mr.XRAYさん > > う〜ん.変ですね(苦笑) > > ちょっと待ってください. > > 以下のコードでテストしてみました. > 上がA3,下がプレビューの[プリンタ設定]ボタンでA4にした結果です. > う〜ん(こればっかりですね),さて. > > implementation > > uses Printers; > > {$R *.DFM} > > //============================================================================= > // DesignedPaperSizeのテスト > // 逐次表示方式のコード > // > // フォームにplSetPrinterコンポーネントを配置して,適当なプリンタ名をセット > // しておく > //============================================================================= > procedure TForm1.Button1Click(Sender: TObject); > begin > //逐次表示方式では[プリンタ・用紙]のボタンが使用可能 > plPrev1.BtnOptions := plPrev1.BtnOptions+[boPrinterSetBtn]; > > //3頁分 > plPrev1.PageCount := 3; > > //DesignedPaperSizeでA3を指定するのでA3用紙の横に設定 > plPrev1.plSetPrinter.PaperNumber := DMPAPER_A3; > plPrev1.plSetPrinter.Orientation := poLandscape; > > //設計時の用紙設定(このDesignedPaperSizeを使用すると > //印刷時に設定用紙サイズに拡大または縮小して印刷することができる > plPrev1.DesignedPaperSize(2970,4200); > plPrev1.ProcName := HogeHoge; > > //プレビュー開始.逐次表示方式にはShowメソッドはない > plPrev1.ShowModal; > end; > //============================================================================= > // 実際の描画メソッド > // このメソッド内に本コンポーネントのCanvasを使用したコードを記述. > // 複数頁の場合は,頁番号によって処理を分岐する. > //============================================================================= > procedure TForm1.HogeHoge; > begin > if plPrev1.PageNumber = 1 then begin > plPrev1.FontHeight (120); > plPrev1.TextOut(100,300,'DesignedPaperSizeのテスト'); > plPrev1.TextOut(100,450,'[実行時のプリンタ設定でプレビューを確認]'); > end else > > if plPrev1.PageNumber = 2 then begin > plPrev1.FontHeight (120); > plPrev1.TextOut(100,300,'DesignedPaperSizeのテスト'); > plPrev1.TextOut(100,450,'[2頁目]'); > end else > > if plPrev1.PageNumber = 3 then begin > plPrev1.FontHeight (120); > plPrev1.TextOut(100,300,'DesignedPaperSizeのテスト'); > plPrev1.TextOut(100,450,'[3頁目]'); > plPrev1.Canvas.TextOut(100,600,'テストライン'); > end; > > //全頁共通の印刷コード > //印刷可能領域に四角形を描画 > //少しは印刷領域の誤差があると思われるので1.0mm余裕をつける > plPrev1.PenWidth(1); > plPrev1.Rectangle(plPrev1.LeftOffset, > plPrev1.LeftOffset+plPrev1.PageWidth-10, > plPrev1.TopOffset, > plPrev1.TopOffset+plPrev1.PageHeight-10); > end; GIF,JPEG,PNG画像ファイル及びLZH,ZIPファイルをアップロードできます.600 x 1200 ピクセルを超える画像は縮小表示されます(画像クリックで拡大表示). (上限122000(120k)バイト) 削除キー Link