Printer driver nasil yazilir?

Başlatan bunalmis, 31 Ocak 2012, 22:02:49

Klein

gördüğüm tüm dokümanlar PostScript ve EMF formatına çevirdiğini söylüyor. Bu durumda ya PostScript ya da EMF dönüşümü ile ilgilenmeniz gerekebilir. Sizin elinizde gelecek veri bu iki formattan biri.

The Gariban

#16
Ayrıca @Klein in verdiği linkin "Tutorials " sekmesinde Print Previev de dahil yazıcı ile ilgili bazı işlerin örnek kodları da var .
EMF format ile ilgili MSDN de
http://msdn.microsoft.com/en-us/library/cc230515(v=prot.10).aspx
bunlar var (Introduction kısmı)
Belki faydası olabilir


z

Bu durumda soyle diyebilirmiyiz?

Ornegin word, sayfadaki text yada grafik verileri isleyerek postscript yada EMF formatina cevirir bunun icin windowsun dll lerinden yararlanir.
EMF formatina cevrilmis veriler drivera yollanir. Driver, bu verileri yaziciya gonderir.

Bu durumda win driverin word ile yazici arasindaki haberlesme amaci disinda herhangi bir gorevi yoktur.

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

z

@Klein

Linkini verdigin EMFprinter tam olarak isin neresinde kullaniliyor?

Bana, sanki word benzeri  bir program yazilacaksa bu yazilimin print le ilgili rutinlerinde ise yarayacak gibi geldi yaniliyormuyum?




Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Klein

#19
Bahsettiğiniz , EMF virtual printer example ise:

kurduğunuzda sanal bir yazıcı oluşturuyor.  herhangi bir programdan çıktı alırken bu yazıcıyı seçerseniz , programdan  aldığı veriyi (EMF)  bmp olarak  programın konumunda bir klasöre atıyor.

SDK'sı da   bu işe yarıyor. ama bunun yanında bahsettiğiniz gibi print manager de vardır belki içinde. dikkatli incelemedim.

z

Peki delphide print dialog diye bir komponent var. Bunu hic kullanmadim. Bu ne is yapiyor?
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Klein

Tüm programların kullandığı , bildiğimiz print ekranı hocam.

z

Anlamadim. Kafam durdu. Ne yapiyoruz ne isimize yariyor? Bunu kullanarak mesela bmp formatindaki bir cizimi print ettirebilirmiyim?
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Klein

#23
Yok hocam. O sadece printer seçimi, printer ayarı yapmayı sağlayan diyalog.
Yazdırma için birazcık kod yazmak gerekiyor.

procedure TForm1.Button1Click(Sender: TObject);
begin
    if PrintDialog1.Execute then
    begin
      printer.BeginDoc;
      printer.Canvas.Draw(0,0,image1.Picture.Graphic);
      printer.EndDoc;
  end;
end;

t2

Delphi kurulu ise, DLLin olduğu klasöre komut penceresini açalım
tdump sizin.dll >detay.txt

Şeklinde çalıştıralım.  detay.txt içerisinde DLL fonksiyonları (import, export) ve diğer bazı detaylar bulunur.

z

Kosakoca picprojede  printer tasarlayıp ardından da bunu PC ye tanıtacak yokmu?

Tühhh size.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

t2

#26
Bana önümüzdeki 50 yıl içinde gerekmez. 

muhendisbey

Bu işin Bir dosya formatıyla yapılmadığını düşünmekteyim. Bence tamamen görüntü işleme ile alakalı. Driver ile sadece iletişim portu üzerinden yazıcının anlayacağı şekilde dosya iletilir. Yani nasıl bir kodlama ile veri göndereceksen onu göndereceksin bu tamamen tasarımcıya ait. Resim ise resim, yazı ise yazı, koordinat verisi ve noozle püskürtme şekili vs şeklinde de olabilir. Basma işleminde ne yapacağı yazıcının kendi içerisindeki devre ile ilgili. Bir dosyanın nokta vuruşluya da mürekep püskürtmeliye de uyacağı düşünülemez.  Bu nedenle driver bir nevi dönüştürme işlemi de yapar.

Daha önce böyle birşey tasarlamadım, kod yazmada ise oldukça yeniyim ancak paralel poru kullanmanız kolaylık sağlayacaktır, çünkü tam manası ile paralel port yazıcılarında driver testi uygulanmıyor bu sayede başka yazıcının sürücüsü ile çalışmalar yapabilirsiniz.

Bu işin denemesini paralel portta başka bir yazıcı driverı yükleyerek yaptım HP 610C'yi bilmeyen yoktur herhalde. Bazıları siyah beyaz bazıları çıktıyı bile bozmuş karkacık kurgacık metinler çıkartmıştı.
Zulmü alkışlayamam, zalimi asla sevemem; Gelenin keyfi için geçmişe kalkıp sövemem.