Konular

EBooklar

Php ile yeni bir pdf dosyası oluşturmak : Öncelikle php ile pdf işlemleri yapmak için bir pdf kütüphanesine ihtiyacınız olacak

www.dijitalders.com

 

Php manuelde bahsedilen kütüphane , PDFlib http://www.pdflib.com/products/pdflib/index.html

bu adresten indirebilirsiniz .



Öncelikle PDF_new(); fonksiyonu ile pdf oluşturmak için kullanacağımız sınıfı çağırıyoruz. Daha sonra PDF_open_file() fonksiyonu ile bellirtiğimiz isimde bir pdf dosyası oluşturabiliriz.

$var = PDF_new();
int PDF_open_file([pdf nesnesi], [dosya_adı]); dosya_adı parametresini daha önce oluşturulmuş bir pdf dosyasını tekrar açmak için kullanabilirsiniz, eğer herhangi bir dosya adı belirtmezseniz üzerinde işlem yapabileceğiniz yeni bir pdf dosyası oluşacaktır.

$pdf = PDF_new();
PDF_open_file($pdf);

Bu iki fonksiyon ile pdf dosyamızı oluşturduktan sonra artık işlemeye başlayabiliriz öncelikle tanımlamaız gereken "Document information" döküman bilgileri.

PDF_set_info([pdf_object], [property string], [value]);

Bu fonksiyon pdf dosyamız için başlık , oluşturan gibi dosya bilgilerini yerleştirmemize yarıyor.

PDF_set_info($pdf, "author", "John Coggeshall");
PDF_set_info($pdf, "title", "Zend.com Example");
PDF_set_info($pdf, "creator", "Zend.com");
PDF_set_info($pdf, "subject", "Code Gallery Spotlight");

author : belge sahibi
title : belge başlığı
creator : oluşturucu
subject : konu

Pdh dosyamızı oluşturduktan ve döküman bilgilerini tanımladıktan sonra , PDF_begin_page() fonksiyonu ile dosyamızın içinde ilk sayfamızı oluşturmaya başlayabiliriz.


PDF_begin_page([pdf object], [page width], [page height]);

Fonksiyona daha önce oluşturduğumuz pdf nesnemizi gösterdikten sonra page width, ve page height değerleri ile sayfamızın yüksekliğini ve genişliğini tanımlıyoruz.


PDF_begin_page($pdf, 450, 450);

Burada 450 değeri pixel değil point olarak verilir,


Pdf dosaymızın içine birşeyler yazmaya başlamadan önce yapmamız gereken bir işlem daha var, kullanacağımız fontu tanımlamak PDF_findfont() ve PDF_setfont() pdf dosyamızda kullanacağımız fontu tanımlamak için kullanacağımız fonksiyonlar, PDF_findfont() ile kullanacağımız fontları değişkenlere tanımlayabiliriz, PDF_setfont() da daha önce tanımladığımız fontları geçerli kılmak için kullanacağımız fonksion. Pdf ler için kullanabileceğimiz ön tanımlı fontlar şunlar

Courier, Courier-Bold, Courier-Oblique, Courier-BoldOblique
Helvetica, Helvetica-Bold, Helvetica-Oblique, Helvetica-BoldOblique
Times-Roman, Times-Bold, Times-Italic, Times-BoldItalic
Symbol, ZapfDingbats

Tabi bunların dışında kendi fontlarımızı da kullanabiliriz.

int PDF_findfont([pdf object], [fontname], [encoding],[embed])


$font = PDF_findfont($pdf, "Helvetica-Bold", "winansi",0);
Bu satır ile $font değişkenine Helvetica-Bold fontunu tanımlamış olduk. bunun gibi birden fazla tanımlama yapıp PDF_setfont() ile kullnadığımız fontu her an değiştirebiliriz.

PDF_setfont($pdf, $font, 12); geçerli olan fontu $font değişkeninde tanımlı olan font olarak tanımladık.


Yazıların pdf belgesinin içindeki sayfalara basılmasını sağlayan fonksiyon da

PDF_show_xy([pdf object], [string], [x value], [y value]); bunda da yazılacak olan veriyi ve x ve y olarak yazılacak verinin görüneceği koordinatları tanımlıyoruz.

PDF_show_xy($pdf, "Hello, Dynamic PDFs!", 5, 225);

