Picproje Elektronik Sitesi

PROGRAMLAMA DİLLERİ => Delphi => Konuyu başlatan: Zoroaster - 21 Şubat 2017, 10:08:08

Başlık: Delphi program ile printer kullanma
Gönderen: Zoroaster - 21 Şubat 2017, 10:08:08
Delphi ile oluşturacağım BMP formatındaki resimin yazıcıdan çıktısını almam lazım.

Daha önceleri yazılımla printerden çıktı aldığımı hatırlamıyorum.

Basit bir örneğiniz varmı? (Örnek üzerinde sorularım olabilir)

---------------

Asıl amacımdan da bahsedeyim. Çek koçanından kopardığım boş çeki A4 kağıdına iptidai bir yöntemle sabitleyip program ekranında yazdığım sayısal değeri çekin ilgili bölümüne yazan tarih vs kısımlarını dolduran bir yazılım yapmam gerekiyor. En son aşamada da print edecek.

Malesef hazır yazılımları kullanamıyorum. Benim yazmam lazım.

Başlık: Ynt: Delphi program ile printer kullanma
Gönderen: Yuunus - 21 Şubat 2017, 10:12:50
Fast report u indirip kurun design modunda istediginiz formati hazirlayabilirsiniz.
Başlık: Ynt: Delphi program ile printer kullanma
Gönderen: mert3162 - 21 Şubat 2017, 10:36:49
Hocam excel içindeki visual basic düzenleyicisni kullanarak bir form oluştursanız açılışınada bir macro ile formu tam ekran getirtseniz baskı alanını excel içindeki hücreler sayesinde kolaylıkla ayarlasanız sizin için daha basit olmazmı ?

Yıllar önce böyle bişiy yapmıştım.Fatura irsaliye falan basmak için yazıcımda nokta vuruşluydu.Bulursam eklerim sizin için

Birde şöyle birşey buldum belki işinize yarar http://delphiexamples.com/devices/printbitmap.html
Başlık: Ynt: Delphi program ile printer kullanma
Gönderen: Klein - 21 Şubat 2017, 13:16:26

void __fastcall TfrmMain::btnPrintClick(TObject *Sender)
{
int l,t,r,b;
if(dlgPrint->Execute())
{
try{
Printer()->BeginDoc();
ScanImage->Picture->Bitmap->TransparentMode = tmAuto;
l = (Printer()->PageWidth - 2000) / 2;
t = (Printer()->PageHeight - 2000)/ 2;
r = l + 2000;
b = t + 2000;
TRect R = Rect(l,t,r,b);
   Printer()->Canvas->StretchDraw(R, ScanImage->Picture->Graphic );
   Printer()->EndDoc();
}catch (...){
                      ShowMessage("Belge yazdırılamadı");
}
}
}



Abi bu C++ builder. Delphi ile fonksiyonlar aynı zaten. Küçük bir düzeltme ile kullanabilirsin.
Başlık: Ynt: Delphi program ile printer kullanma
Gönderen: ByTEK - 21 Şubat 2017, 13:32:51
Ben daha önce çıktı almak için şöyle yol izlemiştim. Resmi ilgili yere kaydedip çıktıya göndermiştim. Daha pratik gelmişti. Hatta yazıcıda seçip gönderiyordum. örnek kod aşağıdaki gibi.



uses
  Printers, shellapi;

procedure TForm1.FormCreate(Sender: TObject);
begin
yazici.Clear;
yazici.Items := printer.Printers;
yazici.ItemIndex := 1;
end;

procedure TForm1.Dosya_yazdir(const documentToPrint : string) ;
var
printCommand : string;
printerInfo : string;
Device, Driver, Port: array[0..255] of Char;
hDeviceMode: THandle;
begin

if Printer.PrinterIndex = yazici.ItemIndex then
begin
printCommand := 'print';
printerInfo := '';
end
else
begin
printCommand := 'printto';
Printer.PrinterIndex := yazici.ItemIndex;
Printer.GetPrinter(Device, Driver, Port, hDeviceMode) ;
printerInfo := Format('"%s" "%s" "%s"', [Device, Driver, Port]) ;
end;
ShellExecute(Application.Handle, PChar(printCommand), PChar(documentToPrint), PChar(printerInfo), nil, SW_HIDE) ;
end;

Dosya_yazdir(Dosya_yolu);

Başlık: Ynt: Delphi program ile printer kullanma
Gönderen: boreas - 21 Şubat 2017, 16:22:11
Raporlama araçlarını öneririm.  Şöyle bir sıkıntı yaşamanız muhtemel. 70 dpi baskıya göre hesap yaptınız birisi yazıcı ayarlarını 300e çıkardı ve unuttu ? Bir anda hesaplarınız 4de 1 şaşar quick report ya da fast report gibi uygulamar bu işleri çok daha kolaylaştırıyor.
Başlık: Ynt: Delphi program ile printer kullanma
Gönderen: Salih - 21 Şubat 2017, 20:56:22
Alıntı yapılan: boreas - 21 Şubat 2017, 16:22:11
Raporlama araçlarını öneririm.  Şöyle bir sıkıntı yaşamanız muhtemel. 70 dpi baskıya göre hesap yaptınız birisi yazıcı ayarlarını 300e çıkardı ve unuttu ? Bir anda hesaplarınız 4de 1 şaşar quick report ya da fast report gibi uygulamar bu işleri çok daha kolaylaştırıyor.

Bende tavsiye ederim. Quick report ile çok uğraşmadan, print işlerimi görüyorum.