resim yazdırma
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
resim yazdırma
merhabalar,
harddiskte olan bir resim dosyasını kesinlikle hiçbir forma almadan yazdırmak istiyorum. yani resmi bir image nesnesine loadfromfile yapmadan ya da herhangi bir raporlama aracına almadan (quickreport, fastreport vs.) direk yazıcıya göndermek istiyorum.
mümkünmüdür? nasıl olur?
harddiskte olan bir resim dosyasını kesinlikle hiçbir forma almadan yazdırmak istiyorum. yani resmi bir image nesnesine loadfromfile yapmadan ya da herhangi bir raporlama aracına almadan (quickreport, fastreport vs.) direk yazıcıya göndermek istiyorum.
mümkünmüdür? nasıl olur?
- Bir programcı böyle sorular sormamalı.
- Bu soruyu Sohbet bölümünde şöyle sorabilirsin. "Bir resim düzenleme / gösterme programını söyler misiniz ?Batch operasyon ile parametre ile resim dosyasının adını vericem o da direkt yazıcıya gönderecek... "
- Cevap şöyle bir program veya benzerini kullanabilirsin http://www.outsmartsoftware.com/batch-p ... image.html
- Bu soruyu Sohbet bölümünde şöyle sorabilirsin. "Bir resim düzenleme / gösterme programını söyler misiniz ?Batch operasyon ile parametre ile resim dosyasının adını vericem o da direkt yazıcıya gönderecek... "
- Cevap şöyle bir program veya benzerini kullanabilirsin http://www.outsmartsoftware.com/batch-p ... image.html
Re: resim yazdırma
irfanview yada xnview in komut satırı parametreleri ile mümkündür.nitro yazdı:merhabalar,
harddiskte olan bir resim dosyasını kesinlikle hiçbir forma almadan yazdırmak istiyorum. yani resmi bir image nesnesine loadfromfile yapmadan ya da herhangi bir raporlama aracına almadan (quickreport, fastreport vs.) direk yazıcıya göndermek istiyorum.
mümkünmüdür? nasıl olur?
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
soru yanlış anlaşıldı sanırım. ben bunu yapan bir program aramıyorum. bir delphi programında kod ile yazdırmak istiyorum. düşünün ki program seri bir şekilde harddiske resim kaydediyor, bu resimleri raporlama aracı ile ya da form.print gibi komutlarla yazdırma olayında sıkıntı var. (çok uzun hikaye) bunu yapabilen bir api vardır sanırım.
örnek vereyim: mesele cdrom açma olayı olsa. ben cdromu nasıl açarım diye sormuyorum, cdromu kod ile açmak istiyorum.
umarım anlatabilmişimdir.
emek veren herkese çok teşekkürler.
saygılarımla
örnek vereyim: mesele cdrom açma olayı olsa. ben cdromu nasıl açarım diye sormuyorum, cdromu kod ile açmak istiyorum.
umarım anlatabilmişimdir.
emek veren herkese çok teşekkürler.
saygılarımla
-
- Kıdemli Üye
- Mesajlar: 1223
- Kayıt: 26 Nis 2005 04:08
resimleri formda görüntüledikten sonra yazdırmanın sakıncalarını buradaki sıkıntıları anlatırsan bizide aydınlatırsın ancaknitro yazdı:soru yanlış anlaşıldı sanırım. ben bunu yapan bir program aramıyorum. bir delphi programında kod ile yazdırmak istiyorum. düşünün ki program seri bir şekilde harddiske resim kaydediyor, bu resimleri raporlama aracı ile ya da form.print gibi komutlarla yazdırma olayında sıkıntı var. (çok uzun hikaye) bunu yapabilen bir api vardır sanırım.
örnek vereyim: mesele cdrom açma olayı olsa. ben cdromu nasıl açarım diye sormuyorum, cdromu kod ile açmak istiyorum.
umarım anlatabilmişimdir.
emek veren herkese çok teşekkürler.
saygılarımla
daha önce açtığım çeşitli kod ipuçları isimli threadde yazıyı doğrudan kullanmak ve resim yazdırmakla ilgili bir kaç kod vardı. arama yapıp incelemeni öneririm.
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
Mesele iyice yokuşa sürülmüş.Arkadaşım yapacağın iş illa resim görünmeyecek diyorsan...image nesnesinin visible özelliğini false yap..sonra şu kodları dene...
Kod: Tümünü seç
procedure TForm1.resim_yazdir;
var ADevice,ADriver,APort:PChar;
ADeviceMode:THandle;
PrinterVar:Boolean;
Rect:TRect;
begin
Rect.Top:=0;
Rect.Left:=0;
Rect.Right:=Image1.Picture.Graphic.Width;
Rect.Bottom:=Image1.Picture.Graphic.Height;
PrinterVar:=True;
try
Printer.GetPrinter(ADevice,ADriver,APort,ADeviceMode);
except
PrinterVar:=False;
end;
if PrinterVar then
begin
Printer.BeginDoc;
try
Printer.Canvas.StretchDraw(Rect,Image1.Picture.Graphic);
Printer.EndDoc;
except
Printer.Abort;
raise;
end;
end else showmessage('Default printer tanimli degil!');
end;
@Battosai
- Cevap hakkı doğuyor. Muhataplardan biri de ben olduğuma göre yokuşa sürenlerin başında da ben geliyorum demektir. Eğer aradığı cevap buysa ne ala...
- @nitro aramasını bilmiyor mu, bu kodu ve nicesini bulamayacak mı ? Bu kadar makale yazıldı çizildi.
- Şimdi şuna cevap ver, PNG, TIFF, JPG, GIF, PNG hatta daha ileri gideyim aşağıdaki uzantılı resimlerim var ve TImage nesnesine yükleyemiyorum dese ?!
- Uzun lafın kısası cevap yazarken bin kere düşünüp bir kere yazıyoruz. Maksat yokuşa süremek değil, aynı kodları binlerce kere yazmamak.
- Cevap hakkı doğuyor. Muhataplardan biri de ben olduğuma göre yokuşa sürenlerin başında da ben geliyorum demektir. Eğer aradığı cevap buysa ne ala...

