| naile | 20.04.2004 - 10:06:06 |
| Nereye yazacağımı biraz şaşırdım aslında..
Sorunu yaşayan bir arkadaşım, biraz yorumlarınıza ihtiyacım var. php kullanıyorlar, formu yazıcıdan çıkarmak için yazıcı ayarlarını phpde yapamıyorlarmı, windowsta oluyormuş ama serverları linux olduğundan yapamamış bi türlü çünkü olmuyomuş. Acaba dedi yazıcı olayını delphi ile mi halletsem ama bu internetten çalışan birşey ve her yerde kullanılacak. Yani mesela adam x ilçesinde bu sayfaya girdiğinde formu yazıcıya göre istediği şekilde ayarlayıp yazdırabilecek. Böyle bir istek için önerileriniz ne olur? Umarım isteği tam olarak anlayıp anlatabilmişimdir. | |
| rsimsek | 20.04.2004 - 12:21:24 |
| Merhaba Naile hn.
Bahsettiğiniz olay web üzerinden olduğundan php tarafta böyle bir ayar yapma imkanı nasıl olur tam bilemiyorum:( Sonuçta php nin oluşturduğu html yi sistemde tanımlı yazıcıdan bastırabilmek lazım. Server in ne olduğu önemli değil ulaşılan ortam ne ise ve sisteme tanımlı bir yazıcı varsa sorun yok. Ama eğer siz raporu istediğim gibi düzenliyeyim diyorsanın yine php ile bir form sayfasında raporda çıkmasını istediğiniz alanları işaretleyip o şekilde de yazdırabilirsiniz. php den direkt yazdırma olabileceği gibi browser dan html i de yazdırabilirsiniz. | |
| mcihad | 20.04.2004 - 15:38:26 |
| PHP de yazıcı fonksiyonları yok zannedersem
ama javascript:print() fonksiyonu zaten yazıcı ayarlar dialog penceresini getriyor | |
| gince | 20.04.2004 - 16:27:51 |
| merhaba nailenin bahsettiği arkadaş benim. Ben sorunumu biraz daha açacak olursam ben php'de bir form hazırladım bu form veritabanı ile bağlantılı ve veritabanından istenilen bilgileri aldıktan sonra A5 kağıdı boyutunda bir form oluyor. Fakat bu formun çıktısının A5 kağıdına olması gerekiyor. Bu yüzden bu formun çıktısını alacak kişi gidip browserın yazdır alanından A5 işaretlemesi gerekiyor birde herkesin bilgisayarındaki yazıcılar farklı ve sayfa yapıları da farklı olduğu için A5 seçilme bile bazen çıktı düzgün olmayabiliyor. Benim istediğim bu ayarları kullanıcılardan bağımsız program kodlarıyla yapmak. Yani kağıt boyutunu,sayfa yapısını program kodlarıyla ayarlayayım ve yazdır diye bir buton koyup, kullanıcı bu butona bastığı zaman çıktı yı alsın yani yazıcı ayarlarıyla uğraşmasın. Bunu php'de çok araştırdım fakat bunu sadece sunucu tabanlı yapılabileceğini öğrendim o yüzden bunu delphinin internet komponentlerini kullanarak yapıp yapamayacağım araştırıyorum. Bu konuda bana yardımcı olursanız çok sevinirim. (Bu programın mutlaka internet üzerinde çalışması gerekiyor veritabanıyla bağlantılı olup yazıcı ayarlarınında program koduyla yapılması gerekiyor) | |
| rsimsek | 20.04.2004 - 16:41:19 |
| aşağıdaki linkde cevabı bulunabilir.
http://tr.php.net/manual/tr/function.printer-open.php diğer ilgili linkler www.php.net www.php.org.tr | |
| gince | 20.04.2004 - 16:44:48 |
| Bu sayfayı çok inceledim ama bu kodlar sadece sunucu bilgisayarına bağlı yazıcı için geçerli oysa benim istediğim herkes kendi bilgisayarından internetten benim yaptığım sayfaya gitsin ordan kendi yazıcısından yada ağdaki bir yazıcı da olabilri çıktı alsın.
aşağıdaki linkde cevabı bulunabilir.
http://tr.php.net/manual/tr/function.printer-open.php diğer ilgili linkler www.php.net www.php.org.tr | |
| onaydin | 21.04.2004 - 00:58:54 |
| eğer browser'a header dan bu tarz bilgiler gönderebiliyor olsaydık
haliyle php ile yapılırdı ama sanırım mümkün değil. activeX ile şöyle bişey denemişler <script language=javascript> var x; function SetPrintProperties() { x = new ActiveXObject("WScript.Shell") x.SendKeys("+(%fu)"); window.setTimeout("javascript:SetPaperSize();", 200) } function SetPaperSize() { x.SendKeys("aa"); x.SendKeys("~"); x.SendKeys("+(%f)p"); } </script> burda x.SendKeys("aa"); değeri default olanı onu x.SendKeys("a5"); yaptım tuttu :) yazdır penceresi geliyor orada benimkinde a5 çıktı ve a5 formunda yazdırdı (a5 a4 ten ebat olarak küçükmüş, öğrendim böylece) window.setTimeout("javascript:SetPaperSize();", 200)
burdaki 200 değeri aslında o anda page setup penceresini açıyor o pencerenin ne kadar açık kalacağını gösteriyor siz onu düşürdükçe o kadar erken kapanıyor tek sorun activeX uygulaması çalıştırmak istiyor musunuz diye bir pencere çıkartıyor http://codingforums.com/showthread.php?t=36037 umarım hallolmuştur | |
| gince | 21.04.2004 - 09:20:11 |
| kodu nereye yerleştirmem gerekiyor ben head'lerin arasına yerleştirdim ama bunu nerde ve nasıl çağıracağımı bilemedim.
eğer browser'a header dan bu tarz bilgiler gönderebiliyor olsaydık
haliyle php ile yapılırdı ama sanırım mümkün değil. activeX ile şöyle bişey denemişler <script language=javascript> var x; function SetPrintProperties() { x = new ActiveXObject("WScript.Shell") x.SendKeys("+(%fu)"); window.setTimeout("javascript:SetPaperSize();", 200) } function SetPaperSize() { x.SendKeys("aa"); x.SendKeys("~"); x.SendKeys("+(%f)p"); } </script> burda x.SendKeys("aa"); değeri default olanı onu x.SendKeys("a5"); yaptım tuttu :) yazdır penceresi geliyor orada benimkinde a5 çıktı ve a5 formunda yazdırdı (a5 a4 ten ebat olarak küçükmüş, öğrendim böylece) window.setTimeout("javascript:SetPaperSize();", 200)
burdaki 200 değeri aslında o anda page setup penceresini açıyor o pencerenin ne kadar açık kalacağını gösteriyor siz onu düşürdükçe o kadar erken kapanıyor tek sorun activeX uygulaması çalıştırmak istiyor musunuz diye bir pencere çıkartıyor http://codingforums.com/showthread.php?t=36037 umarım hallolmuştur | |
| onaydin | 21.04.2004 - 12:03:48 |
| aslında kodun nerde duracağı pek önemli değil
body içindende okuma yapabiliyor <html> <head> <title>A5 .. yazdırma</title> <meta http-equiv="Content-Type" content="text/html; charset=windows-1254"> <script language=javascript> var x; function SetPrintProperties() { x = new ActiveXObject("WScript.Shell") x.SendKeys("+(%fu)"); window.setTimeout("javascript:SetPaperSize();",200) } function SetPaperSize() { x.SendKeys("a5"); x.SendKeys("~"); x.SendKeys("+(%f)p"); } </script> <style type="text/css"> <!-- .verd { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px; } --> </style> </head> <body> <input type=button name=btnClick value="Print" onclick="javascript:SetPrintProperties();"> <div class="verd">A5 yazdır..</div> </body> </html> Birde font özelliklerini CSS kullanarak belirlerseniz kullanıcı hemen hemen sizdeki tasarımı görecektir, aksi halde mesela browser / view / text size da yazı tipi boyutunu büyük küçük diye ayarlarsa fontlar sizdekinden farklı gözükür. | |
| mege | 21.04.2004 - 13:05:24 |
| eğer sistemde norton varsa sendkey olayında güvenlik açığı var alarmı verip sayfayı açmıyor,tikkatinizi çekerim | |
| gince | 21.04.2004 - 14:29:37 |
| Bir çalışma zamanı hatası oluştu. satır 9,otomasyon sonucu dosya oluşturulamıyor. hatası veriyor. | |
| onaydin | 21.04.2004 - 17:20:56 |
| activeX le browser ın baya bi özelliğine erişilebildiğinden olsa
gerek güvenlik nedeniyle çalıştırılmıyor olabilir bende i.e 6.0 ing , winXP üzerinde çalışıyor, sizde çalışmamasının sebebi versiyon farklılığından ya da güvenlik ayarlarınızdan kaynaklanabilir. bi deneme yapıp hangi versiyonlarda çalışıp çalışmadığına bakmak lazım. bu formu basacak bilgisayarlar bir firmanın farklı bilgisayarları ise belki bunlarda uygun versiyonların kurulması istenir. http://www.meadroid.com/scriptx/index.asp adresinde bi uygulama geliştirmişler, sayfa alt ve üst bilgilerini değiştirebiliyor sanırım bunları yapan sayfa ebatını da değiştirebilir. | |