Bu işlem ile yazan pdf dosyamızı oluşturmayı tamamladık, geriye
PDF_end_page([pdf object]); ile üzerinde çalıştığımız sayfayı sonlandırmak kaldı, bu adımdan sonra PDF_begin_page() fonksiyonunu tekrar çalıştrarark birden çok sayfadan oluşan pdf blgeleri oluşturabiliriz.

Sayfaları oluşturma işlemi bittikten sonra da PDF_close($pdf); ile tüm pdf belgenizi kapatabiliriz.

Bundan sonra eğer pdf belgemizi web sayfamızda oluşturuyorsak ziyaretçiye göndermemiz ve hafızadan temizlememiz gerekiyor.

Php ile pdf headerlerini oluşturup belgenin browserda açılmasını veya kaydedilmesini sağlamak için öncelikle döküman boyutunu almamız gerekiyor. PDF_get_buffer(). fonksiyonu bu işe yarıyor.

$buffer = PDF_get_buffer($pdf);

Artık buffer bilgisi de elimizde olduğuna göre headerleri oluşturup belgeyi yolayabiliriz.

header("Content-type: application/pdf");
header("Content-Length: ".strlen($buffer));
header("Content-Disposition: inline; filename=zend.pdf");

Buradaki başlıklar browsera bu belgenin bir pdf dosyası olduğunu anlatmak için , bu adımdan sonra kullanıcının terhinine göre browserında ya pdf dosyası adobe reader yardımı ile açılcak yada kaydetme penceresi çıkacak. Burada "Content-Disposition" ile tanımladıığımız başlıktan sonraki zend.pdf bilgisayara kaydedilecek olan pdf dosyamızın adı.

Son olarak PDF_delete($pdf); ile pdf dosyamızı hafızadan tamamen silebiliriz.

Pdf oluşturmak veya düzenlemek için kullanabileceğiniz pek çok fonksiyon var bu fonksiyonların listesine ve daha detaylı örneklere bu adresten ulaşabilirsiniz.

http://tr2.php.net/manual/en/ref.pdf.php

adresinden laşabilirsiniz.


Örnek :
<?php
$p 
PDF_new();

