Zend PDF: Как напечатать жирный текст или текст другим цветом и т. Д.? - PullRequest
2 голосов
/ 02 марта 2012

У меня есть длинная строка, например:

Lorem Ipsum Dolor Sit Amet, Contetur Sadipscing Elitr, Sed Diam Nonumy Eirmod Tempor Invidunt U Labore et Dolore Magna Аликвиям Эрат, Sed Diam Volptua. В vero eos et accusam и justo duo dolores и ea rebum. Stet clita kasd gubergren, нет моря takimata sanctus есть Lorem ipsum dolor sit amet.

Некоторые слова должны быть выделены жирным шрифтом, а другой текст должен иметь другой цвет и так далее. Можно ли как-нибудь дать функции drawText строку, которая уже содержит правильный синтаксис, так что PDF будет иметь жирный текст и так далее? Примерно так:

$text = "my <b>text</b>...";
$page->drawText($text, 100, ($page->getHeight() - 100));

Он не работает с HTML, но что-то похожее?

Спасибо!

Ответы [ 3 ]

3 голосов
/ 05 марта 2012

Короткий ответ на ваш вопрос - нет, Zend Framework не предоставляет функции форматирования, которые вы ищете.

Zend_Pdf предоставляет примитивные функции для рисования текста, линий, окружностей и т. Д. На странице, но это все. Если вы хотите выделить жирный текст в середине строки, вы должны нарисовать первый бит текста, изменить стиль шрифта на жирный, нарисовать фрагмент текста, который вы хотите выделить жирным шрифтом, переключиться обратно на исходный стиль шрифта и затем нарисовать остаток строки. И вы должны сами позаботиться о переносе строк, разрывах страниц и т. Д.

Некоторое время назад я написал сообщение в блоге, в котором более подробно рассказывается об этих проблемах, и опубликовал класс-оболочку на github, который немного облегчает использование Zend_Pdf. Сообщение здесь: http://yetanotherprogrammingblog.com/content/zend_pdf-wrapper-and-sample-code и класс оболочки здесь: https://github.com/jamesggordon/Wrap_Pdf. К сожалению, эта версия класса не делает именно то, что вы хотите, но не должно быть слишком сложно изменить writeText() метод реализации системы смены шрифтов, к которой вы стремитесь.

1 голос
/ 29 мая 2015

Я тоже ищу что-то подобное.У нас есть некоторый устаревший код, который отображает PDF с использованием Zend PDF ... это очень сложно.

В прошлом я использовал что-то под названием DomPDF - это, вероятно, то, что вам нужно, поскольку он просто превращает HTML в PDF для вас -очень прост в использовании!

http://dompdf.github.io/

0 голосов
/ 09 ноября 2015

Это можно сделать, ознакомьтесь с zend.pdf.drawing;http://framework.zend.com/manual/1.12/en/zend.pdf.drawing.html

Вам нужно разбить строки PHP, а затем изменить стили рисования Zend PDF между каждой строкой PHP.

...