Ecco un esempio di codice per la stampa di una porzione d'immagine (regolabile) su carta, con la possibilità di definire anche l'area di destinazione finale.
codice:
procedure TMainForm.PrintButtonClick(Sender: TObject);
var
SourceRect, DestRect: TRect;
begin
// Visualizza la finestra di dialogo che precede la stampa
if PrnSetupDialog.Execute then
begin
// Determina l'area dell'immagine da copiare
SourceRect := Rect(0, 0, 200, 200);
// Determina l'area di stampa in cui copiare la porzione di immagine
DestRect := Rect(0, 0, 600, 600);
// Avvia il processo di stampa
Printer.BeginDoc;
try
// Copia l'immagine sul "foglio virtuale" della stampante
SampleImage.Bitmap.DrawTo(Printer.Canvas.Handle, DestRect, SourceRect);
// Conclude il processo di stampa
Printer.EndDoc;
except
// Annulla la stampa (in caso di errore)
Printer.Abort;
end;
end;
end;
Modificando le variabili SourceRect e DestRect, è possibile regolare rispettivamente la porzione di immagine da copiare e l'area in cui tale porzione deve essere tracciata sul "foglio virtuale" della stampante.
Le restanti spiegazioni si trovano nei commenti con cui è decorato il codice.
Ciao!