if (
PDF_begin_document($p"""") == 0) {
   die(
"Error: " PDF_get_errmsg($p));
}

PDF_set_info($p"Creator""hello.php");
PDF_set_info($p"Author""Rainer Schaaf");
PDF_set_info($p"Title""Hello world (PHP)!");

PDF_begin_page_ext($p595842"");

$font PDF_load_font($p"Helvetica-Bold""winansi""");

PDF_setfont($p$font24.0);
PDF_set_text_pos($p50700);
PDF_show($p"Hello world!");
PDF_continue_text($p"(says PHP)");
PDF_end_page_ext($p"");

PDF_end_document($p"");

$buf PDF_get_buffer($p);
$len strlen($buf);

header("Content-type: application/pdf");
header("Content-Length: $len");
header("Content-Disposition: inline; filename=hello.pdf");
print 
$buf;

PDF_delete($p);
?> 


Kaynak www.meteryus.com/index.php

Yorumunuzu Ekleyin





  • Kurallı İfadeler (regex Engine)
  • Kurallı İfadeler (regex Engine) ~ 34,525

    Bir regex'in gerçekte nasıl çalıştığını bilmek daha efektif çalışan regex ifadeleri oluşturmamızı ve regex'leri daha isabetli oluşturmamızı sağlar. Bu yazımızda oluşturduğunuz regex ifadelerinin neden beklediğiniz sonuçları vermediğini ve umduğunuz eşleşmeleri yerine getirmediğini öğreneceksiniz. Bu da bizim tabir yerindeyse daha az kafa patlatmamızı ve daha az zaman harcamamızı sağlayacaktır.




  • PHP nedir?
  • PHP nedir? ~ 26,349

    HTML kodlarının arasına yerleştirilmiş php kodlarından ayrıştırıp işleyerek sonuçta saf HTML formatında bir çıktı üretmek ve Web sunucusuna iletmektir.


  • $_FILES
  • $_FILES ~ 25,175

    Örnek kod ve açıklamalar



  • Oop - Nesne Yönelimli Programlama
  • Oop - Nesne Yönelimli Programlama ~ 21,550

    Artık ister istemez her programcının bulaştığı bu teknik hakkında sayısız makale yazılmıştır bu güne kadar. Bu makale de onlardan biri


  • Xampp Kurulumu ~ 20,890

    Xampp apache, mysql, php ve phpmyadmin için kolay ve basit kurulum sağlayan bir uygulamadır.




  • Php İle Excel Dosyası Oluşturmak
  • Php İle Excel Dosyası Oluşturmak ~ 19,756

    Genelde, herhangi bir biçimlendirme söz konusu olmadığında, veritabanındaki bir bilgiyi ya da başka bir tabloyu excel ortamına aktarmak için csv yöntemini kullanırım. Bu yöntem herkesin bildiği gibi, her sütunu tab ya da noktalı virgül gibi bir karakterle ve her satırı da enter karakteri ile bölmekten ibaret. Ama biçimlendirme söz konusu olduğunda, mesela sütunlara bir genişlik vermek, yazıları bold yapmak, bazı hücreleri sayı ya da para tipine çevirmek gibi biçimlendirmelerde bu yöntem işe yaramamakta.


  • Verileri doğrulamak için PHP ile filtreleme işlemleri
  • Verileri doğrulamak için PHP ile filtreleme işlemleri ~ 19,719

    Ziyaretçilerden gelen verilerin istediğimiz formata uygunluğunu kontrol etmeliyiz ki, güvenlik açığı yaratmayalım. E-postaları, web adreslerini, bilgi girişlerini ve dahasını Her birine uygun farklı fonksiyonlar yazıldı bu vakte kadar. Ancak PHP 5.2.0 ve üstü sürümlerde bu fonksiyonlara gereksinim azaldı. Çünkü PHP filtreleme fonksiyonları standart oldu.


  • Php ile Oturum Yönetimi (SESSION)
  • Php ile Oturum Yönetimi (SESSION) ~ 19,575

    Türkçesi oturum anlamına gelen session bilgilerin saklanması için kullanılan mantıksal bir nesnedir.Session oturum yönetimini kullanarak şifreli sayfalar oluşturarak ve bu sayfaları belirlediğiniz kullanıcıların görmesini sağlayabilirsiniz.


  • $_SERVER
  • $_SERVER ~ 19,192

    $_SERVER host bilgileri, header bilgileri, yollar ve script yolları gibi bilgileri içeren bir dizidir. Bu dizideki değerler web server tarafından üretilir. Tüm server yazılımlarının, tüm değerleri atayacağına dair bir kesinlik yoktur. Yazılım bazılarını atamayabilir, veyahut burada anlatılacak değerlerin haricinde değerler ekleyebilir


  • En iyi 25 php template motoru
  • En iyi 25 php template motoru ~ 19,011

    Php tabanlı web siteleri dizayn ederken, php kodlarını html kodlar arasına gömeriz. Fakat gün gelir bu kodları düzenlemek istediğimizde çok büyük bir çaba gerektirir. Bu tarz durumlarla başa çıkabilmek için ve daha kararlı bir sistem kodlamak için tema sistemleri geliştirebilirsiniz. Tema sistemi ya da motorlarının asıl amacı, php kodları ile html kodlarını birbirinden ayırmaktır. Böylece hangi kod üzerinde değişiklik yapmanız gerekiyorsa, kendisine ait dosyalarını açarak bu işlemi gerçekleştirebilirsiniz



  • Php Mysql to XML
  • Php Mysql to XML ~ 18,739

    Bu yapıyı geliştirerek mysql veritabanınızdaki datalarınızı xml standartlarına dönüştürebilirsiniz.


  • Dizi Tanımlamaları
  • Dizi Tanımlamaları ~ 18,662

    PHP’de array tanımlayıcısını kullanarak içerisinde elemanları yerleştirmek yoluyla ya da index numarasını köşeli parantezler içerisinde belirterek atama yaparak dizi oluşturmak mümkündür









  • $_REQUEST
  • $_REQUEST ~ 15,772

    $_GET, $_POST, ve $_COOKIE değişkenlerini içeriğinden meydana gelen çağrışımlı bir dizidir. Bu değişken bir superglobal olduğu için tüm alanlarda (scope) geçerlidir ve bundan dolayıdır ki global $_REQUEST ; şeklinde bir tanımlamaya ihtiyaç duymaz. Eğer register_globals değişkeni php. İni de ayarlanmışsa bu değişken her yerde (Global Scope) kullanılabilir