繁体   English   中英

使用PHP Imagick(ImageMagick)转换为PCL时如何将图像设置为高质量

[英]how do i set the image to high quality when converting to PCL using PHP Imagick (ImageMagick)

这是代码:

$im=new Imagick();
$im->readImageBlob($pdf_data);
$im->setImageFormat('pcl');
$b64pages = array();
for ($x = 1;$x <= $im->getNumberImages(); $x++) {
    $im->previousImage();
    $pclpage = $im->getImageBlob();
    $b64page = base64_encode($pclpage);
    $b64pages[] = $b64page;
    $count--;
}

当我将生成的PCL图像直接发送到客户端的PCL打印机时,输出模糊。 通过Windows驱动程序打印时,PDF不模糊。 为了确保PCL输出清晰,驱动程序在做什么?

好的,所以我在这里找到了一个使用所有正确参数调用ghostscript的shell脚本: https : //gist.github.com/ongardie/6800587 我将其安装在服务器上。 现在我的文件格式转换php代码如下所示:

chdir("../pdf_to_pcl");
$ident = uniqid();
$pdf_filename = $ident.".pdf";
$pdf_file = fopen($pdf_filename,'w+');
fwrite($pdf_file,$pdf_data);
fclose($pdf_file);

exec("./pdf2pcl $pdf_filename");

$pcl_filename = $ident.".pcl";
$pcl_file = fopen($pcl_filename,"r+");
while($dt = fread($pcl_file,4096)) {
    $pcl_data .= $dt;    
}

fclose($pcl_file);
unlink($pdf_filename);
unlink($pcl_filename);

我要转换的图像数据在$ pdf_data中。 pcl格式的数据位于$ pcl_data中。 我可以为PCL打印机打开RAW打印服务器(端口9100)的套接字,然后直接向其中写入$ pcl_data。 希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM