【问题标题】:Calling x.php file from a Javascript file从 Javascript 文件调用 x.php 文件
【发布时间】:2015-11-20 12:43:49
【问题描述】:

我正在开发一个相当大的 eWeb 工具,其中包含大量 .js.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);
    }
?>

现在,当我点击“确认订单”按钮时,我想要从网络工具中打印 PDF 文件!我不想将 PDF 文件加载到隐藏的 iframe 中或将其嵌入某处,因为正如我之前所说,该工具非常大,我暂时不想在其他地方造成任何问题。

谁能给我一些关于解决方案的想法吗?

【问题讨论】:

  • 您无法将订单发送到客户端打印机。如果它在localhost中工作是相对正常的,但http服务器客户端下的客户端决定。您可以调用 print() javascript 函数来打开浏览器的打印对话框,但是您不能连接到远程打印机并向其发送自定义订单,因为这将是一个主要的安全漏洞。
  • @MarcosPérezGude 只有一个人(确认订单)在使用此工具,并且他一直使用同一台计算机。客户无法使用我提到的工具。
  • 也在本地主机中吗?
  • 你说“也在 localhost 中是什么意思?” ?为了进行测试,我在本地主机中使用了该 php 代码,当我调用它时,它会执行我想要的操作。但该工具当然是在另一个域上。

标签: javascript php pdf


【解决方案1】:

假设 PHP 是一种服务器端语言,正如某些人之前所说,您不能向客户端发送打印请求。请求源自服务器,所以...

你可以做什么:

1.- 在网页中加载pdf。

2.- 处理body onLoad如下:

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

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

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

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

【讨论】:

  • 打印pdf文件的不是客户。客户只是在网上下订单,然后我(以管理员身份)登录系统并确认客户的订单。我想要的是:当我点击按钮确认订单时,也直接打印一个pdf文件。
  • 假设您有一个名为 abc.com 的电子商务网页,客户在那里下订单。客户完成订单后,您作为卖家,登录管理系统(我们称之为“service.abc.com”),从那里您可以看到客户的所有信息及其订单表单。然后,您应该通过单击“确认”按钮来确认客户的订单。我想要的是当我单击“确认”按钮时也触发打印功能。此触发器应通过将文件发送到我的本地打印机来打印 pdf 文件(始终是同一个文件)。
  • 上面的代码同样适用于你,因为虽然你是管理员,但主机在其他地方。正确的?如果您不想让它变得复杂,只需在确认后添加一个链接到带有我给您的提示的 pdf。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-07
  • 2013-06-20
相关资源
最近更新 更多