我有一个网站,用户可以在其中上传PDF文件,然后将其转换为JPG文件。 PDF文件可以具有文本,光栅图形或矢量图形。
有时用户会上载较大的矢量PDF,而Imagick readImage
操作会花费过多时间,CPU能力和内存导致服务器崩溃。如何设置正确的密度(setResolution
),以使最终结果在使用所有不同的PDF类型时最长的一侧例如接近4000像素?
当前,我将密度设置为300,带有Page size: 2381.1 x 1264.25 pts
的PDF文件几乎将服务器清除了。带有光栅图像的PDF很好。
我应该尝试根据页面大小进行一些计算还是有另一种方法?
这是我的代码:
$img = new Imagick();
$img->setResolution(300,300);
$img->readImage($input); // Server hangs here
// I get a multi gigabyte temp file and use almost 10 GB of RAM