Coś jak Crystal Reports dla PHP?

Szukam czegoś, co działa w PHP i jest podobne do crystal reports. Zasadniczo potrzebuję konfiguracji układu, który oznacza, że mogę wystawiać faktury po prostu wstawiając dane, a następnie wysyłać je do drukarki.

Najbliżej jak do tej pory znalazłem PDFB, ale to trochę boli, ponieważ musi mieć precyzyjne pozycjonowanie.

Chciałbym mieć coś, co mogłoby wygenerować fakturę na podstawie szablonu (najlepiej opartego na XML), a następnie wysłać ją do formularza łatwego do wydrukowania (PostScript byłoby miło!)

Musi mieć również wsparcie dla kodów kreskowych (choć mogą one być generowane jako obraz GD)

Innym wymogiem jest to, że to musi być FLOSS

Author: Mez, 2009-04-14

12 answers

Użyj XML + XSL:FO z Apache FOP poprzez PHP-JavaBridge.

Oto jak: http://wiki.apache.org/xmlgraphics-fop/HowTo/PHPJavaBridge

PostScript byłoby miło!

Wiele drukarek postscriptowych również rozumie PDF.

 12
Author: vartec,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-14 14:11:19

Użyłem Spreadsheet_Excel_Writer w PHP i jest wystarczająco dobry. Nie WYSIWYG, ale generuje pliki XSL i jestem z tego zadowolony. Następnie możesz użyć makra OpenOffice , Aby przekonwertować dokument do formatu PDF. Działa z linii poleceń, ergo, działa również ze skryptów PHP.

Albo jest jeszcze lepszy sposób.

Użyj OpenOffice do konwersji szablonu Smarty. Smarty to fajny silnik szablonów dla PHP, polecam go do tego celu. Następnie Wygeneruj czysty HTML za pomocą PHP za pomocą Smarty. Wreszcie, wystarczy przekonwertować wygenerowany HTML na PDF przy użyciu wyżej wymienionej metody.

Reportaż zrewolucjonizowany (tm).

edycja Czerwiec 6 2009 Zmoderowany? Nieważne.

Tak czy inaczej, ta metoda działa na serwerze bez użycia X11. Wziąłem skrypt ze wspomnianego linku (tyle, że umieściłem go w preexisting collection "Standard" zamiast "DannysLibrary"), a następnie uruchomiłem tę komendę z komputera Windows za pomocą PuTTY, A X został wyłączony na zdalnym maszyna, a zmienna wyświetlania nie została ustawiona, i ... w każdym razie, nie ma mowy, żeby OOo mogło znaleźć X11 do połączenia.

$ openoffice.org -invisible -headless "macro:///Standard.Conversion.ConvertWordToPDF(`pwd`/logaritamska.doc)"

To działa i jestem pewien, że będzie to idealne rozwiązanie dla każdego, kto potrzebuje konwersji z innego formatu do formatu PDF, w tym tworzenia raportów do wydruku z HTML. Edytując makro możesz, być może, nawet uzyskać OOO do odczytu bezpośrednio ze standardowego wejścia lub z tymczasowego adresu URL usługi i wyjście do predefiniowanego pliku. Skrypt na linku jest dość prosty gdy masz elementarny kod do rozwinięcia.

Podsumowanie:

  • generowanie raportów jako XLS lub HTML
  • konwertuj je
  • Mimo, że jest OOo, działa na maszynach bezgłowych]}

EDIT Jun 9 2009 Próbowałem zaimplementować konwerter online w ten sposób. Powinieneś uruchomić PHP pod tym samym użytkownikiem, pod którym tworzyłeś makra. Ten użytkownik najwyraźniej nie może być www-data. Próbowałem użyć suphp, ale z jakiegoś powodu nie zmienił użytkownika properly (posix_getuid() keep Return 33 czyli www-data). Edytuję to, gdy to naprawię.

EDIT Jun 26 2009 Zajęło mi trochę czasu, zanim się zgłosiłem. Tak, to działa z suphp. Nie jestem jednak w stanie pokazać go na żywo, ponieważ jedyny serwer, który mam, uruchamia stosunkowo krytyczną aplikację internetową, która nie miała profesjonalnego audytu bezpieczeństwa. Oznacza to, że jedną z rzeczy, na których polegamy, aby chronić backend jest to, że użytkownik, pod którym działa frontend, jest bardzo nieuprzywilejowanym użytkownikiem (np. www-data). Nie pytaj : -)

Mam nadzieję, że to komuś pomoże: tak, konwersja do PDF z OO.o jest całkiem realistyczne. W OO jest nawet jakieś zdalne wsparcie telefoniczne.o ale nie studiowałem tego tylko dla celów pisania tego.

 7
Author: Ivan Vučica,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-12-02 19:18:49

Użyłem eclpse w php: "BIRT Project"

Http://www.eclipse.org/birt/phoenix/

