imroza
Posts: 21
|
| Posted: 11/02/2008, 10:49 AM |
|
A simple way to create a PDF:
1. in your php.ini qualifies extension=php_curl.dll
2. in your ccs_page beforeShow Event
global $pdf;
global $contapagine;
global $h;
$pdf = cpdf_open(0);
$contapagine=1;
$h=735;
//BEGIN -----Inizio Pagina
cpdf_page_init($pdf, $contapagine, 0, 843,597, 1.0);
cpdf_begin_text($pdf);
cpdf_set_font($pdf, "Times", 14, "WinAnsiEncoding");
cpdf_text($pdf, "New PDF Page", 200,800);
cpdf_end_text($pdf);
//END -----Inizio Pagina
//-------BEGIN corpo pagina
//-------END corpo pagina
//-----BEGIN Fine Pagina
$hei=55;
$bgtxt=35;
$mid=300;
cpdf_setlinewidth($pdf,0.8);
cpdf_moveto($pdf, 25, $hei);
cpdf_lineto($pdf, 555, $hei);
cpdf_stroke($pdf);
cpdf_begin_text($pdf);
$hei=$hei-7;
cpdf_set_font($pdf, "Arial", 6, "WinAnsiEncoding");
cpdf_text($pdf, "END Page", $bgtxt,$hei);
cpdf_text($pdf, "END PAge Dx", $mid,$hei);
$hei=$hei-7;
cpdf_set_font($pdf, "Arial", 8, "WinAnsiEncoding");
cpdf_text($pdf, "Pagina ".$contapagine, 520,15);
cpdf_end_text($pdf);
cpdf_finalize_page($pdf, $contapagine);
cpdf_finalize($pdf);
Header("Content-type: application/pdf");
cpdf_output_buffer($pdf);
cpdf_close($pdf);
//-----END Fine Pagina
|
 |
 |
jjrjr1
Posts: 942
|
| Posted: 11/02/2008, 1:26 PM |
|
Hi Imrosa
Great Tip.
BTW if someone is implementing on shared servers and does not have access to the php.ini file to load the curl extention, Take a look at this item
http://ccselite.com/online_store.php?pid=4
This not only will allow you to protect your code if you implelement PHPShield, but with some modification will allow dynamic loading of php extentions on the fly.
Have fun. Can't wait to try your code.
Incidentally, here is some CCS code that will do exactly what you want.
http://ccselite.com/online_store.php?pid=24
_________________
John Real - More CodeCharge Studio Support at - http://CCSElite.com |
 |
 |
imroza
Posts: 21
|
| Posted: 11/02/2008, 9:53 PM |
|
This is a function to justify text:
function stringa_giustif($pdf,$h,$begtxt,$str,$tipocar, $dimecar,$endline,$delta) {
//$h: altezza riga (coordinata y)
//$begtxt: inizio scritta (coordinata x)
//$delta=13; interlinea
//$str: stinga da giustificare
//$endline=550; larghezza riga
//$tipocar="Times"; carattere da utilizzare
//$dimecar=10; Dimensione carattere
global $pdf;
global $h;
global $contapagine;
$endline1=$endline-7;
$totcar[]=0;
$line[]='';
$words = preg_split("/[\s]+/", $str, -1);
$r=0;
$larghezza=0;
cpdf_begin_text($pdf);
cpdf_set_font($pdf, $tipocar, $dimecar, "WinAnsiEncoding");
//Scrivo le righe con la seguente funzione (1. Conto le parole, 2. definisco lo spazio della riga)
for($i=0; $i < count($words); $i++) {
cpdf_set_char_spacing($pdf,0);
if (cpdf_stringwidth($pdf,$line[$r] . $words[$i] . ' ') < $endline1) {
$line[$r] .= $words[$i] . ' ';
}
else{
$h=$h-$delta;
//------BEGIN Salto Pagine
salto_pag($pdf,$h,$contapagine,$tipocar, $dimecar);
//------END Salto Pagine
$sp=0;
$as=0;
$numcar=strlen($line[$r]);
for($c=0; $c < $numcar; $c++) {
$stringa=substr($line[$r],$c ,1);
$as=$as+cpdf_stringwidth($pdf,$stringa);
$totcar[$r] = $as;
}
$larghezza=$endline1 - $totcar[$r];
$sp=$larghezza/$numcar;
cpdf_set_char_spacing($pdf,$sp);
cpdf_text($pdf, $line[$r], $begtxt,$h);
$r++;
$line[$r] = '';
$line[$r] .= $words[$i] . ' ';
}
}
//------BEGIN Salto Pagine
salto_pag($pdf,$h,$contapagine,$tipocar, $dimecar);
//------END Salto Pagine
if ($line[$r]<>' '){
$h=$h-$delta;
cpdf_text($pdf, $line[$r], $begtxt,$h);
cpdf_end_text($pdf);
//$h=$h-$delta;
}
}
|
 |
 |
