Pagina 1 din 1

sugestie aranjare pdf cu php

Scris: Vin Mai 25, 2012
de trif
salut, am si eu o mica problema, am facut doc pdf cu php

Cod: Selectaţi tot

<?php
 include('fpdf.php');             // Include clasa FPDF
 // Creaza documentul de lucru
 $pdf=new FPDF();
 $pdf->AddPage();                                 // Initializeaza pagina
 $pdf->SetFont('Arial','',12);
 $pdf->Text(20,15,"UNIVERSITATEA DIN ORADEA ");            
 $pdf->SetFont('Arial','',12);
 $pdf->Text(167,15,"NR. 803");    
 $pdf->Text(20,21,"Facultatea de Inginerie Electrica si Tehnologia Informatiei");           
 $pdf->Text(167,15,"NR. 803");    
 $pdf->Text(151,21,"Data: 25.04.2012");      
 $pdf->Text(20,27,"Specializarea: CALCULATOARE");             
 $pdf->SetFont('Arial','b',14);
 $pdf->Text(90,40,"ADEVARINTA"); 
 $pdf->SetFont('Arial','',12);
 $pdf->Text(30,55,"Studentul(a) ");  
 $pdf->SetFont('Arial','b',12);
 $pdf->Text(55,55,"POPESCU IONEL CLAUDIU");
 $pdf->SetFont('Arial','',12);
 $pdf->Text(120,55,"este inscris(a) in anul universitar");  
 $pdf->SetFont('Arial','b',12);
 $pdf->Text(20,61,"2011/2012"); 
 $pdf->SetFont('Arial','',12);
 $pdf->Text(41,61,"in anul");   
 $pdf->SetFont('Arial','b',12);
 $pdf->Text(55,61,"IV"); 
 $pdf->SetFont('Arial','',12);
 $pdf->Text(60,61,"de studii,"); 
 $pdf->SetFont('Arial','',12);
 $pdf->Text(78,61,"cursuri de"); 
 $pdf->SetFont('Arial','b',12);
 $pdf->Text(98,61,"zi"); 
 $pdf->SetFont('Arial','',12);
 $pdf->Text(102,61,"."); 
 $pdf->SetFont('Arial','',12);
 $pdf->Text(30,67,"Adeverinta se elibereaza pentru a-i servi la"); 
 $pdf->SetFont('Arial','b',12);
 $pdf->Text(111,67,"olimpiada de robotica faza"); 
 $pdf->SetFont('Arial','b',12);
 $pdf->Text(20,73,"internationala"); 
 $pdf->SetFont('Arial','',12);
 $pdf->Text(48,73,"."); 
 $pdf->SetFont('Arial','',12);
 $pdf->Text(30,82,"DECANAT"); 
 $pdf->SetFont('Arial','',12);
 $pdf->Text(30,88,"DECAN,"); 
 $pdf->SetFont('Arial','',12);
 $pdf->Text(150,88,"Secretar,"); 
 $pdf->Output();    
 // Creaza clasa extinsa a clasei de baza FPDF
 ?>
dar faza este ca DACA se poate sa il fac "dinamic" adica in functie de lungimea cuvantului sa imi mearga pe randul urmator.
NU cum a facut aici ca am dat fiecare protiune niste date si acolo stau indiferent daca este informatia extrasa mai mare sau mai mica.
Sper ca ati inteles. asptept raspuns, multumesc anticipat. cu stima Trif

sugestie aranjare pdf cu php

Scris: Sâm Mai 26, 2012
de MarPlo
Salut
Pentru PDF din PHP, folosesc clasa dompdf.
Se creaza documentul cu elemente HTML asa cum vrei sa arate, iar clasa dompdf il transforma la fel in PDF.
La cum folosesti, ar fi mai complicat, sa verifici cu strlen($sir) lungimea sirului, apoi sa-l imparti de la acel numar de caractere, daca-l depaseste, si sa pui partile pe cate un rand. Dar prea complicat, nu ma bag, e mai simplu cu format HTML si dompdf.

Re: sugestie aranjare pdf cu php

