我有一个使用图像创建的PDF(因此它具有图像的原始尺寸)
现在,我正在尝试按比例缩放它以适合A4 pdf(宽度接触侧面并垂直居中)。
这是我尝试过的代码:
$imagick = new \Imagick();
$imagick->setResolution(576,576);
$imagick->readImage($path);
$imagick->resizeImage(2480,3508,\Imagick::FILTER_CUBIC,1);
$imagick->setCompressionQuality(80);
$imagick->setImageFormat('pdf');
$imagick->writeImage($path);
但它会影响整个页面的图像比率(100%宽度和100%高度)。
导出的图片,
然而,我想要实现的是:
**更新**
$imagick = new \Imagick();
$imagick->readImage($path);
$imagick->resizeImage(595,842,\Imagick::FILTER_CUBIC,1);
$imagick->setBackgroundColor(new ImagickPixel('white'));
$imagick->setGravity ( Imagick::GRAVITY_CENTER );
$imagick->extentImage ( 595 , 843 , 0 , 0 );
$imagick->setImageFormat('pdf');
$imagick->writeImage($path);
使用它,这是输出(它的整页但丢失了比率):
答案 0 :(得分:0)
您只提供了PNG图像,而不是PDF。但这应该有助于使用Imagemagick命令行。对不起,我不知道Imagick,但你应该能够找出相应的命令。请注意,A4尺寸为595x842像素。
convert source.png -background white -resize 595x842 -gravity center -extent 595x842 -bordercolor red -border 1 result.png
请注意,您可以删除-bordercolor red -border 1,因为我添加了一个红色边框,以显示白色背景的输出大小。
如果使用PDF输入,您可以尝试相同或如果质量不佳,您可以尝试增加密度,例如
convert -density 300 source.pdf -background white -resize 595x842 -gravity center -extent 595x842 result.png
答案 1 :(得分:0)
这在Imagemagick中似乎对我有用。
convert birds.pdf -background white -resize 595x842 -gravity center -extent 595x842 result.pdf
您可以在Imagick中尝试以下操作,但我不是专家。
$imagick = new \Imagick();
$imagick->readImage($path);
$imagick->resizeImage(595,842,\Imagick::FILTER_CUBIC,1);
$imagick->setBackgroundColor(new ImagickPixel('white'));
$imagick->setGravity ( Imagick::GRAVITY_CENTER );
$imagick->extentImage ( 595 , 843 , 0 , 0 );
$imagick->setImageFormat('pdf');
$imagick->writeImage($path);