lostyazilim
tr.link

PHP Sayfayı PDF yapma

10 Mesajlar 16.706 Okunma
acebozum
tr.link

ismailke ismailke WM Aracı Kullanıcı
  • Üyelik 31.05.2013
  • Yaş/Cinsiyet 40 / E
  • Meslek Biyolog
  • Konum Ankara
  • Ad Soyad İ** S**
  • Mesajlar 314
  • Beğeniler 77 / 44
  • Ticaret 10, (%100)
Merhaba arkadaşlar,
php kaynaklı bir sayfayı pdf e çevirmek istiyorum.
Bir sürü kaynak vs araştırdım ama çoğu html sayfayı çalıştırıyor.
Ama benim istediğim veritabanından çektiğim bir sayfanın tüm verilerini pdf e çevirmek. Yani bu wm aracını diyelimki index.php sayfasını pdf çevirmek istiyorum.
 

 

elektronikssl
reklam

FaTe FaTe WM Aracı Kullanıcı
  • Üyelik 03.10.2012
  • Yaş/Cinsiyet 37 / E
  • Meslek Php Developer
  • Konum İstanbul Avrupa
  • Ad Soyad ** **
  • Mesajlar 16
  • Beğeniler 1 / 4
  • Ticaret 0, (%0)
php sayfa diye birşey zaten mümkün değil tarayıcıda açtığınızda tüm içerik html e dökülür , siz pdf e çevirmek istediğiniz sayfayı html ve aralarına değişken php kodları ile pdf e aktarabilirsiniz.

benimde kullandığım gayet basit ve kullanışlı bir sınıf gözat istersen

http://www.tcpdf.org/examples.php
 

 

ismailke ismailke WM Aracı Kullanıcı
  • Üyelik 31.05.2013
  • Yaş/Cinsiyet 40 / E
  • Meslek Biyolog
  • Konum Ankara
  • Ad Soyad İ** S**
  • Mesajlar 314
  • Beğeniler 77 / 44
  • Ticaret 10, (%100)

FaTe adlı üyeden alıntı

php sayfa diye birşey zaten mümkün değil tarayıcıda açtığınızda tüm içerik html e dökülür , siz pdf e çevirmek istediğiniz sayfayı html ve aralarına değişken php kodları ile pdf e aktarabilirsiniz.

benimde kullandığım gayet basit ve kullanışlı bir sınıf gözat istersen

http://www.tcpdf.org/examples.php


Cevap için teşekkürler, anca k sağlıklı bir uygulama bulamadım, verdiğiniz linkide inceleyeceğim. Ama elinizde çalışan basit bir kod varsa onuda kendi sistemime göre uyarlamak isterim.

Ek Olarak:

FaTe adlı üyeden alıntı

php sayfa diye birşey zaten mümkün değil tarayıcıda açtığınızda tüm içerik html e dökülür , siz pdf e çevirmek istediğiniz sayfayı html ve aralarına değişken php kodları ile pdf e aktarabilirsiniz.

benimde kullandığım gayet basit ve kullanışlı bir sınıf gözat istersen

http://www.tcpdf.org/examples.php


Burdaki linklere baktığımda direk sayfayı çeviren ya ben göremedim yada yok.
İstediğim şu kendi tasarımıma göre olan resim olmayan sadece tabllarda veriler olan 5-10 satırlık bir sayfayı pdf yapmak istiyorum.
Örneğin sayfam a.php ise bu sayfayı çağırtırıp pdf yapamıyormuyum.
asp de çok basit ama php de kaldım :D

Ek Olarak: Örneğin bu kod;
$id=(int)$_GET['id'];
?>
require('fpdf.php');

$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','B',16);
$pdf->Cell(40,10,'Hello World!');
$pdf->Cell(60,50,'$id.',0,1,'C');
$pdf->Output();
?>
GET ile gelen id yi eklediğimde herhangi bir veri görünmüyor ekranda
 

 

krmylmz krmylmz Netiyi Kullanıcı
  • Üyelik 26.11.2014
  • Yaş/Cinsiyet 37 / E
  • Meslek Php Developer
  • Konum Amasya
  • Ad Soyad K** Y**
  • Mesajlar 89
  • Beğeniler 1 / 26
  • Ticaret 0, (%0)
bir zamanlar banada lazım olmuştu :)

define('FPDF_FONTPATH', 'font/');
require('mc_table.php');
$pdf=new PDF_MC_Table();
$pdf->Open();
$pdf->AddPage();
$pdf->SetFont('Arial', '', 10);
$pdf->SetWidths(array(10,30, 40, 50, 40,20));
include "database.php";

