Zend PDF:如何以其他颜色打印粗体文本或文本等?

时间:2012-03-02 13:04:37

标签: html styles zend-pdf

我有一个很长的字符串,如:

Lorem ipsum dolor sit amet,consetetur sadipscing elitr,sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat,sed diam voluptua。在vero eos et accusam et justo duo dolores et ea rebum。 Stet clita kasd gubergren,no sea takimata sanctus est Lorem ipsum dolor sit amet。

有些单词应该是粗体,有些文字应该有其他颜色,依此类推。是否有可能为drawText函数提供一个已包含正确语法的字符串,以便PDF具有粗体文本等等?像这样:

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

它没有使用HTML,但有些东西是骗人的吗?

谢谢!

3 个答案:

答案 0 :(得分:3)

您的问题的简短答案是否定的,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 :(得分:1)

我也在寻找类似的东西。我们有一些遗留代码使用Zend PDF呈现PDF ..它非常复杂。

我过去使用的是名为DomPDF的东西 - 这可能是你需要的东西,因为它只是为你把HTML变成了PDF - 非常好用!

runtime.duffcopy

答案 2 :(得分:0)

可以这样做,查看zend.pdf.drawing; http://framework.zend.com/manual/1.12/en/zend.pdf.drawing.html

您需要打破PHP字符串,然后在每个PHP字符串之间更改Zend PDF绘图样式。