Php 如何创建触发文件打印的链接?

Php 如何创建触发文件打印的链接?,php,javascript,ajax,printing,Php,Javascript,Ajax,Printing,我有一些小图片,每个都有一个“打印大图片”链接 例如: <img src="thumb.jpg"> <a href="#">Print Larger Image</a> 当用户点击“打印大图片”链接时,我的目标是触发“big.jpg”的打印 如何做到这一点 编辑:安东尼为我找到了正确的解决方案。我对他的代码做了一些修改以使其正常工作。以下是完整的工作代码 <style> @media screen { .printimage { d

我有一些小图片,每个都有一个“打印大图片”链接

例如:

<img src="thumb.jpg">
<a href="#">Print Larger Image</a>

当用户点击“打印大图片”链接时,我的目标是触发“big.jpg”的打印

如何做到这一点

编辑:安东尼为我找到了正确的解决方案。我对他的代码做了一些修改以使其正常工作。以下是完整的工作代码

<style>
@media screen {
.printimage {
     display: none;
}
}

@media print {
body * {
    display: none;
}
.printimage {
     display: block;
}
}

</style>

<a id="bigimage" href="#">Print Big Image</a>

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script>
 $(document).ready(function(){

     $("#bigimage").click(function() {
          $("body").append("<img src='http://sstatic.net/so/img/logo.png' class='printimage' >");
          window.print();
     });

});

</script>

@媒体屏幕{
.打印图像{
显示:无;
}
}
@媒体印刷品{
正文*{
显示:无;
}
.打印图像{
显示:块;
}
}
$(文档).ready(函数(){
$(“#bigimage”)。单击(函数(){
$(“正文”)。追加(“”);
window.print();
});
});

这是非常基本的HTML,不需要JS/PHP或其他任何东西。

window.print()将在javascript中完成,但只打印当前页面。如果您试图将img启动到一个新选项卡并运行print命令,则必须组合几个命令。


<a href="javascript:window.Print(); return false;">Print Larger Image</a>
这将打印当前页面,但要添加到JoostK的答案,请重定向到图像:

<a href="page.php?image=big.jpg">Print Larger Image</a>

然后在page.php中加载图像,然后在body onload事件中调用window.print()

编辑:

要让用户保持在同一页面上,我认为这是不可能的,但您可以做的是:

<a href="page.php?image=big.jpg" target="_blank">Print Larger Image</a>


然后调用
window.print()之后
您可以调用
window.close()(这可能会弹出一个对话框,说明浏览器想关闭当前窗口,是否确定,或者类似的内容)

您可以创建这样的链接来打印当前页面

<a href="JavaScript:window.print();">Print this page</a>

或者要在页面加载后自动打印页面,您可以执行以下操作

<body onload="window.print();">

这将非常奇怪和可怕,但您可以做的一件事是:

<a href="page.php?image=big.jpg" target="_blank">Print Larger Image</a>
print large image
链接触发一个javascript函数,该函数使用一个“printable_image”类将较大的图像插入DOM

然后,使用
@屏幕
@打印
规则设置CSS规则,这些规则在浏览器中隐藏图像,但在打印输出时隐藏除图像以外的所有内容

然后调用前面提到的
window.print()
函数。 唯一的问题是,如果用户只想打印屏幕,他们什么也看不到,因此您必须在js中添加@print规则来避免这种情况

HTML:

<img src="thumb.jpg">
<a href="#" id="bigimage">Print Larger Image</a>

打印意味着显示,对吗?如果是的话,这将是几分钟前的一个问题的副本。通过打印,我不是指显示。我的目标是:当用户单击“打印”链接时,他会停留在同一页面上,浏览器的“打印”对话框就会出现。接下来,用户可以单击“确定”按钮开始打印文件“big.jpg”。我希望用户在单击“打印”按钮后保持在同一页面上。有没有一种方法可以通过AJAX实现这一点?这是一个很好的解决方案,但对我来说,这似乎太多工作了;)很有创意。另外,用户总是有可能关闭javascript。如果他们关闭了js,那么任何给定的解决方案都不会起作用。您可以指示用户右键单击并打开图像:)
$function() {
     $("#bigimage").click(function() {
          $(body).amend("<img src='bigimage.png' class="printimage" />");
     });
});
@media screen {
.printimage {
     display: none;
}
}

@media print {
body * {
    display: none;
}
.printimage {
     display: block;
}
}