Merhaba arkadaşlar;
2 gündür uğraşıyorum, 2 tane fiş yazıcısı var. ikisinede noktavuruşlu fiş yazıcısı. Printerları normal olarak yazdırıyorum. Sorunum şu, default printer değiştirmeden istediğim yazıcıya bilgi göndermek istiyorum. Yani projemde mutfak ve bardan ayrı ayrı fiş alınması gerekiyor. içecekleri bar yazıcısına, yiyecekleri mutfağa göndericek ama her zaman default u değiştirip çalıştırabiliyorum. Öteki türlü çalışmıyor. Yazıcıları ağ yazıcısı olarak tanımladım ve ikiside sınama sayfasını yazdırıyor, yazıcılarda sorun yok. Ne yaptıysam yapıyım hep default printer a gönderiyor.
1 den çok printerla çalışmak
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
gönderirken printer sectirmelisin. tabi bunun icin de printer listesini aldırman lazım. bunları şu şekilde yapabilirsin:
Kod: Tümünü seç
uses
Printers, Shellapi;
procedure TForm1.Button1Click(Sender: TObject);
var
Device: array[0..255] of Char;
Driver: array[0..255] of Char;
Port: array[0..255] of Char;
S: string;
hDeviceMode: THandle;
documentname: string;
begin
Printer.PrinterIndex := -1; // select a printer, in this case default
Printer.GetPrinter(Device, Driver, Port, hDeviceMode);
S := Format('"%s" "%s" "%s"', [Device, Driver, Port]);
documentname := 'c:\anydocument.doc';
ShellExecute(Handle, 'printto', PChar(documentname), PChar(S), nil, SW_HIDE);
end;