Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc
Comunitatea PHP Romania
 

Sablon Factura in PDF
Vezi mesajul original

 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> PHP Avansat
Subiectul anterior :: Subiectul următor  
Autor Mesaj
gabysolomon



Data înscrierii: 09/Apr/2006
Mesaje: 741
Locație: Bacau

Trimis: Sâm Noi 03, 2007 1:43 pm    Titlul subiectului: Sablon Factura in PDF  

Vreau sa salvez facturile in PDF, si pentru asta am facut un sablon de factura in PDF cu campurile de genul {*ADRESA*} si cu str_replace le inlocuiesc cu ce vreau eu.

Pana aici totul e OK dar problema de care ma lovesc este ca la societatile cu nume mai lung, sau cu o adresa mai lunga ele merg in continoare si nu stiu cum sa dau sa mearga pe randul urmator.

Si daca merg pe randul urmator cum fac sa mute campurile de sub el mai jos ca sa nu scrie peste ele ?

A mai facut cineva ceva asemanator ? Poate are o metoda mai usoara.

Urmatoarea solutie la care ma gandesc este sa generez eu factura din php si sa nu fac replace pe un template.

Ms frumos.
Sus  
Pirahna



Data înscrierii: 22/Aug/2004
Mesaje: 4355
Locație: la birou

Trimis: Sâm Noi 03, 2007 3:58 pm    Titlul subiectului:  

pai numeri cate caractere incap pe randul ala si apoi faci un newline.
numarand caracterele deasemenea iti dai seama si daca trebuie mutate campurile mai jos sau nu.
Sus  
gabysolomon



Data înscrierii: 09/Apr/2006
Mesaje: 741
Locație: Bacau

Trimis: Sâm Noi 03, 2007 4:04 pm    Titlul subiectului:  

pai nu e asa de simplu ( cel putin asa mi se pare mie ).
Cum spuneam acum pdf-ul este generat prin citirea unui Template ( un fisier PDF care are in locul in care vreau eu sa scriu texte de genul {*ADRESA*} in locul in care eu vreu adresa ).
Pentru Produse am pus {*PRODUS1*},{*PRODUS2*} etc
dar daca produsul 1 are un nume mai lung el scrie in continuare ... si nu stiu cum sa fac sa scrie pe urmatorul rand.
Deocamdata am facut ca el sa scrie pe randul urmator prin a completa produsul 2 cu ce depaseste.

Dar eu vreau sa gasesc o metoda mai buna.

Ma gandesc sa incerc sa caut o clasa HTML2PDF. am gasit una pe SourceForge dar e inca beta si nu prea merge sa setez marimea fontului.

Multumesc pentru raspuns.
Sus  
Pirahna



Data înscrierii: 22/Aug/2004
Mesaje: 4355
Locație: la birou

Trimis: Sâm Noi 03, 2007 6:35 pm    Titlul subiectului:  

iei numele si-l tai, chiar e simplu.

daca e nevoie, mai faci un {*PRODUS1_ROW2*}
pe care il inlocuiesti cu nimic sau cu al doilea rand al numelui.
Sus  
gabysolomon



Data înscrierii: 09/Apr/2006
Mesaje: 741
Locație: Bacau

Trimis: Sâm Noi 03, 2007 10:29 pm    Titlul subiectului:  

asa fac acum dar ma gandeam daca cum pot pune <br /> in pdf ?
Sus  
Pirahna



Data înscrierii: 22/Aug/2004
Mesaje: 4355
Locație: la birou

Trimis: Sâm Noi 03, 2007 11:48 pm    Titlul subiectului:  

pai tu cum naiba generezi pdf-ul ala ?

ca ziceai in primul post ca faci un str_replace pe template si nu apare bine in pdf daca e prea lung numele.

deci cum arata template-ul ala ? acolo schimbi.
Sus  
gabysolomon



Data înscrierii: 09/Apr/2006
Mesaje: 741
Locație: Bacau

Trimis: Sâm Noi 03, 2007 11:57 pm    Titlul subiectului:  

pdf-ul este generat asa cum am spus prin str_replace intr-un pdf existent.
ca sa fiu mai exact in pdf am ceva de genul
{*produs1*} | {*valoare1*}
{*produs2*} | {*valoare2*}
{*produs3*} | {*valoare3*}

daca denumirea produsului 1 e mai lunga atunci inlocuiesc:
{*produs1*} => $produs1_1,
{*valoare1*} => $valoare1,