imroza
Posts: 21
|
| Posted: 11/02/2008, 9:55 PM |
|
And this is a function to create a table
function tab($SQL,$pdf,$h,$delta,$endline,$begtxt,$spessore,$lv1,$t1,$ct1v,$lv2,$t2,$ct2v,$lv3,$t3,$ct3v,$lv4,$t4,$ct4v,$lv5,$t5,$ct5v,$lv6,$t6,$ct6v,$lv7,$t7,$ct7v,$lv8,$t8,$ct8v,$lv9,$t9,$ct9v,$lv10,$t10,$ct10v,$contapagine,$tipocar, $dimecar,$BOX_Start,$BOX_End,$tipocarINT, $dimecarINT,$BOXINT_Start,$BOXINT_End,$diff,$nmt) {
global $h;
global $contapagine;
//Parametri di posizionamento
//$begtxt: start scrittura (generalmente $begtxt=10)
//$spessore: spessore linea (generalmente $spessore=0.5)
//$lv1/$t1: posizione box1 e relativa intestazione (es: $lv1=172; $t1="Test";)
//$lv2/$t2: posizione box2 e relativa intestazione
//$lv3/$t3: posizione box3 e relativa intestazione
//$lv4/$t4: posizione box4 e relativa intestazione
//$lv5/$t5: posizione box5 e relativa intestazione
//$lv6/$t6: posizione box6 e relativa intestazione
//$lv7/$t7: posizione box7 e relativa intestazione
//$lv8/$t8: posizione box8 e relativa intestazione
//$lv9/$t9: posizione box9 e relativa intestazione
//$lv10/$t10: posizione box10 e relativa intestazione
//Parametri della query
//$SQL: query (es: $SQL="select * FROM test WHERE id_esame=7506";)
//$ct1v: risultato 1 che va in prima posizione ($lv1) (es: $ct1v='id';)
//$ct2v: risultato 2 che va in II posizione ($lv2) (es: $ct2v="risultato";)
//$ct3v: risultato 3 che va in III posizione ($lv3)
//$ct4v: risultato 4 che va in IV posizione ($lv4)
//$ct5v: risultato 5 che va in V posizione ($lv5)
//$ct6v: risultato 6 che va in VI posizione ($lv6)
//$ct7v: risultato 7 che va in VII posizione ($lv7)
//$ct8v: risultato 8 che va in VIII posizione ($lv8)
//$ct9v: risultato 9 che va in IX posizione ($lv9)
//$ct10v: risultato 10 che va in X posizione ($lv10)
$dba = new clsDBInternetDB();
$dba->query($SQL);
$countrec=0;
while($dba->Next_Record()){
$countrec++;
}
$num_cifre=strlen($countrec);
$dbb = new clsDBInternetDB();
$dbb->query($SQL);
if ($dbb->Next_Record()){
//-----BEGIN Salto Pagine se siamo a fine pagine
$dimpedice=80; //Dimennsione Pedice (pie pagina circa 80)
if ($h<$dimpedice ){
//------BEGIN pedice
pedice($pdf,$contapagine);
//------END pedice
cpdf_finalize_page($pdf, $contapagine);
$contapagine++;
cpdf_page_init($pdf, $contapagine, 0, 843,597, 1.0);
//------BEGIN Intestazione
Intestazione($pdf);
//------END Intestazione
$h=735;
cpdf_set_font($pdf, $tipocarINT, $dimecarINT, "WinAnsiEncoding");
//-----END Salto Pagine se siamo a fine pagine
}
cpdf_begin_text($pdf);
cpdf_set_font($pdf, $tipocarINT, $dimecarINT, "WinAnsiEncoding");
$nmt1=0;
if ($nmt==1){
cpdf_text($pdf, "N.", $begtxt,$h-0.7);
$nmt1=10;
}
cpdf_text($pdf, $t1, $begtxt+$nmt1+$num_cifre*2*$nmt+2*$nmt,$h-0.7);
cpdf_text($pdf, $t2, $lv1,$h-0.7);
cpdf_text($pdf, $t3, $lv2,$h-0.7);
cpdf_text($pdf, $t4, $lv3,$h-0.7);
cpdf_text($pdf, $t5, $lv4,$h-0.7);
cpdf_text($pdf, $t6, $lv5,$h-0.7);
cpdf_text($pdf, $t7, $lv6,$h-0.7);
cpdf_text($pdf, $t8, $lv7,$h-0.7);
cpdf_text($pdf, $t9, $lv8,$h-0.7);
cpdf_text($pdf, $t10, $lv9,$h-0.7);
cpdf_end_text($pdf);
//linea orizzontale sopra
linea_orizzontale($pdf,$spessore,$h+$BOXINT_Start,$begtxt-2,$endline);
//linea orizzontale sotto
linea_orizzontale($pdf,$spessore,$h-$BOXINT_End,$begtxt-2,$endline);
//linee verticale
linea_verticale($pdf,$spessore,$begtxt-2,$h-$BOXINT_End-4,$h+$BOXINT_Start);
$nmt1=0;
if ($nmt==1){
$nmt1=10;
linea_verticale($pdf,$spessore,$begtxt+$nmt1+$num_cifre*2*$nmt,$h-$BOXINT_End-4,$h+$BOXINT_Start);
}
linea_verticale($pdf,$spessore,$lv1-2,$h-$BOXINT_End-4,$h+$BOXINT_Start);
linea_verticale($pdf,$spessore,$lv2-2,$h-$BOXINT_End-4,$h+$BOXINT_Start);
linea_verticale($pdf,$spessore,$lv3-2,$h-$BOXINT_End-4,$h+$BOXINT_Start);
linea_verticale($pdf,$spessore,$lv4-2,$h-$BOXINT_End-4,$h+$BOXINT_Start);
linea_verticale($pdf,$spessore,$lv5-2,$h-$BOXINT_End-4,$h+$BOXINT_Start);
linea_verticale($pdf,$spessore,$lv6-2,$h-$BOXINT_End-4,$h+$BOXINT_Start);
linea_verticale($pdf,$spessore,$lv4-2,$h-$BOXINT_End-4,$h+$BOXINT_Start);
linea_verticale($pdf,$spessore,$lv8-2,$h-$BOXINT_End-4,$h+$BOXINT_Start);
linea_verticale($pdf,$spessore,$lv9-2,$h-$BOXINT_End-4,$h+$BOXINT_Start);
linea_verticale($pdf,$spessore,$lv10-2,$h-$BOXINT_End-4,$h+$BOXINT_Start);
linea_verticale($pdf,$spessore,$endline,$h-$BOXINT_End-4,$h+$BOXINT_Start);
$h=$h-$BOXINT_End-$BOXINT_Start;
}
$dbc = new clsDBInternetDB();
$dbc->query($SQL);
//$cont_te=0;
while($dbc->Next_Record()){
$cont_te++;
$ct1 = $dbc->f($ct1v);
$ct2 = $dbc->f($ct2v);
$ct3 = $dbc->f($ct3v);
$ct4 = $dbc->f($ct4v);
$ct5 = $dbc->f($ct5v);
$ct6 = $dbc->f($ct6v);
$ct7 = $dbc->f($ct7v);
$ct8 = $dbc->f($ct8v);
$ct9 = $dbc->f($ct9v);
$ct10 = $dbc->f($ct10v);
cpdf_begin_text($pdf);
cpdf_set_font($pdf, $tipocar, $dimecar, "WinAnsiEncoding");
$nmt1=0;
if ($nmt==1){
cpdf_text($pdf, $cont_te, $begtxt,$h-$diff);
$nmt1=10;
}
cpdf_text($pdf, $ct1, $begtxt+$nmt1+$num_cifre*2*$nmt+2*$nmt,$h-$diff);
cpdf_text($pdf, $ct2, $lv1,$h-$diff);
cpdf_text($pdf, $ct3, $lv2,$h-$diff);
cpdf_text($pdf, $ct4, $lv3,$h-$diff);
cpdf_text($pdf, $ct5, $lv4,$h-$diff);
cpdf_text($pdf, $ct6, $lv5,$h-$diff);
cpdf_text($pdf, $ct7, $lv6,$h-$diff);
cpdf_text($pdf, $ct8, $lv7,$h-$diff);
cpdf_text($pdf, $ct9, $lv8,$h-$diff);
cpdf_text($pdf, $ct10, $lv9,$h-$diff);
cpdf_end_text($pdf);
//linea orizzontale chiusura
linea_orizzontale($pdf,$spessore,$h-$BOX_End,$begtxt-2,$endline);
//linee verticale
linea_verticale($pdf,$spessore,$begtxt-2,$h-$BOX_End,$h+$BOX_Start);
if ($nmt==1){
linea_verticale($pdf,$spessore,$begtxt+$nmt1+$num_cifre*2*$nmt,$h-$BOX_End,$h+$BOX_Start);
}
linea_verticale($pdf,$spessore,$lv1-2,$h-$BOX_End,$h+$BOX_Start);
linea_verticale($pdf,$spessore,$lv2-2,$h-$BOX_End,$h+$BOX_Start);
linea_verticale($pdf,$spessore,$lv3-2,$h-$BOX_End,$h+$BOX_Start);
linea_verticale($pdf,$spessore,$lv4-2,$h-$BOX_End,$h+$BOX_Start);
linea_verticale($pdf,$spessore,$lv5-2,$h-$BOX_End,$h+$BOX_Start);
linea_verticale($pdf,$spessore,$lv6-2,$h-$BOX_End,$h+$BOX_Start);
linea_verticale($pdf,$spessore,$lv7-2,$h-$BOX_End,$h+$BOX_Start);
linea_verticale($pdf,$spessore,$lv8-2,$h-$BOX_End,$h+$BOX_Start);
linea_verticale($pdf,$spessore,$lv9-2,$h-$BOX_End,$h+$BOX_Start);
linea_verticale($pdf,$spessore,$lv10-2,$h-$BOX_End,$h+$BOX_Start);
linea_verticale($pdf,$spessore,$endline,$h-$BOX_End,$h+$BOX_Start);
$h=$h-$BOX_End-$BOX_Start;
//-----BEGIN Salto Pagina
//$dimpedice=80; //Dimennsione Pedice (pie pagina circa 80)
if ($h<$dimpedice ){
//------BEGIN pedice
pedice($pdf,$contapagine);
//------END pedice
cpdf_finalize_page($pdf, $contapagine);
$contapagine++;
cpdf_page_init($pdf, $contapagine, 0, 843,597, 1.0);
//------BEGIN Intestazione
Intestazione($pdf);
//------END Intestazione
$h=735;
//cpdf_set_font($pdf, $tipocar, $dimecar, "WinAnsiEncoding");
//Riscrivo intestazione tabella
if ($dbc->has_next_record()){
cpdf_begin_text($pdf);
cpdf_set_font($pdf, $tipocarINT, $dimecarINT, "WinAnsiEncoding");
$nmt1=0;
if ($nmt==1){
$nmt1=10;
cpdf_text($pdf, "N.", $begtxt,$h-0.7);
}
cpdf_text($pdf, $t1, $begtxt+$nmt1+$num_cifre*2*$nmt+2*$nmt,$h-0.7);
cpdf_text($pdf, $t2, $lv1,$h-0.7);
cpdf_text($pdf, $t3, $lv2,$h-0.7);
cpdf_text($pdf, $t4, $lv3,$h-0.7);
cpdf_text($pdf, $t5, $lv4,$h-0.7);
cpdf_text($pdf, $t6, $lv5,$h-0.7);
cpdf_text($pdf, $t7, $lv6,$h-0.7);
cpdf_text($pdf, $t8, $lv7,$h-0.7);
cpdf_text($pdf, $t9, $lv8,$h-0.7);
cpdf_text($pdf, $t10, $lv9,$h-0.7);
cpdf_end_text($pdf);
//linea orizzontale sopra
linea_orizzontale($pdf,$spessore,$h+$BOXINT_Start,$begtxt-2,$endline);
//linea orizzontale sotto
linea_orizzontale($pdf,$spessore,$h-$BOXINT_End,$begtxt-2,$endline);
//linee verticale
if ($nmt==1){
$nmt1=10;
linea_verticale($pdf,$spessore,$begtxt+$nmt1+$num_cifre*2*$nmt,$h-$BOXINT_End-4,$h+$BOXINT_Start);
}
linea_verticale($pdf,$spessore,$begtxt-2,$h-$BOXINT_End-4,$h+$BOXINT_Start);
linea_verticale($pdf,$spessore,$lv1-2,$h-$BOXINT_End-4,$h+$BOXINT_Start);
linea_verticale($pdf,$spessore,$lv2-2,$h-$BOXINT_End-4,$h+$BOXINT_Start);
linea_verticale($pdf,$spessore,$lv3-2,$h-$BOXINT_End-4,$h+$BOXINT_Start);
linea_verticale($pdf,$spessore,$lv4-2,$h-$BOXINT_End-4,$h+$BOXINT_Start);
linea_verticale($pdf,$spessore,$lv5-2,$h-$BOXINT_End-4,$h+$BOXINT_Start);
linea_verticale($pdf,$spessore,$lv6-2,$h-$BOXINT_End-4,$h+$BOXINT_Start);
linea_verticale($pdf,$spessore,$lv4-2,$h-$BOXINT_End-4,$h+$BOXINT_Start);
linea_verticale($pdf,$spessore,$lv8-2,$h-$BOXINT_End-4,$h+$BOXINT_Start);
linea_verticale($pdf,$spessore,$lv9-2,$h-$BOXINT_End-4,$h+$BOXINT_Start);
linea_verticale($pdf,$spessore,$lv10-2,$h-$BOXINT_End-4,$h+$BOXINT_Start);
linea_verticale($pdf,$spessore,$endline,$h-$BOXINT_End-4,$h+$BOXINT_Start);
$h=$h-$BOXINT_End-$BOXINT_Start;
}
//-----BEGIN Salto Pagina
}
}
//$db->close();
}
|
 |
 |
mamboBROWN
Posts: 1713
|
| Posted: 11/03/2008, 2:53 PM |
|
imroza,
Could you please add [TIP] to the title of this thread. You might want to also post this tip in the Tips & Solutions forum for others to find as well. Thanks
|
 |
 |
dellamir
Posts: 6
|
| Posted: 11/03/2008, 11:43 PM |
|
dear imroza,
plz help me on how to make the php out put in pdf file,
i use html2pdf open source.
|
 |
 |
|