Вам нужно установить null=True
, чтобы он работал на уровне базы данных. Пример:
first_name = models.CharField(max_length=128, blank=True, null=True)
Использовать XML + XSL: FO с Apache FOP через PHP-JavaBridge .
Вот как: http://wiki.apache.org/xmlgraphics-fop/HowTo/PHPJavaBridge
Было бы неплохо использовать PostScript!
Многие принтеры PostScript тоже понимают PDF.
Если у вас есть доступ к серверу, вы также можете перейти к объектам форматирования XSL - Apache FOP . XSL-FO основан на XML и поддерживает множество выходных форматов , включая PostScript и PDF
хм .. у меня была та же проблема в моем текущем проекте, и я в итоге использовал Crystal Reports и вызывал отчет с веб-сервис asp.net, написанный на c #. В веб-сервисе нет ничего сложного, и вы все еще можете использовать все функции Crystal Reports. Я не думаю, что вы найдете какой-либо механизм отчетов, полностью основанный на php, который можно сравнить с отчетами Crystal ... Я пока не смог найти его ...
Если вам удастся вызвать Java-приложение в вашей php-среде (что в целом должно быть возможно) JasperReports , возможно, то, что вы ищете:
I ran into the same problem about a year ago. After searching all over for an existing solution I didn't find one, so I wrote a slimmed-down crystal reports using Zend Framework's PDF generation library. I had to heavily adapt their library to support grouped objects, repeating sections and templates. It worked, but it was really clunky, and if I had to do it again, I would find a way to bridge php to crystal reports, either through a web service like Gushiken said, or by calling a command-line app. CPAN has a Perl interface to C.R.: Win32::OLE::CrystalRuntime::Application .
If a PHP solution has been released in the past year, I doubt it is mature enough to compare to C.R. Don't waste your time pulling your hair out -- go with what works. Time is expensive. Software ain't.
Я использовал Spreadsheet_Excel_Writer
в PHP, и он достаточно хорош. Не WYSIWYG, но он генерирует файлы XSL, и я доволен этим. После этого вы можете использовать макрос OpenOffice для преобразования документа в PDF. Он работает из командной строки, следовательно, он также работает из сценариев PHP.
Или вот еще лучший способ.
Используйте OpenOffice для преобразования шаблона Smarty. Smarty - классный шаблонизатор для PHP, я рекомендую его для этой цели. Затем сгенерируйте чистый HTML с помощью PHP и Smarty. В заключение, Модифицирован? Да ладно.
В любом случае, этот метод работает на автономном сервере без X11. Я взял сценарий из упомянутой ссылки (за исключением того, что я поместил его в уже существующую коллекцию «Standard» вместо «DannysLibrary»), а затем я запустил эту команду с компьютера Windows с помощью PuTTY, и X был выключился на удаленной машине, а переменная DISPLAY не была установлена, и ... ну, в любом случае, OOo не сможет найти X11 для подключения.
$ openoffice.org -invisible -headless "macro:///Standard.Conversion.ConvertWordToPDF(`pwd`/logaritamska.doc)"
Это работает, и я уверен, что это подойдет любому кому нужно преобразование из другого формата в PDF, включая создание отчетов для печати из HTML. Отредактировав макрос, вы, возможно, даже сможете заставить OOo читать прямо из стандартного ввода или из вашего временного URL-адреса службы и выводить в предопределенный файл.
Я пробовал реализовать таким образом онлайн-конвертер. Вы должны заставить PHP работать под тем же пользователем, под которым вы создавали макросы. Очевидно, этот пользователь не может быть www-data. Я пытался использовать suphp, но по какой-то причине он не изменил пользователя должным образом ( posix_getuid ()
продолжал возвращать 33, что является www-данными). Я отредактирую это, как только исправлю.
ИЗМЕНИТЬ 26 июня 2009 г. Думаю, мне потребовалось время, чтобы доложить. Да, это работает с suphp. Однако я не в состоянии показать это вживую, поскольку единственный сервер, который у меня есть, запускает относительно важное веб-приложение, которое не имеет профессионального аудита безопасности. Это означает, что одна из вещей, от которых мы зависим для защиты серверной части, - это то, что пользователь, от имени которого работает интерфейс, является очень непривилегированным пользователем (например, www-data). Не спрашивайте: -)
Надеюсь, это кому-то поможет: да, преобразование в PDF с помощью OO.o вполне реально. В OO.o есть даже поддержка удаленных вызовов, но я изучал ее не только для написания этой статьи.
Я использовал eclpse в php: «Проект BIRT»
http://www.eclipse.org/birt/phoenix/
Вы разрабатываете свой отчет в Eclipse. Затем загрузите его на свой сервер (на нем должен быть запущен tomcat), я знаю. Затем вы можете вызвать этот отчет из своего приложения php вы можете отправить параметры в отчет через строку запроса:
/myreport.birt?param=var¶m2=var2
У нас есть 4-летнее приложение, работающее до сих пор. Около 100 отчетов, и он работает очень хорошо.
Конечно, это открытый исходный код.
Удачи
Попробуйте Tufat
Я просто случайно вижу, что ... может быть, это поможет вам. Однако есть бесплатная версия, которую вы можете проверить.
Вам понравится .. Поделитесь, пожалуйста, своей копией.