Scris: Sâm Mai 26, 2012
de trif
salut,
Am folosit asta de pe curs:

Cod: Selectaţi tot

<?php
include('fpdf.php');  // Include clasa FPDF

// Creaza clasa extinsa a clasei de baza FPDF
class PDF extends FPDF {
  // Definirea variabilei pt. lucru cu adresa URL
  var $HREF;

  // Functia care scrie textul si recunoaste tagu-urile HTML
  function WriteHTML($html) {
    // Inlocuieste cu spatiu linia noua si parseaza tag-ul HTML
    $html = str_replace("\n",' ',$html);
    $a = preg_split('/<(.*)>/U',$html,-1,PREG_SPLIT_DELIM_CAPTURE);
    foreach($a as $i=>$e) {
      if($i%2==0) {
        // Daca in tag e recunoscut href
        if($this->HREF) $this->PutLink($this->HREF,$e);
        else $this->Write(5,$e);
      }
      else {
        // Daca este eticheta de inchidere a tag-ului
        if($e[0]=='/') $this->CloseTag(strtoupper(substr($e,1)));
        else {
          // Extrage atributele
          $a2 = explode(' ',$e);
          $tag = strtoupper(array_shift($a2));
          $attr=array();
          foreach($a2 as $v) {
            if(preg_match('/([^=]*)=["\']?([^"\']*)/',$v,$a3))
              $attr[strtoupper($a3[1])] = $a3[2];
          }
          $this->OpenTag($tag,$attr);
        }
      }
    }
  }

  // Functia pt. determinarea actiunii in functie de tag-ul HTML recunoscut
  function OpenTag($tag,$attr) {
    // Daca tag-ul este B, I sau U
    if($tag=='B' || $tag=='I' || $tag=='U') $this->SetStyle($tag,true);
    // Daca tag-ul e A
    if($tag=='A') $this->HREF=$attr['HREF'];
    // Daca tag-ul e BR
    if($tag=='BR') $this->Ln(5);
  }

  // Functia pt. actiunea la inchiderea tag-ului
  function CloseTag($tag) {
    // Daca tag-ul inchis este B, I sau U
    if($tag=='B' || $tag=='I' || $tag=='U') $this->SetStyle($tag,false);
    // Daca tag-ul inchis e A
    if($tag=='A') $this->HREF='';
  }

  // Functia pt. setarea stilului textului in functie de tipul tag-ului B, I, U
  function SetStyle($tag,$enable) {
    // Seteaza stilul fontului in functie de tag-ul B, I sau U
    $this->$tag+=($enable ? 1 : -1);
    $style = '';
    foreach(array('B','I','U') as $s) {
      if($this->$s>0) $style.=$s;
    }
    $this->SetFont('',$style);
  }

  // Functia pt. adaugarea link-ului
  function PutLink($URL,$txt) {
    // Seteaza fontul specific link si apeleaza metoda Write() cu atribut pt. URL
    $this->SetTextColor(0,0,255);
    $this->SetStyle('U',true);
    $this->Write(5,$txt,$URL);
    $this->SetStyle('U',false);
    $this->SetTextColor(0);
  }
}

// Variabila ce contine textul cu elemente HTML
$html = 'Text care contine tag-uri HTML a caror stil va fi recunoscut si modificat pentru PDF, pentru a fi similar cu stilul afisat in pagina HTML.<br />
Linie noua adaugata cu BR, stilurile recunoscute: <b>bold</b>, <i>italic</i>, <u>underlined</u>, sau <b><i><u>toate la un loc</u></i></b>!<br><br>
    Link adaugat prin recunoasterea tag-ului "A" specific pt. link-uri, <a href="https://marplo.net/php-mysql/">Curs PHP - MySQL</a>';

$pdf = new PDF();
$pdf->AddPage();
$pdf->SetFont('Arial','',14);

// Apeleaza metoda WriteHTML() creata in clasa extinsa
// transferand ca argument variabila $html
$pdf->WriteHTML($html);

$pdf->Output();
?>
Este simplu acum!
Cu stima trif