- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Zend_PDF。我自己无法弄清楚的唯一任务是将我的文本与页面右侧对齐。
我怎样才能做到这一点?
编辑
我使用下面的 draw010 答案以及在网上找到的其他信息来创建一个新类,我用它来水平对齐文本。
<?php
/**
* Advanced PDF functionnalities
*/
class Advanced_Pdf
{
/**
* Align text at left of provided coordinates
*/
const TEXT_ALIGN_LEFT = 'left';
/**
* Align text at right of provided coordinates
*/
const TEXT_ALIGN_RIGHT = 'right';
/**
* Center-text horizontally within provided coordinates
*/
const TEXT_ALIGN_CENTER = 'center';
/**
* Extension of basic draw-text function to allow it to horizontally center text
*/
public function drawTextWithPosition(Zend_Pdf_Page $page, $text, $y1, $xOffset = 0, $position = self::TEXT_ALIGN_LEFT, $encoding = null)
{
$bottom = $y1; // could do the same for vertical-centering
$text_width = $this->getTextWidth($text, $page->getFont(), $page->getFontSize());
switch ($position) {
case self::TEXT_ALIGN_LEFT:
$left = 60 + $xOffset;
break;
case self::TEXT_ALIGN_RIGHT:
$left = $page->getWidth() - $text_width - $page->getFontSize() - 35 + $xOffset;
break;
case self::TEXT_ALIGN_CENTER:
$left = ($page->getWidth() / 2) - ($text_width / 2) + $xOffset;
break;
default:
throw new Exception("Invalid position value \"$position\"");
}
// display multi-line text
foreach (explode(PHP_EOL, $text) as $i => $line) {
$page->drawText($line,$left,$y1,$encoding);
}
return $this;
}
/**
* Return length of generated string in points
*
* @param string $string
* @param Zend_Pdf_Resource_Font $font
* @param int $font_size
* @return double
*/
public function getTextWidth($text, Zend_Pdf_Resource_Font $font, $font_size)
{
$drawing_text = iconv('', 'UTF-16BE', $text);
$characters = array();
for ($i = 0; $i < strlen($drawing_text); $i++) {
$characters[] = (ord($drawing_text[$i++]) << 8) | ord ($drawing_text[$i]);
}
$glyphs = $font->glyphNumbersForCharacters($characters);
$widths = $font->widthsForGlyphs($glyphs);
$text_width = (array_sum($widths) / $font->getUnitsPerEm()) * $font_size;
return $text_width;
}
}
?>
最佳答案
使用来自 this answer 的代码,您可以根据字体和字号计算要绘制的文本的宽度。一旦你有了字符串的宽度,你就可以根据页面的宽度来右对齐它。
$text = 'Some text to right align';
$textWidth = getTextWidth($text, $zendPdfFont, $fontSize);
$page->drawText($text,
$page->getWidth() - $textWidth - $fontSize,
$verticalPosition);
$page->drawText($text,
($page->getWidth() / 2) - ($textWidth / 2),
$verticalPosition);
关于zend-framework - 如何使用 Zend_PDF 正确对齐文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13269897/
有没有人有一种简单的方法来计算一段文本在特定字体和大小下将在页面上消耗多少个点? (简单=最少的代码行+计算成本低)。 Zend_Pdf 似乎没有执行此操作的函数,除了对每个字符进行一些非常昂贵的调用
过去 2 天我一直在寻找有关如何独立使用 zend_pdf 的答案。我在谷歌上找到的所有内容都指的是我在任何地方都找不到的 pdf.php。 我在这里找到了 zend_pdf ( https://gi
我试过类似的东西 public function getPdf() { $imagePath=C:\Users\Hp\Desktop\image.jpg; $image = Zend_Pdf_
我用过 zend,需要以 PDF 格式打印报告,我想为图像绘制位置。但我找不到解决方案,因为我在 site 中看到我只能设置图像的大小,但还找不到如何设置图像的位置。 $image =
我正在使用 Zend_Pdf 类 创建一个 PDF 文档。 这里的内容是德语,所以当我将内容写入pdf时,它会自动转换那些字符到一些特殊字符。 我无法找出问题....? 我尝试了一些代码 $str =
用 Zend_Pdf 创建表格最简单的方法是什么? 到现在为止,我实现了带有水平线和垂直线的表格。表格没有其他解决方案吗? 谢谢。 最佳答案 顺丰有这个项目:http://zendpdftable.s
我正在使用 Zend_PDF。我自己无法弄清楚的唯一任务是将我的文本与页面右侧对齐。 我怎样才能做到这一点? 编辑 我使用下面的 draw010 答案以及在网上找到的其他信息来创建一个新类,我用它来水
早上好 我对使用 Zend Framework 构建的工资单网站生成 PDF 很感兴趣。就生成包含工资单数据的 PDF 所需的工作量而言,Zend_PDF 看起来相当吓人,更不用说 W2 文档了。是否
是否可以在 Zend_PDF 页面中添加 anchor 文本(链接)?我无法在 Zend_Pdf 在线手册或阅读代码中找到任何关于此的信息,所以我想这是不可能的。 如果有办法,请指教! 谢谢! 最佳答
我目前有一个项目,其中有许多表单被处理并存储在数据库中。成功完成后,将通过电子邮件通知管理员该表单提交的内容。 问题是这些表格之一我需要它看起来完全像我的 PDF 格式的邮购版本。 所以我有两个基本选
用过zend框架,现在想用zf2。我将 zend_pdf 用于 zf1。我知道 tc_pdf 和 zend_pdf 版本 1 之间的一些区别,但不知道 zend_pdf 版本 2。如果有人对 zend
我在使用 Zend_Pdf 将 UTF-8 字符输出到 pdf 文件时遇到问题。这是我的代码: // Load Zend_Pdf class include 'Zend/Pdf.php'; // Cr
我正在尝试在服务器上动态创建 PDF 文档并使用 Zend_Pdf 库将它们发送到客户端。 PDF 上的所有文本都需要与页面居中对齐,这将是字母大小的横向页面。使用我在各种站点上多次找到的功能,我遇到
我在自定义 Controller 中创建了函数 getPdf public function getPdf() { $pdf = new Zend_Pdf(); $page = new Zend_
是否可以使用 Zend_Pdf 将 HTML 直接转换为 pdf 文件?如果可以,我该怎么做? 最佳答案 Zend_PDF 无法基于 HTML 生成 PDF。但是您可以呈现 View 并使用其他库将其
我有一个 Logo 的 pdf 文件,尺寸约为 1"x2"。任何人都可以提供代码片段以使用 Zend_PDF 将该 PDF Logo 导入另一个 PDF 文件吗?蜜蜂? 理想情况下,我希望能够像 PN
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 1
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 1
我正在尝试将现有 PDF(以其他方式创建)添加到使用 FPDI 使用 FPDF 创建的 PDF。它似乎适用于大多数 PDF,但我收到以下错误: FPDF error: Unable to find x
我是一名优秀的程序员,十分优秀!