Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

Generisanje dokumenta za stamapnje na strogo definisanom obrascu

  • 13 odgovora
  • 5.016 pregleda

Najnovija ↓

Generisanje dokumenta za stamapnje na strogo definisanom obrascu 23.10.2013. u 15:37 · pre 158 meseci #1
Postovani,

imam PHP web aplikaciju pomocu koje skladistim podatke koji se koriste za stampanje na odredjenim obrascima. Podatke cuvam u MySQL bazi podataka i model baze je modelovan tako da jednim slozenijim upitom mogu da dobavim sve ono sto treba da stampam na jednom obrascu.

Ono sto mi pravi problem jeste stroga struktura obrasca jer to su vec gotovi dokumenti na kojima ja samo treba da ispisem odredjene podatke, tj. na tacno odredjenim pozicijama dokumenta treba da se nadje tacno odredjen podatak.

Npr. kao kada bih programski hteo da stampam sadrzaj opste uplatnice. Na uplatnici se zna tacno koliko je koje polje veliko i samo u njega treba da se upise npr. broj ziro racuna.

Ono sto otezava posao jeste cinjenica da su obrasci takvog tipa da mi je cesto neophodna preciznost na nivou milimetra.

Ono sto sam ja pokusao da implementiram jeste da izgenerisem word dokument i da njega stampam. Medjutim, problem nastaje sa marginama i cesto imam situaciju da stringovi nisu na svom mestu i budu pomereni gore/dole ili levo/desno. Ne mogu nikako da implementiram resenje koje ce generisati .doc ili .docx ciji sadrzaj ce biti na tacno odredjenim pozicijama. Bitno mi je da bude bas .doc ili .docx, a ne neki drugi format (PDF i sl.).

Pokusao sam da koristim neke gotove biblioteke (PHPWord itd.) ali nisam uspeo sa njima da ostvarim zeljeni efekat. Takodje, pokusao sam da dinamicki generisem html kod, pa da njega export-ujem u .docx i onda njega da stampam. Medjutim, ni to nije imalo efekta jer neka podesavanja koja sam postavio u html-u (paddings, margine, div-ovi) se ne zadrze uvek u .docx-u.

Da li neko ima ideju kako bih mogao da resim problem? Znaci, ne treba mi gotovo resenje nego samo smernica koju tehniku da iskoristim za resavanje problema ovog tipa.

Unapred hvala.
Re: Generisanje dokumenta za stamapnje na strogo definisanom obrascu 23.10.2013. u 19:02 · pre 158 meseci #2
Možeš li da obrazac koristiš kao pozadinu (možda kao pozadinsku sliku), a dodavanje vrednosti i teksta uz pomoć html, css, javascript.
Na primer:
https://github.com/jonathantneal/html5-invoice
Test:
http://www.jonathantneal.com/examples/invoice/

Ovo je možda bitno za print. U css-u se koristi:
-webkit-print-color-adjust
@page - normalizovanje margina

Code:
@page { margin: 0; }
Potpis
I hope I didn't brain my damage - Homer
if (wife.position == kitchen) {return sandwich};
Re: Generisanje dokumenta za stamapnje na strogo definisanom obrascu 23.10.2013. u 19:36 · pre 158 meseci #3
Zašto ne bi probao obrnutim pristupom, umesto da generišeš ceo Docx iz koda/html-a,
napraviš u Word-u valjan obrazac i postaviš sve u milimetar - tabele za layout ili
šta god treba da bi dobio valjan rezultat, tj. dokument koji se ne raspada.
U samom dokumentu, umesto podataka staviš npr. [*BrojRacuna*], [*Adresa*], itd...

Onda uzmeš takav Docx i otpakuješ ga - videćeš da se sastoji od hrpe xml-ova. Document.xml fajl sadrži tvoj dokument.
U kodu, učitaš ovaj fajl i uradiš replace [*BrojRacuna*] sa stvarnim podatkom (xml ecoded!), [*Adresa*] sa stvarnom adresom (xml ecoded!), itd...
U kodu, zip-uješ novi Document.xml zajedno sa ostalim fajlovima u neki novi Docx i to je to.

Ovo pije vode za jednostave stvari, gde je uglavnom sve fiksirano i nema puno dinamike.
Pogledaj da li ti odgovara i Word-ov xml format umesto docx-a, tu je onda još prostije, nema zip-ovanja, sve je u jednom fajlu.

Pozdrav!
Re: Generisanje dokumenta za stamapnje na strogo definisanom obrascu 24.10.2013. u 10:40 · pre 158 meseci #6
Ako je neko stara škola web dizajna, onda je Excel mnogo prikladniji za "prelom", a razlog su tabele - jeste da su razvojem CSS-a postale omražene, ali je nekad samo uz pomoć tabela mogao da se pravilno odradi raspored elemenata na stranici. A koji softver je bolji za igrarije sa tabelama od Excela - mogu se vrlo precizno postaviti dimenzije ćelija i njihov položaj na papiru, a kao što reče @dusans, savremene verzije Office aplikacija generišu XML dokumente, tako da se sve to na kraju može nafilovati podacima iz PHP-a...
Re: Generisanje dokumenta za stamapnje na strogo definisanom obrascu 25.10.2013. u 10:21 · pre 158 meseci #9
Analizirao sam svaki od izlozenih resenja i opredelio sam se za TCPDF jer ima dobre mogucnosti za veoam suptilna podesavanja. Jeste da mi vise odgovra .doc ili .docx zato sto bi u tom slucaju korisnik rucno mogao nesto da ispravim u dokumentu ukoliko nije dobar neki podatak. Ali s druge strane, posto je .pdf u pitanju, onemugucavam korisnika da bilo sta menja u dokumentu, sto i nije tako lose.

Hvala svima na odgovorima i predlozima, veoma mnogo ste pomogli. :)
Re: Generisanje dokumenta za stamapnje na strogo definisanom obrascu 26.10.2013. u 12:27 · pre 158 meseci #12
ima jos jedan nacin, mozda i najbolji.

podrazumeva da stampac bude prikaljucen na unix/linux, a moze i na dow/win uz odredjene modifikacije.

a to je da se text salje direktno na port stampaca. u ux sistemima se moze lako napisati drajver da podrzi ovakve stvari, a tekst se moze prihvatiti kroz skoro svaki interfejs (samba. ftp). Nisam nikada radio kroz http, ali pretpostavljam da se i to moze lako napisati.

prednost je sto dobijes generisani txt fajl i to sibnes na stampac. tako smo ranije stampali uplatnice, resenja, dostavnice na linijskim stampacima.
Potpis
Moj Veb Sajt HostCentar Blog
Aleksinac Južna Srbija TimeOut
Re: Generisanje dokumenta za stamapnje na strogo definisanom obrascu 28.10.2013. u 10:22 · pre 158 meseci #14
Ovo sa raw/txt modom će teško funckionisati na savremenim printerima i Win sistemima. Na tržištu je danas previše Win only štampača koji nemaju ni pravu podršku za PCL ili PS, a druga stvar je da savremeni Windows sistemi ne podržavaju RAW format fajlova za štampu, tako da ovo uglavnom može da se primeni samo na Linux/Unix sistemima ili prastarim Windowsima. A sećam se i ja vremena kad smo iz Clippera štampali personalizovane uplatnice baš na taj način...
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme