【问题标题】:Combine images to PDF pages with ImageMagick使用 ImageMagick 将图像合并到 PDF 页面
【发布时间】:2014-10-02 17:02:23
【问题描述】:

我创建了一个多页 PDF,我应该在其中将动态文本添加到其中一页(3 页中的第 2 页)。当我发现我的共享主机不支持 PDF 操作时,我不得不求助于 ImageMagick,将每个页面转换为自己的 PNG 文件。

使用 ImageMagick 添加文本是一个梦想,但我想添加首页和后页。我需要将page1.pngpage2.png(添加文本)和page3.png 组合到output.pdf,但我找不到使用PHP Imagick() 类的正确代码。

当我使用addImage() 函数时,我认为我做对了,但事实并非如此。

我尝试了什么:

<?php

$combined = new Imagick();

$frontpage = new Imagick('png/frontpage.png');
$backpage = new Imagick('png/backpage.png');

$insidepage = new Imagick('png/inside.png');
$draw = new ImagickDraw();

$draw->setFillColor('black');

$draw->setFont('fonts/Georgia-Bold-Italic.ttf');
$draw->setFontSize(44);
$insidepage->annotateImage($draw, 2020, 268, 0, 'Text goes here');

$draw->setFont('fonts/Georgia-Italic.ttf');
$insidepage->annotateImage($draw, 2020, 987, 0, 'Text goes here');

header('Content-Type: application/pdf');

$combined->addImage( $frontpage );
$combined->addImage( $insidepage );
$combined->addImage( $backpage );

$combined->setImageFormat('pdf');

echo $combined;

【问题讨论】:

  • 会发生什么而不是它的工作?
  • Chrome 中的 PDF 预览模式,没有内容。我发现我需要使用 imagemagick 保存为 pdf,然后在浏览器中读取该文件的内容。

标签: php pdf imagemagick png imagick


【解决方案1】:

在浏览另一个问题时,我看到了这个未完全回答的旧问题。为了完整起见:问题不在于文件必须在显示在用户浏览器上之前写入文件存储,而是使用 echo 导致浏览器预览为空。

使用echo $combined-&gt;getImageBlob(); 代替echo $combined;

【讨论】:

    猜你喜欢
    • 2014-06-06
    • 2013-06-16
    • 2014-07-05
    • 2021-05-20
    • 2022-10-20
    • 2017-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多