{*produs2*} => $produs1_2,
{*valoare2*} => 0,

{*produs3*} => $produs2,
{*valoare3*} => $valoare2,

dar solutia asta mi se pare un pic cam peste mana, si ma gandeam daca are cineva o alta idee. Sau daca a mai facut cineva ceva asemanator.
Sus  
Pirahna



Data înscrierii: 22/Aug/2004
Mesaje: 4355
Locație: la birou

Trimis: Dum Noi 04, 2007 1:00 am    Titlul subiectului:  

atunci fa doua pdf-uri, unul cu un rand, si altul cu doua randuri si gata.

exista si clase html 2 pdf care merg, dar nici una nu se comporta cum trebuie (m-am jucat recent cu pdf-uri si m-am lasat batut ca n-am gasit nimic care sa ma satisfaca)
Sus  
gabysolomon



Data înscrierii: 09/Apr/2006
Mesaje: 741
Locație: Bacau

Trimis: Dum Noi 04, 2007 1:06 am    Titlul subiectului:  

asta e idea ca cautam o solutie in gen html2pdf care sa mearga.
Ele oferind o flexibilitate mai mare a templatului de factura.

Speram ca poate cineva a lucrat mai mult cu ele si a gasit una care sa mearga OK.

Multumesc pentru raspunsuri piry. O bere virtuala :occasion5:
Sus  
icsfails



Data înscrierii: 26/Mai/2002
Mesaje: 101
Locație: Timisoara

Trimis: Sâm Noi 10, 2007 12:44 pm    Titlul subiectului:  

Nu e chiar ceea ce cauti tu, dar ai putea sa incerci si http://fpdf.org/
Citat: MultiCell
MultiCell(float w, float h, string txt [, mixed border [, string align [, int fill]]])

Description
This method allows printing text with line breaks. They can be automatic (as soon as the text reaches the right border of the cell) or explicit (via the \n character). As many cells as necessary are output, one below the other.
Text can be aligned, centered or justified. The cell block can be framed and the background painted.
Sus  
gabysolomon



Data înscrierii: 09/Apr/2006
Mesaje: 741
Locație: Bacau

Trimis: Sâm Noi 10, 2007 1:13 pm    Titlul subiectului:  

Multumesc de raspuns

Dar am incercat si aceasta clasa si inca mai are anumite bug-uri :(
Sus  
Birkoff



Data înscrierii: 18/Mar/2004
Mesaje: 2309
Locație: Bucuresti

Trimis: Sâm Noi 10, 2007 3:10 pm    Titlul subiectului:  

Eu folosesc fpdf impreuna cu un ad-on pentru introdus poze...
am avut si eu probleme la inceput, printre care si problema ta cu aranjarea randurilor, dar am facut cum a zis Pirahna, numar caracterele si daca sunt mai multe decat trebuie le rup si le afisez unul sub altul dinamic...
la fel si la denumirea produselor, daca depaseste un anumit nr de caractere rup si afisez pe cate randuri trebuie, si tin minte la ce rand trebuie sa afisez urmatorul produs...
am mai avut problema si la limita de randuri (daca sunt descrieri stufoase si prea multe produse nu incap toate pe o singura factura, si atunci genrez un avertisment in loc de factura propriuzisa...

treaba cu template am vrut sa o aplic si eu la inceput dar am modificat de la 0 dupa ce am avut problemele de mai sus...
Sus  
gabysolomon



Data înscrierii: 09/Apr/2006
Mesaje: 741
Locație: Bacau

Trimis: Sâm Noi 10, 2007 7:06 pm    Titlul subiectului:  

am incercat putin cu fpdf dar imi mai dadea niste erori si am gasit ceva ce credeam ca e mai bun html-2-pdf ... o clasa bazata pe fpdf ... dar la care modificarile de font erau o adevarata arta ... neavand suport pentru asta momentan ( e inca BETA )

Dar probabil o sa incerc din nou cu fpdf ... sa vad poate reusesc

Multumesc tuturor de raspuns.
Sus  
PHPRomania Bot
Bot Member


Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google
Trimis: Mie Dec 26, 2007 7:01 pm   Titlul subiectului: Ad  

Sus  
 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> PHP Avansat
Pagina 1 din 1


Powered by phpBB 2.0.22 © 2001, 2002 phpBB Group
Varianta în limba română: Romanian phpBB online community