2015-08-26 47 views
-2

我正在研究一个相当大的eWeb工具,其中包含大量的.js & .php文件,而且此工具由其他人无法访问的文件开发。从Javascript文件调用x.php文件

假设客户购买了一些东西,最后作为卖家,我应该通过点击某个表中的“确认订单”按钮来确认客户的购物。现在,当我点击确认按钮时,我想打印PDF文件(位于本地磁盘或eWeb工具的服务器上,取决于难度)。我能达到的打印机,并在我的本地主机下面的PHP代码打印的PDF文件时,我直接把它叫做:

<?php 
    $printer ="HP Officejet Pro X476dw MFP PCL 6 (Network)"; 
    $path = "C:/Test_PDF/TestPDF.pdf"; 
    $fileName = "TestPDF.pdf";` 

    if($ph = printer_open($printer)) { 
     $filecontents = file_get_contents($path); 
     printer_set_option($ph, PRINTER_MODE, "RAW"); 
     printer_write($ph, $filecontents); 
     printer_close($ph); 
    } 
?> 

现在,我要的是从Web工具打印PDF文件还当我点击'确认订单'按钮!我不想将PDF文件加载到隐藏的iframe中,或者将其嵌入到某处,因为如前所述,该工具非常大,现在我不想在其他地方引起任何问题。

有人可以给我一些关于解决方案的想法吗?

+0

你不能发送订单到客户端打印机。如果它在localhost中工作是相对正常的,但在http服务器客户端下的客户端决定。您可以调用print()javascript函数打开浏览器的对话框进行打印,但无法连接到远程打印机并向其发送自定义订单,因为这将是一个主要的安全漏洞。 –

+0

@MarcosPérezGude 只有一个人(确认订单)使用此工具,并且他始终使用同一台计算机。客户无法访问我提到的工具。 –

+0

也在localhost中吗? –

回答

0

假设PHP是一种服务器端语言,正如一些人之前所说的那样,您无法向客户端发送打印请求。该请求是起源于服务器,所以...

你可以做什么:

1 .-在加载网页中的PDF文件。

2:处理身体的onLoad如下:

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

这样,客户端将使用它的打印机(如有)。

我知道你不想在网页中加载pdf,但是...这似乎是唯一的解决方案。

P.D .:我不确定是否要打印客户或卖家的收据。更好地解释自己,我会尽力帮助你:)

+0

这不是客户谁将打印PDF文件。客户只需在网上下订单,然后我(作为管理员)登录系统并确认客户的订单。我想要的是:当我点击按钮确认订单时,也直接打印PDF文件。 –

+0

假设您有一个名为abc.com的电子商务网页,并且客户在那里做了一些订单。客户完成订单后,作为卖家,您将登录管理系统(可以称之为'service.abc.com'),然后您可以看到客户的所有信息和他/她的订单表单。然后,您应该点击'确认'按钮来确认客户的订单。我想要的是当我点击'确认'按钮时也触发打印功能。该触发器应该通过将文件发送到本地打印机来打印PDF文件(始终是相同的文件)。 –

+0

上面的代码适用于你,因为尽管你是管理员,但主机还是在其他地方。对?如果你不想让它变得复杂,只需在确认后添加一个链接到我提供给你的提示。 –