LibreOffice Writer és Calc PHP-val/Python-nal

Sziasztok!

Keresgélek, de értelmes/értelmezhető megoldást nem találtam eddig. Lényegében adatbázis tartalma alapján .doc és .xls állományokat kell készítenem. LAMP környezet, adatsorok szépen rendelkezésre állnak, csak a számuk változó, a követelmény pedig az, hogy egy oldalra férjenek ki. Unom a kézi formázást, és arra gondoltam, PHP-ban csak van olyan könyvtár, amivel .doc állományt lehet gyártani. Akadt, de az UTF-8 karaktereket nem szerette.

Az a kérdésem, hogy PHP-ból (vagy PHP alól meghívott Python programmal) hogyan tudok .doc, .xls állományokat gyártani, a megfelelő formázásokkal? Tudtok-e működő könyvtárakról, vagy akár a Writer és a Calc közvetlen vezérlésének módszeréről. Odáig jutottam, hogy mintha lehetne a LibreOffice-t headless módban indítani, na de hogyan tovább?

Továbbá még nyitott kérdés, hogyan adok át PHP-ból adatokat, tömböket a Python-nak - ha ez az út járható a dokumentumok létrehozásához.

Üdv, Cözi

Hozzászólások

NAGYON rút, de ha elmentesz egy html táblázatot .xls néven, akkor az excel megnyitja táblázatként...

Én a PHP-Python összekötéstől nem tartanék, azaz, nem féltelek, ha kitartó vagy, utánakeresel, sok útja van.
Viszont nem lehet PDF-ben gondolkozni?
Ha mindenképpen egy adagnak rá kell férnie egy oldalra, akkor a kinyert adatok sorának számával fordított arányban
növelném a betütípust.
Én PDF-eket szoktam gyártani. Kell hozzá egy kis babrálás, de simán viszi az UTF-8at és minden egyebet.
pl: https://tcpdf.org/
vagy
http://www.fpdf.org/

(szerkeszthetőnek kell maradjon?)

Ha igazán szép és portable nyomtatható dokumentumot akarsz, akkor Latex, PDF kimenettel. Több projektben is használok ilyet. Összehasonlíthatatlanul szebb kimenete van mint egy Word-nek. Ráadásul kb. semmit nem kell hozzá telepíteni a kliens oldalon. Manapság firefox és chrome is beépítve tartalmaz PDF olvasót, meg szinte az összes okostelefon.

A Latex-es generálás legnagyobb hátránya a sebessége. Direkt módon 1 sec alatt létrehozható PDF Latex-ből tízszer annyi idő lehet, vagy még több. A másik hátránya (ha ezt annak lehet nevezni) hogy nem árt minimálisan érteni a tipográfiához.

Kérdés, hogy mi a cél? Ha komoly szerződést vagy egy cég nagy értékű számláit kell generálni, akkor a kinézet a fontosabb. De ha egy olyan programról van szó ami egy ügyfélszolgálaton nyomtat sorszámot a sorban álláshoz, akkor a sebesség a fontosabb.

Szia! Python-Excel gyűjtemény itt:

http://www.python-excel.org/

Ezek közül használtam már az openpyxl-t és az xlwt-t is. Mindkettő nagyon jól megy. Az openpyxl-ben szinte bármit meg tudsz csinálni amit Excel-ben meg tudnál. Igaz hogy nem ODS-t ment, de az mindegy (az openoffice ugyanúgy megnyitja, és az xlsx formátum használata nem okoz licensz problémákat).

A word-re nem tudok kapásból megoldást, de azt tudom hogy LibreOffice-hez van olyan hogy "Python Uno híd". De még sosem használtam. (Meg azt hiszem ahhoz kell telepített libreoffice. Az xlwt-hez és az openpyxl-hez nem kell semmi.)

" a követelmény pedig az, hogy egy oldalra férjenek ki"

Ezt az ügyfél kérte? :-)

Hogy kifér-e egy oldalra vagy nem, az nem a használt library-tól függ, és 99%ban nem a programozótól. Hanem az adattól amit rá kell nyomtatni. Tipikus ügyfél hülyeség: végre sikerül elérni, utána majd jönnek azzal hogy de legyen nagyobb a betű mert nem olvasható.

Ugye ők is tisztában vannak azzal, hogy ez nem azon múlik hogy milyen library-val állítod elő a dokumentumot?