![](/img/trans.png)
[英]I got a low quality image when converting sRGB to CMYK in PHP using Imagick
[英]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.