2010-11-12 2 views
2

Учитывая некоторые данные пользователя.Zend PDF - Есть ли хороший подход к заполнению шаблона MVC?

В зависимости от контроллера эти данные должны отображаться либо в формате PDF, либо в файле HTML.

Мне очень нравится Zend way of .phtml Просмотров HTML с очень простой PHP.

Есть ли аналогичный подход для PDF и/или XLS, который позволяет сотрудникам без сильного фона программирования менять выход PDF/XLS?

+1

Рассматривали ли вы систему на основе «замены заполнителя» вместо создания файла PDF или XLS с нуля? Это позволит людям редактировать шаблон в офисном приложении, вместо того, чтобы заниматься с кодом. –

+0

Предложение Пекки хорошее. У меня был большой успех, работая таким образом с RTF в системе, в которой клиенты обновляют шаблоны в Wordpad. – Treffynnon

+0

Звучит умно, но это звучит сложно, как только он включает в себя простой цикл. – jantimon

ответ

0

HTML и PDF - разные планеты. Создание выходных библиотек, поддерживающих как медиа-типы, так и их сильные стороны, практически невозможно.

Лучшее решение, которое я могу думать о pandoc, http://johnmacfarlane.net/pandoc/

Это не MVC его собственной, но используется в качестве библиотеки может удовлетворить все ваши потребности.

С уважением // т

3

Ну, действительно, для людей без сильного фона программирования.

В принципе, рендеринг вида PDF или Excel аналогичен визуализации HTML-вида, поэтому вы можете поместить генерирующий код в .phtml-файлы, сгенерировать соответствующий вывод и выполнить его с соответствующим типом содержимого. Это просто другое представление данных в Модели. You can utilize ZF's context switch helper for this.

Но HTML - это разметка, и PHP был разработан для встраивания в нее, поэтому это торт, который нужно сделать - если вы знаете соответствующие технологии frontend, такие как HTML, CSS и JavaScript.

С помощью Excel вы можете использовать Microsoft's SpreadsheetML и встроить PHP в него таким же образом. Это требует, чтобы сотрудник имел некоторые знания этого языка разметки и XML в целом.

Я не знаю никакой разметки для файлов PDF, поэтому ее необходимо сгенерировать с помощью API (вероятно, Zend_PDF). Ну, вы, вероятно, могли бы придумать что-то, чтобы определить, какие данные идут в XML, но об этом подумали бы.

Редактировать поскольку это помечено Zend Framework, вы также можете рассмотреть вопрос об использовании LiveDocX service, which uses a template based approach and can create PDF and Excel.

0

В MVC мире, PDF будет просто другой вид. Так что, если у вас было /controller/action/view.phtml, то теоретически вы должны иметь такой URL, как /controller/action/view.pdf.

Это похоже на то, как вы можете выбрать формат вывода с помощью API, например, Twitter. Удар http://api.twitter.com/version/statuses/public_timeline.json вернет результат в JSON; удар http://api.twitter.com/version/statuses/public_timeline.xml в формате XML; и так далее.

0

Некоторые из библиотек PDF также включает возможность импорта/отображение HTML в PDF содержания, несколько с расширенными свойствами для обработки различных форматов и неподдерживаемых тегов. Большинство из тех, что я использовал, имеют строгие условия, относительно которых DTD вам нужно придерживаться.

1

Используйте WKHTMLtoPDF для создания PDF-файла из предоставленного HTML-представления.