Autor Zpráva
mistig
Profil
Dobrý den / večer

Úvodem řeknu že jsem v PHP amatér, který si v tom tak trochu hraje a občas ho napadne blbost o které ani neví jestli je možná :D A proto se ptám tady.

K věci. Mám vytvořený jednoduchý CRUD systém pro správu objednávek. Faktury řeším tak, že si je generuju v HTML/CSS a jen na určité místo doplním údaje z databáze pomocí PHP proměnných a tím mám fakturu tak jak jí mít chci připravenou k tisku. Používám prohlížeč Google Chrome, kde stačí kliknout na tuto fakturu v HTML/CSS pravým tlačítkem a dát Tisk. Prohlížeč Chrome má tu vlastnost , že než něco pošle na tiskárnu, tak to zkonvertuje do PDF. Takže musím dát Uložit jako... (PDF) a pak to otevřít a dát Tisk.

Funguje to tak jak chci. Faktura v PDF vypadá stejně jako v HTML/CSS, je automaticky předvyplněná údaji, které tam chci mít a je zároveň uložena na místě kde si vyberu. Takhle bych to chtěl, ale začíná to být otravné pořád volit kam to chci uložit, změnit název ukládaného souboru, uložit, pak to otevřít a až potom tisknout.

Dotaz: Nedalo by se to nějak zautomatizovat, případně jak? Třeba že by se po stisku jednoho tlačítka faktura uložila na určité místo, pod určitým názvem a zároveň se vytiskla?
Vždy jde jen o jednu stránku.


Díky moc za případné odpovědi ;)
Davex
Profil
mistig:
Asi by na to šlo použít přepínač --kiosk-printing při spuštění Chrome, ale nevím, jak přesně to funguje. K uložení HTML do PDF souboru jsem párkrát použil program wkhtmltopdf.
Keeehi
Profil
mistig:
Prohlížeč Chrome má tu vlastnost , že než něco pošle na tiskárnu, tak to zkonvertuje do PDF. Takže musím dát Uložit jako... (PDF)
Ukládat to není potřeba. Chrome umí samozřejmě přímo tisknout.
mistig
Profil
Davex, Keeehi:
Děkuji Vám oběma za reakce.
Zkoušel jsem ten přepínač --kiosk-printing, který by měl sloužit k tomu, že schová "print dialog box". Zkoušel jsem ale nefungovalo, což nevadí protože to ani nebudu potřebovat, protože to co napsal Keeehi jsem si nějak neuvědomil. Neuvědomil to že si můžu vybrat, zda to chci tisknout rovnou a nebo to uložit přimo v Chrome. Měl jsem tam defaultně nastavené Uložit jako... a nevěděl jsem, že to jde tak jednoduše přepínat zda chci tisk NEBO Uložit jako PDF :)
Takže docela dobré, teď nemusím otvírat to PDF. Nicméně stále hledám něco, kdy bych nemusel vybírat uložit NEBO tisk, ale bylo by to uložit A tisk. K tomu uložení ideálně pod názvem objednávky, na předem určené místo a nemusel už bych se víc starat. Netrvám ani na tom Chrome prohlížeči, ten mi přišel sympatický hlavně v tom převádění na PDF.

Pokud by to nešlo, tak budu prostě psát název souboru ručně a vybírat pokaždé kam to chci uložit. Což nevadí, jen jsem si to chtěl víc ulehčit. :)

Na wkhtmltopdf určitě mrknu. Díky za tip.
Keeehi
Profil
mistig:
Nicméně stále hledám něco, kdy bych nemusel vybírat uložit NEBO tisk, ale bylo by to uložit A tisk.
Uložit a tisk moc asi nepůjde. Určitě ne stylem, jaký si představuješ.
Kam se bude ukládat nikdy nijak neovlivníš. Prohlížeče většinou používají systémová dialogová okna. Navíc kdyby to šlo, jen by to zvyšovalo bezpečnostní riziko. Ovšem ta dialogová okna si většinou pamatují poslední cestu a při ukládání dalšího souboru ji nastaví jako výchozí.
Co se názvu souboru týče, tak bych při tom tisknutí do souboru předpokládal, že se vytváří podle URL adresy. Pokud bys měl vhodý tvar URL, asi by se soubor mohl jmenovat hezky sám od sebe. Stejně ale ten tisk bys musel provádět dvakrát.
Jednoho z nich se dá zbavit. A to je ten tisk do souboru. PDF si pomocí už zmíněné knihovny můžeš vygenerovat na serveru a jen prohlížeč donutit to stáhnout. V tomto případě můžeš určitě nastavit jméno výsledného souboru. Cestu stále ovlivnit nemůžeš. Stačí už pak jen ten fyzický tisk.
Pokud máš server na stejném stroji jako chceš mít uložené ty PDF soubory, nemusel bys je posílat prohlížeči ke stažení, ale PHP by je mohlo ukládat na určené místo.

Ještě takový logický dotaz. Proč potřebuješ mít uložené všechny faktury v PDF? Ty papírové chápu, ty asi potřebuješ pro zákazníky, ale ty PDF si přece můžeš vygenerovat vždy až když je budeš potřebovat. Nebo proč se to musí dělat vždy zároveň s fyzickým tiskem?

A ještě jeden nápad, nepřemýšlel jsi o tom, že by pro ten tisk mohlo být vice faktur na jedné dlouhé stránce, takže by se jich rovnou vytisklo více, každá na svůj papír?
mistig
Profil
Keeehi:

"Uložit a tisk moc asi nepůjde. Určitě ne stylem, jaký si představuješ." OK, počítal jsem s tím.

Co se týká toho tisku na papír, tak jsem spokojen, rozkliknu si to dám CTRL+P pak ENTER a už to leze z tiskárny tak jak má. Tohle bych považoval za vyřešené.

Z toho všeho cos napsal je nejlepší tvůj logický dotaz. Nějak jsem si to vymyslel a toho se držel, už jsem nehledal jiné (lepší) řešení. Super je ten pohled někoho dalšího, který tě nakopne správným směrem.

"Pokud máš server na stejném stroji jako chceš mít uložené ty PDF soubory, nemusel bys je posílat prohlížeči ke stažení, ale PHP by je mohlo ukládat na určené místo." Jo, tohle by bylo fajn.

"Proč potřebuješ mít uložené všechny faktury v PDF?"
"Nebo proč se to musí dělat vždy zároveň s fyzickým tiskem?"

Až teď jsem si uvědomil, že není nutné dělat obojí zároveň. Stačilo by mi to jen vytisknout. Vytisknu fakturu, zabalím jí se zbožím a pošlu (vyřešeno). Ale chtěl jsem mít možnost ty faktury nějak skladovat. Kdybych se rozhodl ty faktury skladovat v papírově podobě, tak to jen vytisknu 2x (jednu pošlu, jednu si nechám) a už se nestarám o PDF. Rozhodl jsem se je mít někde po ruce v elektronické podobě a k tomu si zvolil právě formát PDF, protože mi přišel nejvíc profláklý, přenosný, každý to umí otevřít atd. A důvod proč to chci je pro případ nějaké kontroly typu finančák atd. Jim to hodím na flashku a čau. Takže není nutné tisknout a ukládat zároveň. Potřebuju mít možnost to všechno nějak vyexportovat (klidně najednou), až to budu potřebovat. Díky za tvůj čas!

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: