Portál AbcLinuxu, 30. dubna 2025 10:14
Takže, tohle není žádný objevný příspěvek, ale dotaz. Důvod proč je to tady a ne v poradně je, jak jinak, ten, že nechci aby mi to nějaký béčko zamknulo s tím, že se nejedná o Linuxový problém.
Co bych potřeboval: mám prodejní systém napsaný v PHP a SAPu jako backendu. K tomu hromada JavaScriptu. Do systému se zadávají klienti, různé údaje ohledně jejich koupě atd. Ve výsledku se tyto údaje mají použít k naplnění šablony smlouvy a následně se tato vyplněná šablona vytiskne.
V současné době to řeším tak, že šablonu ve Wordu, kterou mi připraví prodejkyně, převedu (Uložit jako...) do HTML kódu. Tento HTML kód naplním trochou PHP, které si ze SAPu nasosá data a následně celé toto vyplněné HTML pošle jakože RTF dokument. Ten, jakožto zasociovaný s Wordem se v tomto otevře, prodejkyně má možnost případně něco doupravit, a následně jej vytiskne. V čem je problém s tímto (ne)dokonalým přístupem? V tom, že jelikož je to celé v podstatě HTML stránka, formátování je nevalné. Ono jde v de facto jen o mezeru sem, mezeru tam, ale pokud má být něco zarovnáno do sloupečku a někde mezírka chybí, zvlášt na smlouvě za pár mega to nevypadá dobře.
Tudíž potřebuji poradit. Neměl někdy někdo stejný problém, jak plnit šablonu daty v PHP systému tak, aby byla následně ready-to-print? Další můj nápad byl ten, že bych šablonu napsal v TeXu a data do toho doplnil na způsob preg_replace
atd. Tím bych se zbavil problému s nekvalitním výstupem, na druhou stranu šablony se mění cca 4x do roka, každá má řádově 20 stran a prodejkyně to neumí, tudíž bych to musel dělat já. Což dělat nebudu. Pokud má někdo nějakou radu, sem s ní prosím.
Tiskni
Sdílej:
Důvod proč je to tady a ne v poradně je, jak jinak, ten, že nechci aby mi to nějaký béčko zamknulo s tím, že se nejedná o Linuxový problém.OMG, prosím řekni, že jméno tvého blogu nemá nic společného s touhle Elliot.
My máme něco podobného vyřešeno nikoliv přes Word -> HTML -> Word -> RTF nebo jak to bylo , ale pomocí OpenOffice.
V OO jsou udělané šablony, na místech, kde se cosi kdesi doplňuje jsou dohodnuté sekvence (např. #JMENO#). Příslušné šablony jsou nahrané na serveru a využívá se toho, že OO ukládá defacto v zazipovaném XML. Takže PHP skript si šablonu odzipuje, udělá potřebné preg_replacy, respektive dogeneruje XML kódy různých tabulek a podobně, výsledné XML zase zazipuje a nabídne uživateli jako OO dokument.
Výhodou oproti tomu vašemu řešení je, že se "formátování" neřeší v HTML nýbrž v nativní OO formátu, takže je to bezproblémové. Nevýhodou je, že byla skutečně nezanedbatelná onanie vyladit manipulaci s tím XML formátem. Nicméně, když se to jednou udělalo, dají se ty šablony (v rozumné míře) modifikovat, aniž by se muselo sahat do výkonného kódu.
content.xml
a ten se s predpripravenym zbytkem zazipuje do ODT. Popripade muzes ty data do sablony dostat jinak nez XSLT, ale tohle mi pripadne jako nejlepsi.
Pokud na druhe strane nechteji pouzivat OOo, muzes zkusit http://odf-converter.sourceforge.net/
Dokumentaci ti budiz specka ODF a volne dostupna e-kniha OASIS OpenDocument Essentials.
Kdyby na druhe strane vylozene nechteli ODF, poradil bych ti jeste OOXML a nejaky plugin pro nej do starsiho Wordu. Nicmene vzhledem k soucasnemu nejistemu postoji samotneho MS vuci OOXML (tedy alespon navenek...) si nejsem jisty, jak moc perspektivni reseni by to bylo.
Mmm, jakmile někde vidím napsáno XSLT, utíkám pryč, takže jsem to lehce minul:-P
Celkom by ma zaujimalo akym sposobom pristupujte z PHP do SAP?
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.