在我相信之前我已经问了这个问题,但我遇到了更多问题。我有一个在本地服务器上运行的Web应用程序。当用户向图像添加销售时,将生成包含所有销售的页面。
这包括图像,图像数量根据销售量的不同而变化。这些图像可以在横向和纵向之间变化。为了打印图像,必须将它们全部旋转为纵向,因此我使用PHP和Imagick来检测宽度和高度并相应地旋转它们。
因此,这是一个示例页面,其中有5张图像可供打印。
<div class="print_container" id="print_container" style="display: block;">
<div data-type="KR">
<img onload="c++;count_loaded();" id="LKR_6_0" data-quantity="2" onclick="disable_print(this,'print_container')" src="http://localhost:1234/ppa/php/generateimage.php?imgname=C:/xampp/htdocs/ppa/data/images/20140324/0/039.JPG&restraint=width" class="">
<img onload="c++;count_loaded();" id="LKR_6_1" data-quantity="2" onclick="disable_print(this,'print_container')" src="http://localhost:1234/ppa/php/generateimage.php?imgname=C:/xampp/htdocs/ppa/data/images/20140324/0/039.JPG&restraint=width" class="">
<img onload="c++;count_loaded();" id="LKR_7_0" data-quantity="2" onclick="disable_print(this,'print_container')" src="http://localhost:1234/ppa/php/generateimage.php?imgname=C:/xampp/htdocs/ppa/data/images/20140324/0/040.JPG&restraint=width" class="">
<img onload="c++;count_loaded();" id="LKR_7_1" data-quantity="2" onclick="disable_print(this,'print_container')" src="http://localhost:1234/ppa/php/generateimage.php?imgname=C:/xampp/htdocs/ppa/data/images/20140324/0/040.JPG&restraint=width" class="">
<img onload="c++;count_loaded();" id="LKR_13_0" data-quantity="3" onclick="disable_print(this,'print_container')" src="http://localhost:1234/ppa/php/generateimage.php?imgname=C:/xampp/htdocs/ppa/data/images/20140324/2/039.JPG&restraint=width" class="">
</div>
</div>
正如您所看到的,我链接到PHP文件并从那里返回图像。最好的方法是检测相同的图像是否正在旋转,只是为重复实例而不是多次旋转,但这是目前的问题。
以下是生成图像的代码:
<?php
//Need to add code to generate image if unable to load
try {
$im = new Imagick();
$im->readImage($_GET['imgname']);
$im->setImageFormat("jpg");
$d = $im->getImageGeometry();
$w = $d['width'];
$h = $d['height'];
if (isset($_GET['restraint'])) {
if($_GET['restraint'] == "width") {
if ($w > $h) {
$im->rotateImage(new ImagickPixel(), 90);
}
} elseif ($_GET['restraint'] == "height") {
if ($w < $h) {
$im->rotateImage(new ImagickPixel(), 90);
}
}
header("Content-Type: image/jpeg");
print $im->getImage();
$im->clear();
$im->destroy();
}
} catch (Exception $e) {
die('Error when creating a image: ' . $e->getMessage());
}
?>
以上所有内容似乎都运行良好,但是当我可以使用谷歌浏览器打印图像时,有时打印预览会失败,我不介意,因为我会禁用它,因为它没有意义。但是使用系统打印对话框打印也不起作用,它只是不打印并且没有错误。所以我假设问题是相关的......?
是否可以将TOO MUCH数据发送到打印作业? P.S我的打印通过WiFi连接,如果这有什么区别?