je voudrais utiliser 2 imprimantes en même temps pour ne pas avoir a changer de papier sous delphi et sans avoir a passer par le selecteur d'imprimantes.
Si vous avez une idée merci de me la communiquer.
Je pense que tu dois dans un premier temps envoyer l'impression sur une permière imprimante, si jamais elle génère une erreur, tu dois arrêter l'impression puis lancer sur l'autre, et si cette dernière génère une erreur tu l'affiche dans ton appli. Si j'ai bien compris c'est ce que tu souhaites réaliser. Après je ne sais pas comment récupérer une erreur sur une imprimante. Si jamais tu trouves une solution ou que tu avances dans ton appli, ce serait sympa de le poster.
Merci $cHn4wD pour ton essai mais ce que je veux c'est imprimer deux choses differentes en meme temps.
Ex : dans un resto on imprime les tickets a la caisse et les commandes sur une imprimante en cuisine.
Re alors, si je comprends bien ! Tu veux qu'à partir de ton logiciel qui est sur un même PC donc, tu choisisses d'imprimer soit un ticket, soit la commande pour la cuisine. Quand le client vient payer, tu imprime le ticket, et quand il passe commande ça imprime en cuisine. C'est bien ça?
J'ai réfléchis, et pour ce que tu veux faire, tu as plusieurs solutions (je pense), j'en ai une à te proposer. Je réfléchirais aux autres quand j'aurais un moment. Alors ce qui serait pas mal c'est de récupérer le nom des ports de chaque imprimante. Clic droit propriété>port ex:LPT1, COM1, USB001 ouautre
Ensuite ce que tu veux imprimer, tu l'enregistres sous C:\temp1.txt
Dans MS-DOS, tu testes, copy C:\temp1.txt LPT1
Si c'est ok tu fais dans le onclick du bouton
shellexecute(0,'open','cmd.exe /c copy C:\temp.txt LPT1',nil,nil,SW_SHOW);
Après tu n'as plus qu'à modifier cette commande pour qu'elle imprime sur ta deuxième imprimante.
Bonjour,
voilà ce que je te propose en utilisant l'unité Printer de Delphi.
Dans ta fiche de dialogue créer une ComboBox par exemple (ici elle s'appele cbxPrinter) remplir les items avec toutes les imprimantes installées sur le PC (ou un autre objet)
Il ne te reste plus qu'à choisir l'imprimante qui t'interesse dans la liste de la combobox avant de lancer l'impression
procedure TfPrintDlg.FormCreate(Sender: TObject);
begin
fPrintDlg.Caption := 'Choix de l''imprimante et du rapport ..';
Printer.PrinterIndex := -1; // Réallouer l'imprimante par defaut
cbxPrinter.Items.Assign(Printer.Printers); // Récuperer toutes les imprimantes installées sur le PC
cbxPrinter.Text := Printer.Printers[Printer.PrinterIndex]; // Afficher par défaut l'imprimante par défaut
end;