PDFlib PHP 具有设置高度和动态宽度的图像框大小

PDFlib PHP image boxsize with set height and dynamic width

在 PDFlib 中,我们可以使用 boxsize={65 65}(例如)定义图像的框大小。由于我们需要两个值,有没有办法设置高度值并让宽度值动态变化?在我的用例中,我想添加所有设置高度为 65 的图像,但图像的宽度可能不同,因此 boxsize 应根据图像动态更新。

我也试过在选项列表中使用比例尺,但这没有任何意义,因为高度也会根据图像而变化。

目前我使用 for 循环加载所有我想放置的图像,如下所示:

foreach ($awardImages as $awardImage) {
            $image = $p->load_image('auto', $awardImage, '');
            if (0 == $image) {
                echo "Couldn't load $image: ".$p->get_errmsg();
                exit(1);
            }

            if ($x > (565 - 70)) {
                $y = $y - 65;
                $x = $elementStartLeft + 2;
            }

            
            // $buf = "scale=1 position={left center} matchbox={name=awardimage}";
            $buf = 'boxsize={65 65} fitmethod=auto showborder position={left center} matchbox={name=awardimage}';
            $p->fit_image($image, $x, $y, $buf);
            ++$awardNo;
            $awardX2 = $p->info_matchbox('awardimage', $awardNo, 'x2');
            $x = $awardX2 + 5;
        }

我认为最简单的方法就是将高度或宽度指定一个较大的值。这可能看起来像这样,例如

$p->fit_image($image, 0.0, 0.0, "boxsize {65 1000} fitmethod=meet position={left center}");
$p->fit_image($image, 0, 300,  "boxsize {1000 65} fitmethod=meet position={left center}");

将较大的宽度或高度(此处为 1000)设置为可以防止内容突出页面的值可能是有意义的。

此处的值 (1000) 足以满足比率为 1:15 且值为 65 的图像。

一般情况下,也可以通过info_image()来确定图片的高宽,从而确定纵横比。在此基础上,您也可以自己确定和指定框的大小。