【问题标题】:Automatically Print webpage with PHP使用 PHP 自动打印网页
【发布时间】:2013-04-17 13:15:06
【问题描述】:

我有一个 php 脚本,它获取发票编号并生成包含所有相关信息的 PDF 发票,当脚本完成后,PDF 将显示在用户浏览器的屏幕上。我很想知道如何自动打印 PDF?我意识到由于安全/垃圾邮件问题,可能无法使用 php 或 javascript。

不幸的是,手动打印页面并不是一个真正的选项,因为用户目前有两台打印机,在当前基于 Access 的系统中,一张发票被发送到彩色打印机,两张发票被发送到黑白打印机。这一切都是自动完成的,但现在由于某些情况我想使用 PHP,因为系统的很大一部分已经基于 PHP。

我曾考虑过使用基于 Linux 的机器并尝试使用 python 网络服务器来获取 PDF 并打印它,但我不知道这需要什么或如何去做。任何反馈都会很棒!

【问题讨论】:

    标签: php python printing web


    【解决方案1】:

    鉴于你所说的,IMO 你最好的选择是使用 Linux 来打印它。

    wget http://1.2.3.4/invoice.pdf
    pdf2ps invoice.pdf invoice.ps
    lpr -Pcolor invoice.ps
    lpr -Pbw -#2 invoice.ps
    

    这样的东西,也许应该可以工作。

    【讨论】:

    • 我认为这也是最好的方法,谢谢@DimeCadmium,我会尝试这个选项。我相信这段代码是完美的,但理想情况下会搜索一个文件夹,因为发票网址每次都会不同。
    • 您也可以使用例如wget -O invoice.pdf http://1.2.4.5/invoice.php?id=1234,将其保存为不同的名称。或者,如果 pdf2ps 接受 STDIN(我不确定),您可以通过管道传输它:wget -O - http://blabla/bla | pdf2ps - invoice.ps
    • +1,听起来不错。听起来“用户”肯定只是一个 cron 任务!
    【解决方案2】:

    【讨论】:

    • 嗨 @rajesh57 我已经有了生成 PDF 的方法,谢谢,我正在寻找一种自动打印网页/PDF 的方法。
    【解决方案3】:

    在java脚本上试试这段代码

    <A HREF="javascript:window.print()">Click to Print This Page</A>
    
    
     You can set it to print off of an image:
       <A HREF="javascript:window.print()">
      <IMG SRC="print_image.gif" BORDER="0"</A>
    
      And yes, you can set it to trigger off a button:
    <FORM>
     <INPUT TYPE="button" onClick="window.print()">
      </FORM>
    

    您无法了解查看此网站

    http://www.htmlgoodies.com/beyond/javascript/article.php/3471121/Print-a-Web-Page-  Using-JavaScript.htm 
    

    【讨论】:

      【解决方案4】:

      你可以用 vbscript 试试这个

      <OBJECT ID="WebBrowser1" WIDTH=0 HEIGHT=0 CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>
                    <form>
                    Printing webpage without prompt window. As of now it's possible with VBScript(IE).
                    <br/>
                    <button onclick="Print()">Print Now</button>
                    <br/>
      
                    </form>
                    <script language="VBScript">
                      Sub Print()
                        OLECMDID_PRINT = 6
                        OLECMDEXECOPT_DONTPROMPTUSER = 2
                        OLECMDEXECOPT_PROMPTUSER = 1
                        If DA Then
                          call WebBrowser1.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER,1)
                        Else
                          call WebBrowser1.IOleCommandTarget.Exec _
                              (OLECMDID_PRINT ,OLECMDEXECOPT_DONTPROMPTUSER,"","","")
                        End If
                      End Sub
                    </script>
      

      【讨论】:

      • 嗯,PHP 实际上将 html 转换为您看到的 PDF 文件,我需要这样做,因为该文件将被打印但也被保存并用于发送电子邮件等,因此 PDF 是理想的。我可以使用 Print(); Javascript 中的函数,但它只是打开对话框并且不会自动打印。
      • 这看起来很有趣,但似乎不起作用,可能是我的错,但我需要安装任何东西或设置任何东西吗?
      • 尝试在 IE 上打开它并在它询问时激活 activex...如果它没有清理您的浏览器数据!
      • 仅适用于 IE,如果在大多数业务环境中启用了 activex,则两者都不可能
      猜你喜欢
      • 1970-01-01
      • 2011-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-12
      • 1970-01-01
      • 1970-01-01
      • 2021-04-17
      相关资源
      最近更新 更多