- @nitro aramasını bilmiyor mu, bu kodu ve nicesini bulamayacak mı ? Bu kadar makale yazıldı çizildi.
- Şimdi şuna cevap ver, PNG, TIFF, JPG, GIF, PNG hatta daha ileri gideyim aşağıdaki uzantılı resimlerim var ve TImage nesnesine yükleyemiyorum dese ?!
Kod: Tümünü seç
TIF - Image format
TIFF - Image format
JPG - Image format
JPEG - Image format
GIF - Image format
BMP - Image format
CUT - Image format
ICO - Image format
LBM - Image format
JNG - Image format
COA - Image format
MNG - Image format
PBM - Image format
PCD - Image format
PCX - Image format
PGM - Image format
PNG - Image format
PPM - Image format
PSD - Image format
RAS - Image format
TGA - Image format
WBMP - Image format
XBM - Image format
XPM - Image format
iyide üstad nitro acemi bir programcı değil. visile:=false olayını heralde düşünmüştürBattosai yazdı:Nitro bi denesin bakalım Bende printer olmadığı için denemedim.Ayrıca hele image'in desteklediği uzantıları print etsin gerisine bi çare bulunur.
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
sorunu daha detaylı yazmak istiyorum olay şu. bir form var, zemini beyaz, üzerinde birkaç label ve titleları, satır-sütun çizgileri yok edilmiş bir datagrid var. bu formu nokta vuruşlu yazıcıdan yazdırmak istiyorum. raporlama araçları kullanınca yazıcı istediğim yerde durmuyor. yazdıracağım belge 9 santim boyunda ama xp yazıcının a4 kadar sarmasını sağlıyor. konuya çok farklı çözümler denedim. yazıcıya veriyi text olarak göndermeyi de denedim ama istediğim yerde durmadı. sonuçta bir milimetre bile fazla ilerletse 20 belge yazdırdıktan sonra 2 santim yazılar kaymış olur. ki bu program arka arkaya 200-300 belge yazdırmak için yapıldı.
yazıcı sunucu özelliklerinden xpde lazım olan kağıt boyutunu girdim. formu hazırladım ve form.print dedim. sorunsuz yazdırdı. olayı dngü içine koydum. formdaki veriler değiştikçe form.print ile yazıcıya gönderdim. bir ya da 2 tane düzgün yazdırıyor sonra formun boyutlarınca her yeri karalıyor. yazıcıya sanki simsiyah bir resim göndermişsiniz gibi düşünün. bi de bunu yazdıran nokta vuruşlu yazıcının yazdırdığını düşünürseniz cazırtıdan sinir krizi geirmemek mümkün değil.
kendi kendime dedim ki "döngü içinde form tam olarak oluşturulamıyor, o nedenle yazıcıya simsiyah sayfa gidiyor" araya sleep ile bekleme koydum nafile. form.refresh, form.repaint gibi kodlar koydum nafile. döngüden çıkarı bi butona koydum butona tıkladıkça labellar ve grid içeriği değiştirilip yazıcıya gönderiliyordu. nafile. farklı yazıcılar denedim (kxp-1150, epson lx300, oki 520) nafile. farklı bilgisayarda denedim nafile.
döngüyü tier'a bağladım nafile.
en son dedim ki formu resim olarak kaydetsem de ara ara yazıcıya gödersem olur belki. o da olmuyomuş. mrmarman hocam öyle dedi. forma almam saçma olur çünkü zaten form.print ile gönderdiğim çıktılar bazen doğru yazdırıyor bazen yanlış yazdırıyor.
işte durum bu sayın hocalarım.
ben mesajlarda yokuşa sürme diye bi şey algılamadım. zahmet edip cevap yazarken bastığınız her tuş için Allah razı olsun. Sonuçta burası hiç kimsenin hiçbir zorumluluğu olmadan iyi niyet için yardımlarını esirgemedii bir forum. konuyu anlatabildiysem ne mutlu. anlamak isteyen varsa anlaşılmayan kısımlarını daha detaylı yazarım.
saygılarımla
yazıcı sunucu özelliklerinden xpde lazım olan kağıt boyutunu girdim. formu hazırladım ve form.print dedim. sorunsuz yazdırdı. olayı dngü içine koydum. formdaki veriler değiştikçe form.print ile yazıcıya gönderdim. bir ya da 2 tane düzgün yazdırıyor sonra formun boyutlarınca her yeri karalıyor. yazıcıya sanki simsiyah bir resim göndermişsiniz gibi düşünün. bi de bunu yazdıran nokta vuruşlu yazıcının yazdırdığını düşünürseniz cazırtıdan sinir krizi geirmemek mümkün değil.
kendi kendime dedim ki "döngü içinde form tam olarak oluşturulamıyor, o nedenle yazıcıya simsiyah sayfa gidiyor" araya sleep ile bekleme koydum nafile. form.refresh, form.repaint gibi kodlar koydum nafile. döngüden çıkarı bi butona koydum butona tıkladıkça labellar ve grid içeriği değiştirilip yazıcıya gönderiliyordu. nafile. farklı yazıcılar denedim (kxp-1150, epson lx300, oki 520) nafile. farklı bilgisayarda denedim nafile.
döngüyü tier'a bağladım nafile.
en son dedim ki formu resim olarak kaydetsem de ara ara yazıcıya gödersem olur belki. o da olmuyomuş. mrmarman hocam öyle dedi. forma almam saçma olur çünkü zaten form.print ile gönderdiğim çıktılar bazen doğru yazdırıyor bazen yanlış yazdırıyor.
işte durum bu sayın hocalarım.
ben mesajlarda yokuşa sürme diye bi şey algılamadım. zahmet edip cevap yazarken bastığınız her tuş için Allah razı olsun. Sonuçta burası hiç kimsenin hiçbir zorumluluğu olmadan iyi niyet için yardımlarını esirgemedii bir forum. konuyu anlatabildiysem ne mutlu. anlamak isteyen varsa anlaşılmayan kısımlarını daha detaylı yazarım.
saygılarımla
-
- Kıdemli Üye
- Mesajlar: 1223
- Kayıt: 26 Nis 2005 04:08
Daha profesyonel bir çözüm var ama bir unit kullanmak gerek bunun için ve bir test çıktısı alınmalı o nedenle kestirme yolu öneriyorum, printer.canvas metodunu kullanarak kısa ve stabil çözümü üretebilirsin fakat 3-4 kağıt telef etmeyi göze alacaksın, ki anladığım kadarıyla daha fazlasını telef etmişsin
Kolay gele.

Kolay gele.
1. özel kağıt boyutu tanımla.. bunu nasıl yapacağın konusunda google da arama yapmalısın.
2. kendi kağıdını noktasına virgülüne ölçüp bu boyutu doğrula. (logoda milimetrenin onda 2 si kadar bir kayma bizim tüm defteri kebiri katlediyordu az daha)
3. kendi formundan raw olarak yazıcıya yazdır. ancak yazıcı sürücüsü olarak imb graphic sec. dot matrix nasıl olsa bu sürücü ilede yazar
2. kendi kağıdını noktasına virgülüne ölçüp bu boyutu doğrula. (logoda milimetrenin onda 2 si kadar bir kayma bizim tüm defteri kebiri katlediyordu az daha)
3. kendi formundan raw olarak yazıcıya yazdır. ancak yazıcı sürücüsü olarak imb graphic sec. dot matrix nasıl olsa bu sürücü ilede yazar
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog