Bonjour à tous
J'ai un dossier contenant plusieurs graphiques au format jpg.
Je liste ces fichiers dans une listbox.
Je voudrais ensuite imprimer ces fichiers en une seul fois.
merci
Version imprimable
Bonjour à tous
J'ai un dossier contenant plusieurs graphiques au format jpg.
Je liste ces fichiers dans une listbox.
Je voudrais ensuite imprimer ces fichiers en une seul fois.
merci
Chacun sur une page, mais d'une seule commande, ou rassemblés sur une page ?
chacun sur une page en une seule commande.
Bonjour
Voilà le code que j'utilise:
Ma listbox contient les chemins de mes fichiers.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 procedure TForm1.ListBox1Click(Sender: TObject); Var page:Trect; btmp:TBitmap; begin btmp:=TBitmap.Create; btmp.LoadFromFile(ListBox1.Items[Listbox1.ItemIndex]); Printer.SetPrinter(Printer.PrinterName); Printer.Title := 'Test impression'; Printer.BeginDoc; page:= Rect(0,0,Printer.PageWidth-30,Printer.PageHeight-30); Printer.Canvas.StretchDraw(page,btmp); Printer.EndDoc; btmp.Free; end;
Lorsque je sélectionne un item , l'impression du fichier se fait.
Je voudrais ne pas avoir à sélectionner les fichiers les uns après les autres et lancer une impression comme un doc avec plusieurs pages, chaque page étant un fichier.
Bonjour,
Il doit suffire (dans le code d'un bouton par exemple) de boucler sur le nombre d'items de la liste et de déclencher pour chacun la procédure que tu utilises.
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 procedure PrintFile(aFileName: string); Var page:Trect; btmp:TBitmap; begin btmp:=TBitmap.Create; btmp.LoadFromFile(aFileName); Printer.SetPrinter(Printer.PrinterName); Printer.Title := 'Test impression'; Printer.BeginDoc; page:= Rect(0,0,Printer.PageWidth-30,Printer.PageHeight-30); Printer.Canvas.StretchDraw(page,btmp); Printer.EndDoc; btmp.Free; end; procedure TForm1.ListBox1Click(Sender: TObject); begin PrintFile(ListBox1.Items[Listbox1.ItemIndex]); end; procedure TForm1.bnAllFilesClick(Sender: TObject); var i: integer; begin for i := 1 to Listbox1.Items.Count do PrintFile(ListBox1.Items[i-1]); end;
Bonjour
Pourquoi faire compliqué quand on peut faire simple...
J'étais partir sur un truc de doc avec plusieurs pages...
merci
Je serais plutôt parti sur un Printer.NewPage dans la boucle mais pour l'impression sur une imprimante A4 standard ça ne fera pas grande différence.
Cependant avec NewPage, on aurait un seul document dans la file d'impression, plus facile de l'interrompre le cas échéant.
Par contre pour des impressions d'étiquettes en rouleau style Zebra TLP, il est important de passer par NewPage. Ce type d'imprimante lance une calibration au début du document par un mouvement avant/arrière du rouleau. Le faire à chaque étiquette n'est pas envisageable ;)