使用javascript打印本地文件
Print a local file with javascript
今天我遇到了一个关于php+javascript+html+css:的艰巨挑战
我正在创建一个"授权+打印"的应用程序:该应用程序必须在本地apache中运行(最好在windows下),并且需要连接到云中的数据库。这很容易。通过用户身份验证后,必须显示授权文件的列表,这也是另一项简单的任务。它起作用了。但现在疯狂的是:我想在不让用户选择和查看任何打印选项的情况下打印它们,只需一个按钮"打印"。打印配置在.txt文件中,我需要配置打印,将文件和配置发送到打印机。
我搜索了很多,但我只看到"打印此页"按钮或shell解决方案(windows的gsview和gsprint,但我无法使用,因为我无法配置打印选项)。我需要更复杂的东西。你能帮我吗?(我现在正在尝试fpdf,但是…天哪,我不明白如果这可以用来做我想做的事。
非免费/已安装的解决方案也有帮助。
此外,我需要打印多个文件,但这是可选的(我可以做任何类似"while"的事情)
PD:对不起我的英语水平。
从客户端打印=通过javascript从浏览器打印
从客户端(=从浏览器内部)是不可能做到这一点的。有一些破解的解决方案,可能适用于IE,比如这里的解决方案:HTML/Javascript一键打印(没有对话框),但通常"如果你尝试打印,对话框会弹出"="window.Print()"的默认行为。
从服务器端打印
基本上,您使用服务器端(PHP)来打印文档,而不是使用客户端。因此,您可以使用Ajax请求(用户单击打印按钮)将要打印的文件名或内容交给服务器上的"print.php"文件,该文件负责将内容推送到打印机。
当然,你必须知道用户希望在哪台打印机上打印内容…
从PHP打印有几种方法。
一种选择是使用php_printer
扩展:
$handle = printer_open();
printer_set_option($handle, PRINTER_MODE, "raw");
printer_write($handle,$myfile);
printer_close($handle);
或者仅将copy
或print
连接到打印机:
exec('copy C:'file.txt com1');
exec('copy C:'file.txt lpt1');
exec('print /d:LPT1: C:'file.txt');
如果你有网络打印机,你可以尝试将内容发送到网络地址。有一些PHP实用程序可以使用LPR:https://github.com/Craswer/PhpNetworkLprPrinter
引用:https://stackoverflow.com/a/5695181/1163786
评论中的问题:如何在Windows上从PHP设置打印机选项?
这在Linux上非常容易,因为lpr接受选项lpr <options>
,但在Windows上不是这样。因此,这里有一些特定于Windows的技巧来配置打印机:
Windows7有PRINTUI.EXE
-RUNDLL32 PRINTUI.DLL,PrintUIEntry
的缩写
有关示例,请参阅PrintUI参考。
您可以手动配置打印机,例如激活双工模式,然后保存设置文件并在从PHP打印时重用它。这允许使用多个打印机配置文件。
最简单的方法是在env中配置打印机,然后按名称访问它,"Printer-HP-XY-DuplexOn-2PagesOn1"。换句话说:它是在外部配置的,而不是从PHP内部配置的,只能从那里访问。
- jquery打印[object XMLDocument]而不是文件内容
- 如何在打印前等待javascript文件加载twitter,并在打印后关闭选项卡
- 如何提供保存文件而不是从internet explorer打印文件的选项
- 如何打印或获取从jquery发送到php文件Wordpress的数组
- 使用javascript从浏览器打印XML或TXT文件
- 打印CSV文件的标题-Angular JS
- JavaScript只打印XML文件的第一行;忽略其余部分
- 使用javascript/jquery打印文本文件的内容
- 无法将值打印到文件中
- 为什么它要将包含的文件中的所有注释打印到屏幕上
- Java 脚本:递归地遍历关联的 HTML 文件的 Dom,并打印遇到的元素类型
- 使用单独的.js javascript 文件打印到文档
- 如何使用 MVC4 C# 禁用 iframe 中的打印功能和只读文件
- 打开并打印 Thunderbird HTML 文件
- 在 Javascript 中打印多个 html 文件的输出
- 无法使用此 JavaScript 函数在 Firefox 中将文件打印为 PDF
- 从外部文件打印JavaScript代码
- 从.js文件打印html页面数据
- 从json文件打印数据
- 用Javascript将对象从JSON文件打印到控制台