Yazarlar Sözlük Makaleler Yardım Masası Gözlük Forum İstatistik

Yardım Masası

SORU: Php ve Pdf
Php ile yazdığımız uygulamalarda yazdırma kısmında HTML kullanıyorum ve bu maalesef sorun oluyor. Yani Dosya menüsünden Yazdır komutunu verdiğimizde sürekli sağ-sol kenar ayarları vb.. yazıcılarla ilgili ayarlar var ve maalesef bir türlü tüm yazıcılarda geçerli olacak bir yöntem bulamadım.

Dün bu konu hakkında sitede araştırma yaparken bu sorunu, çıktıları pdf olarak verdiğimizde çözebileceğimizi anladım. Pdf ile ilgili internette çok fazla kaynak var fakat kısa sürede sonuca gidebilme açısında bu sorunla daha evvel karşılaşmış ve çözmüş birisi varsa nerden başlamam gerektiği konusunda yardımcı olabilir mi?

Yani Php kullanarak Mysql den alınan verileri Pdf olarak raporlamak istiyorum. Hangi araçları kullanmalıyım..


Cevaplar

1.  3-4 sene kadar önce bunu yapmam icap etmişti. PHP'nin kendi PDf fonksiyonları o zaman çok karışık gelmişti, ben de PDF çıktısı üreten bir PHP library'si bulmuştum. Bununla PDF'in üzerine yazıp çizebiliyordum. Şimdi eminim çok daha profesyonel kütüphaneler yazılmıştır. Hatta PHP için rapor tool'u da geliştirilmiş olabilir. Araştırmak lazım.

Şu sitede PHP'nin kendi PDF fonksiyonları anlatılmış. İnceleyebilirsiniz. (Ben biraz inceledim hiç de karışık değil. :)
http://www.sitepoint.com/article/generate-pdfs-php
fizikci
25 Kasım 2006 10:36
2.  3-4 sene evvelinde derken, 3-4 yıldır php yi kullanarak yazıcıdan çıktı almadığınız anlamına mı geliyor?

Verdiğiniz linkteki makele güzel. Oradaki fonksiyonlar manual de de geniş geniş anlatılmış. Pdflib kütüphanesini kurdum. Örnekleri inceledim. Yazı yazarken filan sorun yok ama karne şeklinde bir dizaynım var. Bunu bu fonksiyonlarla nasıl ve kaç saatte yaparım bilmiyorum. En basitinden alt satıra geçmek için bile fonksiyon var (PDF_continue_text).. Html de stillerle dakikalarda yapılacak işlem burada saatler alabilir.

Başka çare olmadığını düşündüğüm için pdf çıktısı almak istiyorum. Eğer pdf le filan uğraşmadan yapılabilecek bir şey varsa tabii o da olur.

Yani asıl sorunum tüm printer larda aynı şekilde basılabilecek bir çıktı üretmek. Yani programı kullanan herkes oturup ayar yapsın istemiyorum. Ama window.print gibi basit bir komut kullanınca iş windows a kalıyor ve haliyle istediğimde olmuyor. Eğer php ile çıktı alırken sizin kullandığınız farklı metodlar varsa onları öğrenmek isterim. Amerika'nın tekrar tekrar keşfedilmesini kimse istemez sanırım :)
allenscoot
25 Kasım 2006 12:42
3.  Evet bugüne kadar geliştirdiğim uygulamaların sadece bir tanesinde bunu yapmak zorunda kaldım, çünkü çıktıyı matbu kâğıda basmak gerekiyordu ve bir seferde beş sayfadan oluşan çıktılar vardı. Bunun dışında müşterilerimiz her zaman browser'dan aldıkları çıktıyı yeterli gördüler.

Siz eğer matbu kâğıda basmıyorsanız müşterinize az bir eğitim vererek browser'dan çıktı almasını sağlayabilirsiniz.

Bu arada "window.print gibi basit bir komut kullanınca iş windows'a kalıyor" ifadesini anlamadım. Yazma işi ne zaman windows'a kalmıyor ki? PDF kullansanız da insanlar Acrobat Reader'ın içinden print komutunu verecek ve yine iş windows'a kalacak.

Aslına bakarsanız çıktı almada browser'ın tek dezavantajı şu: Birden fazla sayfa olduğu zaman sayfa sonlarını kontrol edememek. Bunun için W3C'nin "pagebreak" falan gibi bir çalışması vardı ama ne yaptılar, nasıl yaptılar bilmiyorum. Eğer çıktınız bir sayfadan oluşuyorsa probleminiz yok demektir.

Arka planın yazdırılması veya yazdırılmaması, sayfanın adresinin footer olarak yazılması veya yazılmaması gibi küçük problemler de var elbet, ama bunlar az bir eğitimle çözülebilir.
fizikci
25 Kasım 2006 15:50
4.  bkz: page-break-after
fizikci
26 Kasım 2006 18:20
5.  Fizikci Hocam cevapların için sağolasın. Bir kaç gündür hastanelerde olduğum için cevap yazamadım. Aslında girdiğiniz son mesajla "sanırım" sorunumu büyük ölçüde çözmüşsünüz, sağolasınız..

""window.print gibi basit bir komut kullanınca iş windows'a kalıyor"" ifadesinde anlatmak istediğim php kullanarak printer'ı hiç yazıcı ayar sayfasını filan göstermeden programlayabilir miyiz? gibi bir soru idi. Ama sayfa sonlarını belirleyebiliyorsak buna gerek kalmayacak sanırım. Çünkü sürekli form gibi A4 leri ardarda yazdırdığımda her kağıtta milimetrik kaymalar oluyor ve bu kaymalar mesela 20. kağıda geldiğinde çıktının 2. bir kağıda taşmasına neden oluyor. Ama sayfa sonunu kontrol edebiliyorsak her sayfa için tek tek print demiş gibi olacağız sanırım..

Bir de Acrobat ile yazdırırken sayfada ne gözüküyorsa çıktıya da o geliyor. Ama html de kaymalar oluyor. Ayrıca js ile yapılan bazı düzeltmeler yazıcıdan çıktıyı alırken etkili olmuyo..

Ben sizin göstermiş olduğunuz yöntemi henüz denemedim. Denedikten sonra eğer bir sorunla karşılalırsam yine bu başlık altında yazarım..

Yardımlarınız için çok teşekkür ederim..
allenscoot
30 Kasım 2006 11:56
Bu konuda bildiklerinizi bizlerle paylaşabilirsiniz
Tabi bunun için yazarsanız giriş yapmalı, yazar değilseniz yazar olmalısınız.
© 2005, Bilişim Kulübü. (1078 ms)
Ne yapabilirsin: SubtitleClick ile İngilizceni Geliştir, Çınar Framework ile kod yaz, Eglencelik.org'ta biraz eğlen