Если мы рассмотрим общие сценарии, в которых может быть выбрано это исключение, доступ к свойствам с объектом вверху.
Пример:
string postalcode=Customer.Address.PostalCode;
//if customer or address is null , this will through exeption
здесь, если адрес имеет значение null, то вы получите NullReferenceException.
Итак, в качестве практики мы всегда должны использовать проверку нуля, прежде чем обращаться к свойствам в таких объектах (особенно в общих)
string postalcode=Customer?.Address?.PostalCode;
//if customer or address is null , this will return null, without through a exception
Используйте XML + XSL: FO с Apache FOP через PHP-JavaBridge .
Вот как это делается: http: // wiki .pache.org / xmlgraphics-fop / HowTo / PHPJavaBridge
PostScript будет приятным!
blockquote>Многие принтеры PostScript понимают и PDF.
Если вам удастся вызвать приложение Java в вашей php-среде (что в общем случае должно быть возможно) JasperReports может быть то, что вы ищете:
Я использовал phpreports , и я должен признать, что это не плохо для веб-отчетности, поскольку она поддерживает заголовки, нижние колонтитулы, группы, промежуточные итоги и т. д.
Правильным инструментом для этой необходимости является XSL-FO, так как он идеально подходит для печатных носителей. XSL-FO также является Рекомендацией W3C с XSLT. Я создал PHP-инструмент, который использует XSL-FO в качестве промежуточного языка для отчетности, этот XLS-FO является результатом слияния (обработки) шаблона отчета XSLT с вашими XML-данными.
Вы создаете шаблон автоматическое использование MS Word и экспорт, как показано в руководстве пользователя. Затем вы подаете отчетный движок в шаблон и во время выполнения с XML-данными.
Также во время выполнения результирующий отчет XSL-FO отображается:
a) тот же XSL-FO (если вы хотите отлаживать или просто хотеть XSL-FO)
b) Совершенный PDF, (ApacheFOP отображает XSL-FO)
c) HTML с преобразованием XSLFO2HTML.
Здесь у вас есть проект, его плагин symfony 1.4: https://github.com/juanmf/sfPlugins/tree/master/reportPlugin
Я планирую отделить его от sf. Не стесняйтесь спрашивать что-нибудь. Вот HowTo: 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
С уважением!
Я использовал eclpse в php: «BIRT Project»
http://www.eclipse.org/birt/phoenix/
Вы разрабатываете свой отчет в Eclipse. Затем загрузите его на свой сервер (он должен работать с tomcat). Я знаю. Затем вы можете вызвать этот отчет из своего php-приложения, который вы можете отправить в отчет по параметрам отчета:
/myreport.birt?param=var¶m2=var2
Мы есть приложение на 4 года, работающее так, как сейчас.
Конечно, это с открытым исходным кодом.
Удачи вам
Я столкнулся с той же проблемой около года назад. После поиска всего существующего решения я его не нашел, поэтому я написал сокращенные отчеты о кристаллах, используя библиотеку генерации PDF-кода Zend Framework. Мне пришлось активно адаптировать свою библиотеку для поддержки сгруппированных объектов, повторения разделов и шаблонов. Это сработало, но это было действительно неуклюже, и если бы мне пришлось это сделать снова, я бы нашел способ сфокусировать php на хрустальные отчеты, будь то через веб-сервис, например, Gushiken, или, позвонив в приложение командной строки. CPAN имеет интерфейс Perl для CR: Win32 :: OLE :: CrystalRuntime :: Application .
Если решение PHP было выпущено в прошлом году, я сомневаюсь, что он зрелый достаточно для сравнения с CR. Не тратьте свое время на вытягивание волос - идите с тем, что работает. Время дорогое. Программное обеспечение отсутствует.
Если у вас есть доступ к серверу, вам также может понравиться XSL Formatting Objects через Apache FOP . XSL-FO основан на XML и поддерживает многие выходные форматы , включая PostScript и PDF
На мой взгляд, это один из лучших, подробных и многофункциональных PHP Designer.
Взгляните на siwapp.org , это приложение с открытым исходным кодом, основанное на Symphony Framework, оно находится в ранней бета-версии, но очень перспективно.
Попробуйте Tufat
Я просто вижу, что ... возможно, это поможет вам. Тем не менее, для вас доступна бесплатная версия.
Вам понравится. Пожалуйста, поделитесь своей копией.
hm .. У меня была такая же проблема в моем текущем проекте, и я закончил использование хрустальных отчетов и назвал отчет веб-сервисом asp.net, написанным на c #. веб-сервис не имеет ничего сложного, и вы все равно можете использовать все функции хрустальных отчетов. Я не думаю, что вы найдете какой-либо механизм отчетов, который полностью основан на php, который можно сравнить с хрустальными отчетами ... Я не смог найти его еще ...
gs(1)
и его вспомогательное приложениеpdf2ps(1)
. – gnud 24 March 2010 в 12:55