Internet uygulamalarında bazen sonuçlar ekrana bastırmak yerine PDF formatında dosylara bastırmak gerekebilir. Genelde alışveriş sitelerinde fatura uygulamalarında gerekli olan bu durum için PHP üzerinde yazılmış hazır sınıflar mevcuttur. Bu yazımda pdf sınıflarından biri olan TCPDF`in CodeIgniter üzerine aktarılması konusunu alatacağım.
Bu sınıfın CodeIgniter`a entegrasyonu Jonathon Hill tarafından hazırlanmış ve Wiki syfalarında yayımlanmıştır. Bu yazıda kurulum sırasında yaşadığım tecrübeleri anlatıp, dikkat edilmesi gereken noktaları da belirterek entegrasyonun nasıl çalıştıtıldığını anlatmak istiyorum. TCPDF`in nasıl kullanılacağını en iyi kendi sayfasındaki örneklerden öğrenebilirsiniz.
Birinci adım olarak TCPDF`in sayfasından kullandığımız PHP versiyonuna göre ilgili dosyaları bilgisayarımıza indiriyoruz ve bu dosyaları application dizini altına açacağımız 3rdparty/tcpdf dizini altına kayıt ediyoruz. Böylelikle çağıracağımız plugini application dizini altına almış olduk. Daha sonra buradaki adresten iki dosya indiriyoruz ve tcpdf.php dosyasını application/config dizini altına, pdf.php dosyasını application/libraries altına kopyalıyoruz.
Application/config dizini altındaki tcpdf.php dosyası TCPDF kütüphanesi içinde kullanıcının değiştireceği değerleri içermektedir. Bu dosyadaki her değeri isteğimize göre değiştirebileceğimiz gibi öncelikle 40. satırı kendimize göre değiştiriyoruz:
$tcpdf['base_url'] = 'http://sidearesi/alt_dizin/'.APPPATH.'3rdparty/tcpdf/';
Daha sonra application/controllers dizini altına pdf_test.php isimli controller dosyamızın içine TCPDF`in kendi sayfasında örnek olarka veridiği aşağıdaki kodları yazarak ekliyoruz:
class pdf_test extends Controller {
function pdf_test()
{
parent::Controller();
}
function tcpdf()
{
$this->load->library('pdf');
// doküman bilgilerini ayarlıyor
$this->pdf->SetSubject('TCPDF Tutorial');
$this->pdf->SetKeywords('TCPDF, PDF, example, test, guide');
// font ayarlıyor
$this->pdf->SetFont('times', 'BI', 16);
// sayfa ekliyor
$this->pdf->AddPage();
// Cell() komutu ile yazı ekliyor
$this->pdf->Cell(0, 12, 'Example 001 - €à èéìòù', 1, 1, 'C');
//PDF dokümanını kapatıp yazdırıyor
$this->pdf->Output('example_001.pdf', 'I');
}
}
Şimdi bu test controller dosyasını çağırdığımızda (http://sidearesi/alt_dizin/pdf_test/tcpdf), oluşturduğumuz pdf dosyası ekrana basılacaktır. Ancak ben denediğimde "K_CELL_HEIGHT_RATIO değeri bulunamadı" hatası aldım. Bunu düzeltmek için ise application/3rdparty/tcpdf dizini altındaki tcpdf.php dosyasının 940. satırını kapattım.
// protected $cell_height_ratio = K_CELL_HEIGHT_RATIO;
Ancak bunun ardından bende sorunsuz çalıştı. Hızlı vçalışması e öğrenimi kolay bir kütüphane olan TCPDF`i, PDF çıktılarınız için kullanmanızı tavsiye ederim.
@14 Kasım 2009: Çalışan uygulamayı görmek, yazdığınız bir mesajın PDF çıktısını alabilmeniz için örnek ekledim. Türkçe sorunu yaşayanlar için TCPDF paketinden çıkan dejavusans isinli fontu kullanmanızı öneririm.
@29 Aralık 2009: Çalışan uygulamayı kodlarını zip olarak siteye ekledim. Buradan indirebilirsiniz. TCPDF uygulaması, lisansı nedeniyle bu pakete dahil değildir.
Yazarı : Fatih BAZMAN | Yorum Ekle | Etiketler : PDF Acrobat kütüphane
Türkiye