【问题标题】:Use Zend PDF to Load Multiple PDFs and Draw on Each One使用 Zend PDF 加载多个 PDF 并在每个 PDF 上绘制
【发布时间】:2012-10-08 21:43:07
【问题描述】:

我正在尝试使用 zend pdf 从文件中加载多个 pdf(每个 1 页 pdf),然后在每个上绘制文本、图像等。理想情况下,绘制的文本和图像将添加到函数中。但是,当我尝试进行一些基本绘图时,它会在 pdf 中返回错误。在我尝试在页面上绘制文本之前,代码运行良好。

require_once 'zendframework/library/Zend/Loader/Autoloader.php';
include 'form-structures.php'; //

$loader = Zend_Loader_Autoloader::getInstance();

$pdfMerged = new Zend_Pdf();

//load pdf 
$loadedpdf = Zend_Pdf::load("form-url.pdf");

//clone pdf 
$page1 = clone $loadedpdf->pages[0];

// add text etc.
$page1->drawText('Some text...', 400, 500);

drawmore($page1);

//merge pdf
$pdfMerged->pages[] = $page1;


// do again
$loadedpdf = Zend_Pdf::load("form-url.pdf");
$page = clone $loadedpdf->pages[0];
$pdfMerged->pages[] = $page;

echo $pdfMerged->render();

下面的 form-structure.php 文件带有一个在页面上绘制额外内容的函数:

function drawmore($page)
{
        $page->drawText("Height is: 600px", 300,800);
        return $page;
}

【问题讨论】:

  • 您能否提供有关该错误的更多详细信息?
  • Adobe Reader 无法打开“invoice-2012-10-08-15-23.pdf”,因为它不是受支持的文件类型或文件已损坏(例如,它是作为附件发送但未正确解码)。

标签: php zend-framework pdf


【解决方案1】:

已解决。

除非您已经指定字体,否则 Zend PDF 无法在屏幕上绘制文本。

我刚刚补充了:

$page1->setFont(Zend_Pdf_Font::fontWithName(Zend_Pdf_Font::FONT_HELVETICA), 20); 

它修复了错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    • 2019-10-29
    • 1970-01-01
    相关资源
    最近更新 更多