Aslında sorumun içinde meramımı anlatabildim neredeyse. Bir excel dosyasına PHP ile veri yazıyorum. Kullanıcılar oluşturdukları bu Excel dosyasını download edebiliyorlar. Yani Aç Kaydet İptal penceresi çıkıyor. Fakat bu excel dosyasının oluşturulduktan sonra otomatik olarak kullanıcıların varsayılan yazıcısına gönderilmesini ve yazıcı penceresinin çıkıp OK 'e basıldığında çıktı alınmasını istiyorum. Bunun için Javascript gibi client side çalışan bir koda ihtiyacım var. Örneğin gizli bir Iframe oluşturup bu Iframe içine "src=dosyam.pdf" gibi pdf dosyasını koyduktan sonra javascript'in window.print() fonksiyonunu kullandığımda pdf dosyası yazıcıya çıktı olarak gönderilebiliyor. Fakat aynı Iframe içine Excel dosyası koymak istediğim zaman içi boş görünüyor ve otomatik olarak download penceresi çıkıyor. Benim istediğim download penceresi olmadan yazıcıya PDF gönderir gibi Excel göndermek. Bunun için mutlaka kullanıcının Excel dosyasını indirmesi ve manuel olarak yazıcısına göndermesi şart mı? Yoksa Iframe içinde PDF yazdırır gibi Excel yükleyip yazıcıya gönder komutunu kullanabilir miyim? Yada başka bir yöntemi var mı?

Güncelleme: Bu sorumun cevabını bulamadım ama tavsiylere uyarak mail atmak istediğim bilgileri Excel dosyasına değil de bir html sayfasına yazdırıp mail atma yöntemini kullandım. Excel dosyasını direk client bilgisayarın yazıcısına göndermek gibi bir olay güvenlik açısından sakıncalı olacağı için pek mümkün olmadığı şeklinde yorumlar var.

soruldu: 28 Ağu '12, 05:18

numankaraaslan's gravatar image

numankaraaslan
1.8k253749
cevap kabul oranı: 19%

değiştirildi: 06 Eyl '12, 03:59

Merhaba,

Excel dosyasına veriyi hangi yolla yazdırıyorsunuz? External bir API mi kullanıyorsunuz? Bunu soruyorum çünkü kullandığınız API'ye göre cevap değişecektir.

(29 Ağu '12, 01:16) mabulgu ♦ mabulgu's gravatar image

Hayır externalbir api değil basit bir yöntem var xlswritelabel() gibi fonksiyonları olan. Birisinin yazdığı birşeydi ama kişinin ismini unuttum.

(29 Ağu '12, 01:43) numankaraaslan numankaraaslan's gravatar image

Web sayfasındaki kod ile kullanıcıdaki yazıcıya doğrudan ulaşamazsınız. Excel için bir browser eklentisi olmadığından, excel dosyasını da browserda açamazsınız. Java applet ile belki bir çözüm uygulayabilirsiniz. jZebra'ya bir göz atın. PDF'in browser için eklentisi olduğundan açılıp yazdırılabiliyor. Belki excel için de bu işlemi yapan 3. parti bir activex bulunabilir. Güvenlik açısından kesinlikle önermiyorum.

(30 May '13, 00:30) ertuncefeoglu ertuncefeoglu's gravatar image

Ben kısaca yaşadığım tecrübeyi aktarayım. Senin yaşadığın türde bir olay benim başımdan da geçti Ben tam tersine sunucunun oluşturup bana gönderdiği PDF dosyayı yazıcıya göndermek istiyordum. İncelemelerim sonucunda, istemci kaynaklarına erişilemediğini öğrendim ve alternatif çözüm arayışına gittim. Burada Adobe bana yardımcı oldu ( Acrobat Reader eklentisi ile ). Acrobat reader, PDF dosya içerisinde javascript kodun tetiklenmesine imkan veriyor. Dolayısıyla, ben oluşturulan PDF dosya içerisine, istemcinin yazdırmak ekranını gösterecek kodu yerleştirdim. Ne zaman ki sunucudan PDF dosya dönüyor, dosyayı görüntüledikten hemen sonra yazdırma ekranını açıyor ve iş print butonuna basmak kalıyor.

Konu, Excel de aynı mantığa sahipmi bilmiyorum. Eğer içine gömülü VbScript parçasını otomatik olarak çalıştırıyorsa, o zaman sunucu dosyayı oluştururken vbscript kodunu içine yazabilirsin.

GÜNCELLEME : Maalesef baktığım birkaç PHP ile Excel oluşturma uygulamasında dosya içine macro gömemiyorsunuz :(

permanent link

cevaplandı: 29 May '13, 15:42

O%C4%9Fuz%20%C3%87elikdemir's gravatar image

Oğuz Çelikdemir
2.0k52234
cevap kabul oranı: 13%

değiştirildi: 29 May '13, 15:43

Excel, Word, PDF gibi dosyalar üçüncü parti dosya formatlarıdır. Tarayıcıların herhangi bir dosyayı tanıması için o dosyanın eklentisi tarayıcıya kurulması gerekir. PDF yi çoğu tarayıcı destekler çünkü her kullanıcı Adobe Reader programını kurar bilgisayarına. Ofis bileşenleri de çoğu windows sistemlere kuruludur ama kurulum sırasında tarayıcı eklentisi seçilmemişse tarayıcılar yine desteklemez. Üçüncü parti bir dosyanın tarayıcı tarafından tanınıp tanınmaması bir muammadır.

Ben farklı bir bakış açısı sunacağım. Her tarayıcı HTML formatını destekler :) Eğer çok karışık Excel tabloları oluşturmuyorsanız Exceldeki aynı işi yapan bir HTML tablosu oluşturun ve değerleri onun içine girin. Örneğin şunu bir iframe içerisinde kullanın sonra Javascript ile print() komutunu gönderin o zaman her tarayıcıda çalışır. Linux, Win, Mac farketmez. Ofis kurulumu yada üçüncü parti herhangi birşey gerektirmez.

Ayrıca bir örnek daha vereyim. Örneğin Word'de matematiksel formüller çok hoş şekilde yazılabiliyor. Mesela integral işaretini bile yazabiliyorsunuz. Bunu siz yazılımsal olarak oluşturup tarayıcı ile yazıcıdan çıktısını aldırmak istiyorsunuz. Bunun için ille tarayıcıya Word kurulması gerekmez. Sizin de yazılımsal olarak Word API kullanmanız gerekmez. Artık günümüzde herşeyi Javascript ile yapmanız mümkün. Matematik formüllerini JS ve HTMl kullanarak yapabilirsiniz. http://www.fmath.info/ Ufak bir Google araması yeterli bunun için.

Ama bu tarz farklı şeyler için Türkçe kaynak neredeyse yok gibi. Bu yüzden ingilizce olarak arama yapmanız gerekiyor. Örneğin şöyle.

İyi çalışmalar...

permanent link

cevaplandı: 18 May '14, 05:20

kodmanyagha's gravatar image

kodmanyagha
3.1k132852
cevap kabul oranı: 15%

Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×168
×15
×5
×3

Soruldu: 28 Ağu '12, 05:18

Görüntüleme: 2,353 kez

Son güncelleme: 18 May '14, 05:20

powered by BitNami OSQA