【问题标题】:Imagick - set paper size of output pdfimagick - 设置输出pdf的纸张大小
【发布时间】:2022-01-16 20:56:49
【问题描述】:

我有一个 php 辅助函数,它接受 base64 png 并输出一个 pdf 文件:

    public static function base64PngToPdf($b64, $filePath) {
        $imagick = new Imagick();
        $imagick->readImageBlob(base64_decode($b64));

        // Create PDF File
        $pdfFile = new Imagick();
        $pdfFile->setFormat('pdf');
        // Add image to pdf
        $pdfFile->addImage($imagick->getImage());

        file_put_contents($filePath, $pdfFile->getImagesBlob());
        return $filePath;
    }

我的问题是,我拥有的 png 是 800w x 1200h 像素。上面的代码输出一个 211 x 317mm 的标签。我想要一个缩小到 101 毫米宽或 152 毫米高的标签(最好不缩放像素本身,只改变物理尺寸)。

我做了一些谷歌搜索,发现 imagick 有一个密度参数,但我不能 100% 确定在这种情况下是否是我想要的,而且我的库没有 ->setDensity 函数。

【问题讨论】:

    标签: php imagick


    【解决方案1】:

    我找到了一种相关的解决方案。我可以使用$pdfFile->setResolution($resolution[0], $resolution[1]);,在setResolution 中我可以设置例如72的ppi。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-31
      • 2013-05-15
      • 2015-09-09
      • 2017-02-21
      • 2015-07-05
      • 1970-01-01
      相关资源
      最近更新 更多