Projektujesz swój raport w Eclipse. Następnie wgraj go na serwer (musi być uruchomiony tomcat) wiem. Następnie możesz wywołać ten raport z aplikacji php parametry można przesłać do raportu za pomocą ciągu zapytania:

/myreport.birt?param=var&param2=var2

Do tej pory mamy 4-letnią aplikację działającą w ten sposób. Około 100 raportów i działa naprawdę dobrze.

Oczywiście, że jest to open source.

Powodzenia

 6
Author: elviejo79,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-07 03:47:35

Jeśli masz dostęp do serwera, możesz również wybrać Obiekty formatujące XSLpoprzez Apache FOP. XSL-FO jest oparty na XML i obsługuje wiele formatów wyjściowych w tym PostScript i PDF

 5
Author: Martijn Laarman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-14 12:12:59

Jeśli uda Ci się wywołać aplikację Java w swoim środowisku php (co w ogóle powinno być możliwe) JasperReports może to, czego szukasz:

 4
Author: Ansgar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-05-09 15:09:15

Reportico

Moim zdaniem jest jednym z najlepszych, szczegółowych i bogatych w funkcje projektantów raportów PHP.

 4
Author: Moamen Mostafa,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-18 22:00:51

Hm.. miałem ten sam problem w moim obecnym projekcie i skończyło się na użyciu crystal reports i wywołaniu raportu z asp.net serwis WWW napisany w c#. usługa internetowa nie jest skomplikowana i nadal możesz korzystać ze wszystkich funkcji crystal reports. nie sądzę, że znajdziesz jakikolwiek silnik raportów, który jest całkowicie oparty na php, który można porównać do crystal reports... nie udało mi się jeszcze znaleźć...

 1
Author: SvenFinke,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-14 12:03:16

Natknąłem się na ten sam problem około rok temu. Po przeszukaniu całego istniejącego rozwiązania nie znalazłem żadnego, więc napisałem odchudzony crystal reports używając biblioteki generującej PDF Zend Framework. Musiałem mocno dostosować ich bibliotekę do obsługi zgrupowanych obiektów, powtarzających się sekcji i szablonów. Zadziałało, ale było naprawdę niezgrabne i gdybym musiał to zrobić jeszcze raz, znalazłbym sposób na połączenie php z crystal reports, albo poprzez usługę internetową, jak powiedział Gushiken, albo przez wywołanie aplikacja wiersza poleceń. CPAN posiada interfejs Perl do C. R.: Win32::OLE:: CrystalRuntime:: Application .

Jeśli rozwiązanie PHP zostało wydane w ubiegłym roku, wątpię, aby było wystarczająco dojrzałe, aby porównać do C. R. nie trać czasu na Wyrywanie włosów -- idź z tym, co działa. Czas jest drogi. Oprogramowanie nie jest.

 1
Author: Kyle Simek,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-05-08 17:57:41

Właściwym narzędziem do tej potrzeby jest XSL-FO, ponieważ idealnie nadaje się do druku. XSL-FO jest również rekomendacją W3C, z XSLT. Zrobiłem narzędzie php, które używa XSL-FO jako pośredniego języka do raportowania, ten XLS-FO jest wynikiem scalania (przetwarzania) szablonu raportu XSLT z danymi XML.

Tworzysz szablon automatycznie przy użyciu programu MS Word i eksportujesz go zgodnie z instrukcją obsługi. Następnie zasilasz silnik raportowania szablonem, a w czasie pracy danymi XML.

Również w czasie wykonywania, wynikowy raport XSL-FO jest renderowany do:

A) ten sam XSL - FO (jeśli chcesz debugować lub po prostu chcesz XSL-FO)

B) doskonały PDF, (ApacheFOP renderuje XSL-FO)

C) HTML z transformacją XSLFO2HTML.

Tutaj masz projekt, jego plugin symfony 1.4: https://github.com/juanmf/sfPlugins/tree/master/reportPlugin

Planuję oddzielić go od sf. Nie wahaj się o nic zapytać. Oto HowTo: https://github.com/juanmf/sfPlugins/blob/master/reportPlugin/doc/HowToReport.pdf?raw=true

Ten post może Ci też pomóc: https://stackoverflow.com/questions/5519024/report-engine-solution-for-lamp-application/13042656

Pozdrawiam!

 1
Author: juanmf,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:34:04

Try Tufat

Tak się składa, że to widzę ..może to ci pomoże. Jednak istnieje darmowa wersja jest dostępna do przetestowania.

Spodoba ci się .. Podziel się swoją kopią.

 0
Author: Ratheesh R,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-03-23 06:07:55

Użyłem phpreports i muszę przyznać, że nie jest zły dla raportowania internetowego, ponieważ ma wsparcie dla nagłówków, stopek, grup, podtekstów itp.

 0
Author: blestab,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-05-01 15:21:49

Zobacz siwapp.org , jest to opensource program do fakturowania oparty na Symphony Framework, jest we wczesnej wersji beta, ale bardzo obiecujący.

 -1
Author: Nazariy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-05 19:33:54