Portál AbcLinuxu, 30. dubna 2025 12:50
No nevím, ale asi bych volil šablonu v LaTeXu a do ní nasypal data z databáze. Vygenerování PS a vytištění už je obdobné.
htmldoc
ale ja bych sel rovnou do postsriptu, protoze pokud se to ma presne pozicovat na strance pak je html hrube nevhodny i za nejlepsich podminek.
"Reseni" s php skriptem nakopavanym z lokalu wgetem jsou s prominutim kryplovina. Podle slozitosti zadani muze byt resenim neco ve stylu mysql | awk | pdf | lp
nebo na narocnejsi veci nejaky ten perl ci python...
co třeba když tiskovej server jede na druhé straně města? za natem? nevím nikdy kd ybude online? Potřebuji prostě systém kdy si "tiskárna" sama bere podklady. Proč to komplikovat když výstup do HTML mám už fungující? Databáze není mysql, a navíc potřebuji trochu grafické uspořádání :D
co třeba když tiskovej server jede na druhé straně města? za natem? nevím nikdy kd ybude online?
lpr klient → lpr server → nespolehlivá síť → lpr server → tiskárna
pořád mi ale uniká výhoda oproti využití toho co už na serveru je. Report v PHP mám, nevím proč by toho mělo být jakkoliv výhodnější?
J.
Doporučuji http://www.reportlab.org/
Tohle je velmi obtížný problém. Co budete dělat, když vstupní údaje budou natolik dlouhé, že se na vyhrazené místo ve formuláři nevejdou? Budeme zmenšovat písmo? A jak se to vůbec naše aplikace dozví, že text vytekl z ohraničení?
Já jsem zkoušel udělat automatizovaný tisk obálek LaTeXem a byl to porod. Nakonec jsem přetékání vůbec neřešil. Ostatně požadavky České pošty na adresu (minimální velikost písma) a některé obálky s vyrohovanou oblastí představují snad neřešitelný problém.
Největší problém vidím, že neexistuje nástroj, který by uměl sazbu do pevně vymezeného bloku a který by si uměl přizpůsobit písmo (změnit velikost, srazit šířku nebo naproti tomu zachovat výšku řádku).
TeX se na tohle nehodí, protože ten natahuje akorát mezery, a když nevymyslí nic kloudného, tak prostě zlomí stránku.
HTML + CSS je na tom ještě hůře.
SVG neřeší přetečení.
FO je něco mezi TeXem a CSS.
% ... definice ...
\newbox\x\newdimen\sc\newcount\tmp
%
\def\zmensi#1#2{%
\font\f=csr12\setbox\x=\hbox{\f #1}% změřím si text výchozím písmem
\ifdim\wd\x>#2% pokud je moc velký ...
\sc=#2\tmp=\wd\x\divide\tmp by 1000\divide\sc by \tmp
% ... napočítám si potřebné zmenšení (tohle je poněkud fuj, neb TeX neumí
% neceločíselné dělení ...
\font\f=csr12 scaled \sc% a adekvátně zmenším font
\fi
\hbox to #2{\f #1\hss}}% no a nakonec ten text opravdu vysázím
%
% ... a použití ...
\noindent\zmensi{Kratky text}{5cm}\vrule
\noindent\zmensi{Vyrazne delsi dlouhy text, ktery se bude zmensovat}{5cm}\vrule
\bye
Podobný příklad jde najít třeba v Olšákově TeXbooku naruby (mimochodem výborná knížka, doporučuji).
Ohledně UTFka nevím, já jsme zatím spokojený s 8bit, ale každopádně analogický postup tomu výše půjde i v LaTeXu, jen ho bude třeba LaTeX-friendly obalit. :)
Tady (www.abclinuxu.cz/blog/Elliot/2008/6/php-plneni-sablony-a-jeji-tisk) jsem resil podobny problem. Nakonec jsem zvolil sablonu v ODT/ODS a plnil ji v PHP skriptu pomoci Smarty. Musim rict, ze elegance sama a pro muj ucel naprosto dokonale. Navic jde vypleny ODT rovnou prevest do PDF.
takže hotovo, super, dík za nápady
#!/bin/sh FILE=`date +%Y-%m-%d-%s` wget --user=XXXX --password=XXXX -q http://server.cz/soubor.php -O /home/tisk/$FILE.html && { htmldoc -t ps --no-toc --no-title --charset utf-8 /home/tisk/$FILE.html > /home/tisk/$FILE.html.ps lp -d PSC2570 /home/tisk/$FILE.html.ps }|| rm /home/tisk/$FILE.html
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.