如何使用javascript / jquery通过调用使用.bat文件自动打印

时间:2016-03-30 04:03:51

标签: javascript jquery windows batch-file printing

我有网络应用程序,它有一个打印功能。它只是使用点矩阵打印机打印一些HTML对齐的内容。但在Web应用程序中,它以图形模式打印,因为此打印非常慢。所以我使用link尝试了解决方案。我的打印方法如下:

var data=[].slice.call($("#printdiv").find("table tr")).map(function(row){
                return row.textContent.trim().replace(/\n/g,"\t");
            }).join("\n");

window.open("data:application/print;," + escape(data));

我的print.bat如下:

notepad /p %1

当我点击打印按钮时,它只需下载一个文件,然后需要打开print.bat文件进行打印,效果非常好。

我该如何自动化。我的意思是在点击打印功能时我想调用print.bat文件,并且需要将内容或记事本文件传递给bat文件,并且无需人工干预即可工作。

我尝试使用ActiveXObject调用.bat文件,但它无法在任何地方工作(甚至不在IE中工作)。

如何使用javascript / jquery自动从浏览器调用.bat文件并自动打印?

1 个答案:

答案 0 :(得分:1)

对于Windows,您可以使用自定义MIME处理程序应用程序对纯文本执行此操作,该应用程序由自定义批处理文件提供。

  1. 创建一个包含print.bat
  2. 的新@notepad /p %1文件
  3. 使用像https://github.com/rndme/download这样的工具下载您要使用自定义mime打印的文字:download("Hello World", "temp.prn", "x-application/print");
  4. 在Chrome中,右键单击下载栏中的下载,然后选择“始终打开此类文件”
  5. 重复步骤2,触发文件打开应用程序选择对话框
  6. 选中“将此应用用于所有.prn文件”,然后手动浏览到您的bat文件并选择它。可能会在“更多选项”,“寻找另一个应用......”。
  7. 您应该听到打印机正在预热和打印。
  8. Firefox方向类似,你基本上只需要将bat文件与自定义MIME相关联(在本例中我选择“x-application / print”,但任何未使用的非文本应该可以工作)。然后,您可以使用下载程序(或手动<a download>链接将字符串作为文本传递给打印机。

    现场演示:http://pagedemos.com/kwk9wzpq46j3/1 - 请务必使用上面的print.bat文件打开。

    我已经使用这个技巧根据存储在PHP CMS中的数据自动打印1,000个媒体标签,没有明显的导出路径,并且它对我们很有用。

    我认为你不能用图形或其他类似非文字的东西来做这件事。

    最后,您可以在记事本的配置中编辑打印标题,并且应该记住您的自定义,以便更好地自动打印任意文本。