$al = mysql_query("");
while($yaz=mysql_fetch_object($al)){
$pdf->Row(array($yaz->veri, $yaz->veri, $yaz->veri, $yaz->veri,$yaz->veri));
}

$pdf->Output();
$pdf->Output("dosya.pdf");
?>


tablo şeklinde ekrana bastırmak için

mc_table.php
require('fpdf.php');

class PDF_MC_Table extends FPDF
{
var $widths;
var $aligns;

function SetWidths($w)
{
//Set the array of column widths
$this->widths=$w;
}

function SetAligns($a)
{
//Set the array of column alignments
$this->aligns=$a;
}

function Row($data)
{
//Calculate the height of the row
$nb=0;
for($i=0;$i $nb=max($nb, $this->NbLines($this->widths[$i], $data[$i]));
$h=5*$nb;
//Issue a page break first if needed
$this->CheckPageBreak($h);
//Draw the cells of the row
for($i=0;$i {
$w=$this->widths[$i];
$a=isset($this->aligns[$i]) ? $this->aligns[$i] : 'L';
//Save the current position
$x=$this->GetX();
$y=$this->GetY();
//Draw the border
$this->Rect($x, $y, $w, $h);
//Print the text
$this->MultiCell($w, 5, $data[$i], 0, $a);
//Put the position to the right of the cell
$this->SetXY($x+$w, $y);
}
//Go to the next line
$this->Ln($h);
}

function CheckPageBreak($h)
{
//If the height h would cause an overflow, add a new page immediately
if($this->GetY()+$h>$this->PageBreakTrigger)
$this->AddPage($this->CurOrientation);
}

function NbLines($w, $txt)
{
//Computes the number of lines a MultiCell of width w will take
$cw=&$this->CurrentFont['cw'];
if($w==0)
$w=$this->w-$this->rMargin-$this->x;
$wmax=($w-2*$this->cMargin)*1000/$this->FontSize;
$s=str_replace("\r", '', $txt);
$nb=strlen($s);
if($nb>0 and $s[$nb-1]=="\n")
$nb--;
$sep=-1;
$i=0;
$j=0;
$l=0;
$nl=1;
while($i<$nb)
{
$c=$s[$i];
if($c=="\n")
{
$i++;
$sep=-1;
$j=$i;
$l=0;
$nl++;
continue;
}
if($c==' ')
$sep=$i;
$l+=$cw[$c];
if($l>$wmax)
{
if($sep==-1)
{
if($i==$j)
$i++;
}
else
$i=$sep+1;
$sep=-1;
$j=$i;
$l=0;
$nl++;
}
else
$i++;
}
return $nl;
}
}
?>
ismailke

kişi bu mesajı beğendi.

wmaraci
wmaraci

ismailke ismailke WM Aracı Kullanıcı
  • Üyelik 31.05.2013
  • Yaş/Cinsiyet 40 / E
  • Meslek Biyolog
  • Konum Ankara
  • Ad Soyad İ** S**
  • Mesajlar 314
  • Beğeniler 77 / 44
  • Ticaret 10, (%100)

krmylmz adlı üyeden alıntı

bir zamanlar banada lazım olmuştu :)

define('FPDF_FONTPATH', 'font/');
require('mc_table.php');
$pdf=new PDF_MC_Table();
$pdf->Open();
$pdf->AddPage();
$pdf->SetFont('Arial', '', 10);
$pdf->SetWidths(array(10,30, 40, 50, 40,20));
include "database.php";

$al = mysql_query("");
while($yaz=mysql_fetch_object($al)){
$pdf->Row(array($yaz->veri, $yaz->veri, $yaz->veri, $yaz->veri,$yaz->veri));
}

$pdf->Output();
$pdf->Output("dosya.pdf");
?>


tablo şeklinde ekrana bastırmak için

mc_table.php
require('fpdf.php');

class PDF_MC_Table extends FPDF
{
var $widths;
var $aligns;

function SetWidths($w)
{
//Set the array of column widths
$this->widths=$w;
}

function SetAligns($a)
{
//Set the array of column alignments
$this->aligns=$a;
}

function Row($data)
{
//Calculate the height of the row
$nb=0;
for($i=0;$i $nb=max($nb, $this->NbLines($this->widths[$i], $data[$i]));
$h=5*$nb;
//Issue a page break first if needed
$this->CheckPageBreak($h);
//Draw the cells of the row
for($i=0;$i {
$w=$this->widths[$i];
$a=isset($this->aligns[$i]) ? $this->aligns[$i] : 'L';
//Save the current position
$x=$this->GetX();
$y=$this->GetY();
//Draw the border
$this->Rect($x, $y, $w, $h);
//Print the text
$this->MultiCell($w, 5, $data[$i], 0, $a);
//Put the position to the right of the cell
$this->SetXY($x+$w, $y);
}
//Go to the next line
$this->Ln($h);
}

function CheckPageBreak($h)
{
//If the height h would cause an overflow, add a new page immediately
if($this->GetY()+$h>$this->PageBreakTrigger)
$this->AddPage($this->CurOrientation);
}

function NbLines($w, $txt)
{
//Computes the number of lines a MultiCell of width w will take
$cw=&$this->CurrentFont['cw'];
if($w==0)
$w=$this->w-$this->rMargin-$this->x;
$wmax=($w-2*$this->cMargin)*1000/$this->FontSize;
$s=str_replace("\r", '', $txt);
$nb=strlen($s);
if($nb>0 and $s[$nb-1]=="\n")
$nb--;
$sep=-1;
$i=0;
$j=0;
$l=0;
$nl=1;
while($i<$nb)
{
$c=$s[$i];
if($c=="\n")
{
$i++;
$sep=-1;
$j=$i;
$l=0;
$nl++;
continue;
}
if($c==' ')
$sep=$i;
$l+=$cw[$c];
if($l>$wmax)
{
if($sep==-1)
{
if($i==$j)
$i++;
}
else
$i=$sep+1;
$sep=-1;
$j=$i;
$l=0;
$nl++;
}
else
$i++;
}
return $nl;
}
}
?>

Üstad öncelikle çok teşekkürler.
Burda databesi dosyasını include ettikten sonra verileri yazdırmışsın.
Burada yapamadığım pdf yapmak istediğim sayfayı include edememek.
 

 

krmylmz krmylmz Netiyi Kullanıcı
  • Üyelik 26.11.2014
  • Yaş/Cinsiyet 37 / E
  • Meslek Php Developer
  • Konum Amasya
  • Ad Soyad K** Y**
  • Mesajlar 89
  • Beğeniler 1 / 26
  • Ticaret 0, (%0)
pdf yapmak istediğiniz veritabanındaki veriler değilmi ?
oluşturduğunuz php dosyasında işlemleri yaptıktan sonra pdf çıktı verecektir.

bir html görüntüsünü pdf ye çeviremezsiniz. sql de ki verilerinizi oluşturma esnasında tcpdf standartlarına göre yazdırabilirsiniz.

$pdf->Output("dosya.pdf");

dosya.pdf şeklinde bulunduğu dizine kayıt edecektir.
 

 

ismailke ismailke WM Aracı Kullanıcı
  • Üyelik 31.05.2013
  • Yaş/Cinsiyet 40 / E
  • Meslek Biyolog
  • Konum Ankara
  • Ad Soyad İ** S**
  • Mesajlar 314
  • Beğeniler 77 / 44
  • Ticaret 10, (%100)

krmylmz adlı üyeden alıntı

pdf yapmak istediğiniz veritabanındaki veriler değilmi ?
oluşturduğunuz php dosyasında işlemleri yaptıktan sonra pdf çıktı verecektir.

bir html görüntüsünü pdf ye çeviremezsiniz. sql de ki verilerinizi oluşturma esnasında tcpdf standartlarına göre yazdırabilirsiniz.

$pdf->Output("dosya.pdf");

dosya.pdf şeklinde bulunduğu dizine kayıt edecektir.


İlgi için teşekkürker hocam, yalnız php de çok karmaşıkmış bu iş, asp de istediğiniz veriyi, tabloyu herşeyi rahatlıkla pdf ye çevirebiliyoruz.
Bu çok garip geldi bana.

Ek Olarak:

krmylmz adlı üyeden alıntı

pdf yapmak istediğiniz veritabanındaki veriler değilmi ?
oluşturduğunuz php dosyasında işlemleri yaptıktan sonra pdf çıktı verecektir.

bir html görüntüsünü pdf ye çeviremezsiniz. sql de ki verilerinizi oluşturma esnasında tcpdf standartlarına göre yazdırabilirsiniz.

$pdf->Output("dosya.pdf");

dosya.pdf şeklinde bulunduğu dizine kayıt edecektir.


İlgi için teşekkürker hocam, yalnız php de çok karmaşıkmış bu iş, asp de istediğiniz veriyi, tabloyu herşeyi rahatlıkla pdf ye çevirebiliyoruz.
Bu çok garip geldi bana.
 

 

krmylmz krmylmz Netiyi Kullanıcı
  • Üyelik 26.11.2014
  • Yaş/Cinsiyet 37 / E
  • Meslek Php Developer
  • Konum Amasya
  • Ad Soyad K** Y**
  • Mesajlar 89
  • Beğeniler 1 / 26
  • Ticaret 0, (%0)
pek bir garipliği yok aslında satır satır açıklamak gerekirse,,

$pdf->Open(); // Pdf Oluşturulur.
$pdf->AddPage(); // yeni 1 sayfa açılır.
$pdf->SetFont('Arial', '', 10); // Yazı boyutu ve fontu seçilir

$pdf->SetWidths(array(30, 40, 50, 40,20)); mc_table sınıfınna göre genişliği belirtilerek sutunlar oluştururlur tablonın 1 satırı kaç hücreden oluşması gerektiği

include "database.php"; // veritabanı dosyası çağrılır.

$al = mysql_query(""); // mysql sorgusu
while($yaz=mysql_fetch_object($al)){
// Döngü içersinde mysql deki veriler alınır.
$pdf->Row(array($yaz->veri, $yaz->veri, $yaz->veri, $yaz->veri,$yaz->veri));
// Yukarıda belirttiğimiz tablo hücrelerine mysql de ki veriler yazdırılır.
}

$pdf->Output(); // Ekrana dosyanın çıktısı basılır pdf olarak
$pdf->Output("dosya.pdf"); // dosya.pdf adına bulunduğu dizine kayıt edilir.
ismailke cilginbixici

kişi bu mesajı beğendi.

ismailke ismailke WM Aracı Kullanıcı
  • Üyelik 31.05.2013
  • Yaş/Cinsiyet 40 / E
  • Meslek Biyolog
  • Konum Ankara
  • Ad Soyad İ** S**
  • Mesajlar 314
  • Beğeniler 77 / 44
  • Ticaret 10, (%100)

krmylmz adlı üyeden alıntı

pek bir garipliği yok aslında satır satır açıklamak gerekirse,,

$pdf->Open(); // Pdf Oluşturulur.
$pdf->AddPage(); // yeni 1 sayfa açılır.
$pdf->SetFont('Arial', '', 10); // Yazı boyutu ve fontu seçilir

$pdf->SetWidths(array(30, 40, 50, 40,20)); mc_table sınıfınna göre genişliği belirtilerek sutunlar oluştururlur tablonın 1 satırı kaç hücreden oluşması gerektiği

include "database.php"; // veritabanı dosyası çağrılır.

$al = mysql_query(""); // mysql sorgusu
while($yaz=mysql_fetch_object($al)){
// Döngü içersinde mysql deki veriler alınır.
$pdf->Row(array($yaz->veri, $yaz->veri, $yaz->veri, $yaz->veri,$yaz->veri));
// Yukarıda belirttiğimiz tablo hücrelerine mysql de ki veriler yazdırılır.
}

$pdf->Output(); // Ekrana dosyanın çıktısı basılır pdf olarak
$pdf->Output("dosya.pdf"); // dosya.pdf adına bulunduğu dizine kayıt edilir.

Bunu bi deneyim üstad.
 

 

samet05203 samet05203 WM Aracı Kullanıcı
  • Üyelik 23.04.2013
  • Yaş/Cinsiyet 39 / E
  • Meslek kimyager
  • Konum Bursa
  • Ad Soyad ** **
  • Mesajlar 1
  • Beğeniler 0 / 2
  • Ticaret 0, (%0)

krmylmz adlı üyeden alıntı

pek bir garipliği yok aslında satır satır açıklamak gerekirse,,

$pdf->Open(); // Pdf Oluşturulur.
$pdf->AddPage(); // yeni 1 sayfa açılır.
$pdf->SetFont('Arial', '', 10); // Yazı boyutu ve fontu seçilir

$pdf->SetWidths(array(30, 40, 50, 40,20)); mc_table sınıfınna göre genişliği belirtilerek sutunlar oluştururlur tablonın 1 satırı kaç hücreden oluşması gerektiği

include "database.php"; // veritabanı dosyası çağrılır.

$al = mysql_query(""); // mysql sorgusu
while($yaz=mysql_fetch_object($al)){
// Döngü içersinde mysql deki veriler alınır.
$pdf->Row(array($yaz->veri, $yaz->veri, $yaz->veri, $yaz->veri,$yaz->veri));
// Yukarıda belirttiğimiz tablo hücrelerine mysql de ki veriler yazdırılır.
}

$pdf->Output(); // Ekrana dosyanın çıktısı basılır pdf olarak
$pdf->Output("dosya.pdf"); // dosya.pdf adına bulunduğu dizine kayıt edilir.






[PHP]$pdf->Open(); // Pdf Oluşturulur.

burada hata veriyor Notice: Undefined variable: pdf in C:\wamp64\www\pdf\index.php on line 2
ismailke cilginbixici

kişi bu mesajı beğendi.

Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al