gpt4 book ai didi

PHP + PDF 换行

转载 作者:可可西里 更新时间:2023-11-01 00:26:41 24 4
gpt4 key购买 nike

我的 Magento 商店中有以下代码,它将客户地址添加到发票 PDF 中。有时地址的行对于地址标签来说太长了,所以我添加了 $value = wordwrap($text, 10, "
\n");线路认为这可以创建一条新线路。但是,这在 PDF 文档中似乎不起作用,我只是在我希望该行所在的位置得到一个有趣的符号。有谁知道我怎样才能换一条线?

P.S - 我的 PHP 知识非常基础。

if (!$order->getIsVirtual())
{
if ($this->y < 250)
{
$page = $this->newPage();
}

$this->_setFontRegular($page, 6);
$page->drawText('Ship to:', 75, 222 , 'UTF-8');

$shippingAddress = $this->_formatAddress($order->getShippingAddress()->format('pdf'));

$line = 185;
$this->_setFontRegular($page, 12);

$num_lines = count($shippingAddress);
$curr_line = 0;
foreach ($shippingAddress as $value)
{
$curr_line += 1;

if ($curr_line < $num_lines)
{
if ($value!=='')
{
$value = wordwrap($value, 20, "\n");
$page->drawText(strip_tags(ltrim($value)), 75, $line, 'UTF-8');
$line -=14;
}
}
}
}

最佳答案

使用 wordwrap 是一个好的开始,但它不会让你一路走下去。您可能想要做的是为每一行单独调用 $page->drawText

例如这样的事情。

$textChunk = wordwrap($value, 20, "\n");
foreach(explode("\n", $textChunk) as $textLine){
if ($textLine!=='') {
$page->drawText(strip_tags(ltrim($textLine)), 75, $line, 'UTF-8');
$line -=14;
}
}

请注意,根据您在 pdf 上的位置,它可能会变得相当复杂。例如,如果用户可以在此部分中输入任意多的文本,您还需要确保该文本不会超出其他部分的文本。我的意思是,如果这个文本 block 正好位于另一个文本 block 之上,则随着 wordwrap() 创建的行数增加,您需要下推下方 block 的 y 坐标

关于PHP + PDF 换行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4950654/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com