Что-то вроде Crystal Reports для PHP?
Я ищу что-то, что работает на PHP и похоже на crystal reports. Мне в основном нужна настройка макета, которая означает, что я могу выводить счета-фактуры, просто вставляя данные, а затем отправлять их на принтер.
Самое близкое, что я нашел до сих пор, - это PDFB, но это немного больно, так как ему нужно точное позиционирование.
Я хотел бы иметь что-то, что могло бы генерировать счет-фактуру на основе шаблона (предпочтительно на основе XML), а затем выводить его в форму, удобную для нас распечатать (постскриптум был бы хорош!)
Он также должен поддерживать штрих-коды (хотя они могут быть сгенерированы в виде изображения GD)
Еще одно требование заключается в том, что это должна быть ЗУБНАЯ НИТЬ
12 answers
Используйте XML + XSL:FO с Apache FOP через PHP-javabridge.
Вот как: http://wiki.apache.org/xmlgraphics-fop/HowTo/PHPJavaBridge
Постскриптум был бы хорош!
Многие принтеры PostScript также понимают PDF.
Я использовал Spreadsheet_Excel_Writer
в PHP, и этого достаточно. Не WYSIWYG, но он генерирует XSL-файлы, и я доволен этим. После этого вы можете использовать макрос OpenOffice для преобразования документа в PDF. Он работает из командной строки, следовательно, он также работает с PHP-скриптами.
Или вот еще лучший способ.
Используйте OpenOffice для преобразования шаблона Smarty. Smarty - классный движок шаблонов для PHP, я рекомендую его для этой цели. Затем сгенерируйте чистый HTML с помощью PHP с помощью Smarty. Наконец, просто преобразуйте сгенерированный HTML в PDF, используя вышеупомянутый метод.
Отчетность произвела революцию (tm).
РЕДАКТИРОВАТЬ 6 июня 2009 Модифицированный? Ах, неважно.
В любом случае, этот метод работает на безголовом сервере без запуска X11. Я взял сценарий из упомянутой ссылки (за исключением того, что я поместил его в уже существующую коллекцию "Стандарт" вместо "Dannyslibrary"), а затем я выполнил эту команду с компьютера Windows, используя PuTTY, и X был выключен на удаленная машина, и переменная ОТОБРАЖЕНИЯ не была установлена, и... ну, в любом случае, ООО никак не может найти X11 для подключения.
$ openoffice.org -invisible -headless "macro:///Standard.Conversion.ConvertWordToPDF(`pwd`/logaritamska.doc)"
Это работает, и я уверен, что это отлично подойдет для всех, кому потребуется преобразование из другого формата в PDF, включая создание отчетов для печати из HTML. Отредактировав макрос, вы, возможно, даже сможете заставить OOO считывать данные непосредственно из стандартного ввода или с вашего временного URL-адреса службы и выводить их в предопределенный файл. Скрипт по ссылке довольно просто, как только у вас есть элементарный код для расширения.
Краткое описание:
- создание отчетов в формате XLS или HTML
- преобразуйте их
- несмотря на то, что это ООО, он работает на безголовых машинах
РЕДАКТИРОВАТЬ 9 июня 2009
Я пытался реализовать онлайн-конвертер таким образом. Вы должны заставить PHP работать под тем же пользователем, под которым вы создавали макросы. Этот пользователь, по-видимому, не может быть www-данными. Я пытался использовать suphp, но по какой-то причине это не изменило пользователь правильно (posix_getuid()
продолжал возвращать 33, что является www-данными). Я отредактирую это, как только исправлю это.
РЕДАКТИРОВАТЬ 26 июня 2009 Думаю, мне потребовалось некоторое время, чтобы отчитаться. Да, это работает с suphp. Однако я не в состоянии показать это вживую, так как на единственном сервере, который у меня есть, работает относительно важное веб-приложение, в котором не было профессионального аудита безопасности. Это означает, что одна из вещей, от которой мы зависим в защите серверной части, заключается в том, что пользователь, под которым работает интерфейс, является очень и очень непривилегированным пользователь (например, www-данные). Не спрашивайте:-)
Надеюсь, это кому-то поможет: да, преобразование в PDF с помощью OO.o вполне реально. В OO.o даже есть поддержка удаленных вызовов, но я изучал это не только для целей написания этого.
Я использовал eclpse в php: "Проект BIRT"
Http://www.eclipse.org/birt/phoenix/
Вы разрабатываете свой отчет в Eclipse. Затем загрузите его на свой сервер (на нем должен быть запущен tomcat) Я знаю. Затем вы можете вызвать этот отчет из своего php-приложения . Вы можете отправить параметры в отчет через строку запроса:
/мой отчет.birt?param=var¶m2=var2
У нас есть 4-летнее приложение, работающее таким образом до сих пор. Около 100 отчетов и это работает действительно хорошо.
Конечно, это открытый исходный код.
Удачи
Если у вас есть доступ к серверу, вы также можете использовать Объекты форматирования XSL через Apache FOP. XSL-FO основан на XML и поддерживает множество выходных форматов, включая PostScript и PDF
Если вам удастся вызвать Java-приложение в вашей php-среде (что в целом должно быть возможно) JasperReports возможно, то, что вы ищете:
На мой взгляд, это один из лучших, подробных и многофункциональных PHP-дизайнеров отчетов.
Хм.. у меня была такая же проблема в моем текущем проекте, и я закончил тем, что использовал crystal reports и вызвал отчет с asp.net веб-сервис, написанный на c#. веб-сервис не представляет собой ничего сложного, и вы все равно можете использовать все функции crystal reports. я не думаю, что вы найдете какой-либо механизм отчетов, полностью основанный на php, который можно было бы сравнить с crystal reports... я еще не смог его найти...
Я столкнулся с такой же проблемой около года назад. После тщательного поиска существующего решения я его не нашел, поэтому написал уменьшенные отчеты crystal с использованием библиотеки генерации PDF Zend Framework. Мне пришлось сильно адаптировать их библиотеку для поддержки сгруппированных объектов, повторяющихся разделов и шаблонов. Это сработало, но это было действительно неуклюже, и если бы мне пришлось сделать это снова, я бы нашел способ связать php с crystal reports либо через веб-сервис, как сказал Гушикен, либо с помощью вызов приложения командной строки. CPAN имеет интерфейс Perl для C.R.:Win32::OLE::Crystalruntime::Приложение .
Если решение PHP было выпущено в прошлом году, я сомневаюсь, что оно достаточно зрелое, чтобы сравниться с C.R. Не тратьте время на то, чтобы рвать на себе волосы - выбирайте то, что работает. Время дорого стоит. Программное обеспечение - нет.
Подходящим инструментом для этой цели является XSL-FO, так как он идеально подходит для печатных носителей. XSL-FO также является рекомендацией W3C с XSLT. Я создал php-инструмент, который использует XSL-FO в качестве промежуточного языка для создания отчетов, этот XLS-FO является результатом объединения (обработки) шаблона XSLT отчета с вашими XML-данными.
Шаблон создается автоматически с помощью MS Word и экспортируется, как показано в руководстве пользователя. Затем вы загружаете механизм отчетов с шаблоном, а во время выполнения с XML-данные.
Также во время выполнения результирующий отчет XSL-FO отображается в:
A) тот же XSL-FO (если вы хотите отлаживать или просто хотите XSL-FO)
Б) Идеальный PDF, (apachefop отображает XSL-FO)
C) HTML с преобразованием XSLFO2HTML.
Вот у вас есть проект, его плагин symfony 1.4: https://github.com/juanmf/sfPlugins/tree/master/reportPlugin
Я планирую отделить его от sf. Не стесняйтесь спрашивать о чем угодно. Вот Как: https://github.com/juanmf/sfPlugins/blob/master/reportPlugin/doc/HowToReport.pdf?raw=true
Этот пост также может оказать вам некоторую помощь: https://stackoverflow.com/questions/5519024/report-engine-solution-for-lamp-application/13042656
С уважением!
Попробуйте Туфат
Я просто случайно вижу, что... может быть, это вам поможет. Однако для вас доступна бесплатная версия для тестирования.
Вам это понравится.. Пожалуйста, поделитесь своей копией.
Я использовал phpreports, и я должен признать, что это неплохо для веб-отчетов, поскольку он поддерживает верхние и нижние колонтитулы, группы, промежуточные итоги и т.д.
Взгляните на siwapp.org , это приложение для выставления счетов с открытым исходным кодом, основанное на платформе Symphony, оно находится в ранней бета-версии, но очень перспективно.