掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
グラフィック(画像)を適切なサイズで印刷するには? (ID:33258)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
Mr.XRAYです. >delphi3.1でも使えるのですね^^ 変更修正は,ある程度コンポーネント作成の知識が必要です. また,次回のバージョンアップでは,完全にDelphi6以降でないと利用できなります (^^; 使用しない方が無難でしょう(笑) コード拝見しました,ほとんど同じですが,印刷プレビューコンポを使用したコードです. 実行時に生成して使用する方法にはバグがあります.特にプレビューフォームの 位置やサイズの設定に問題があります. 以下はプレビューをしない場合のコードです. 拙作コンポの宣伝ですね. //============================================================================= // 印刷プレビュー制御コンポーネントを実行時に生成して利用する方法 // プレビューしないですぐ印刷する場合 // Image1に表示しているビットマップ画像を印刷 // // usesにplSetPrinter,plPrevが必要 // plSetPrinter.pasとplPrev.pasはバスの通った場所(フォルダ)に置いておくこと // またpoLandscapeの使用にはusesにPrintersが必要 // TplPrevはVer 4.81以上を使用のこと //============================================================================= procedure TForm1.Button2Click(Sender: TObject); var plPrev1 : TplPrev; ARect : TRect; ARatio : Double; begin //印刷プレビュー制御コンポーネントを生成 plPrev1 := TplPrev.Create(Self); plPrev1.plSetPrinter := nil; //プリンタや用紙の設定はここで行(ここでは用紙を横向き) plPrev1.plSetPrinter.Orientation := poLandscape; try //描画コード開始 plPrev1.BeginDoc; try //印刷位置を設定 Image1.Picture.Width; Image1.Picture.Height; ARatio := Image1.Picture.Height/Image1.Picture.Width; ARect.Left := 200; //印刷位置の左端(20mm) ARect.Right := 1800; //印刷位置の右端(180mm) ARect.Top := 300; //印刷位置の上端(30mm) ARect.Bottom := Round((ARect.Right-ARect.Left)*ARatio)+ARect.Top; plPrev1.StretchDrawBitmap(ARect,Image1.Picture.Bitmap); finally //描画コード終了 plPrev1.EndDoc; end; //プレビューしないですぐに印刷 plPrev1.Print; finally FreeAndNil(plPrev1); end; end;
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.