使用javascript打印本地文件
今天,我在php+javascript+html+css方面遇到了一个严峻的挑战: 我正在创建一个“授权+打印”的应用程序:该应用程序必须在本地apache(最好在windows下)中运行,并且需要连接到云中的DB。那很容易。通过用户身份验证后,必须显示授权文件的列表,这也是一项简单的任务。它起作用了。但现在有一个疯狂的事情发生了:我想打印它们,而不让用户选择和查看任何打印选项,只有一个按钮“打印”。打印配置在一个.txt文件中,我需要配置打印,将文件和配置发送到打印机 我搜索了很多,但我只看到“打印此页面”按钮或shell解决方案(gsview和gsprint for windows,但我无法使用它们,因为我无法配置打印选项)。我需要更复杂的东西。你能帮我吗?(我现在正在尝试fpdf,但是……天哪,我不明白这是否可以用来做我想要的事情 非免费/已安装的解决方案也可以提供帮助 此外,我需要打印多个文件,但这是可选的(我可以执行“while”之类的任何操作)使用javascript打印本地文件,javascript,php,file,printing,Javascript,Php,File,Printing,今天,我在php+javascript+html+css方面遇到了一个严峻的挑战: 我正在创建一个“授权+打印”的应用程序:该应用程序必须在本地apache(最好在windows下)中运行,并且需要连接到云中的DB。那很容易。通过用户身份验证后,必须显示授权文件的列表,这也是一项简单的任务。它起作用了。但现在有一个疯狂的事情发生了:我想打印它们,而不让用户选择和查看任何打印选项,只有一个按钮“打印”。打印配置在一个.txt文件中,我需要配置打印,将文件和配置发送到打印机 我搜索了很多,但我只看到
PD:很抱歉我的英语水平。从客户端打印=通过javascript形成浏览器 无法从客户端(即从浏览器内部)执行此操作。 有一些黑客的解决方案,可能适用于IE,比如这里的:,但通常“如果您尝试打印,对话框将弹出”=默认行为“window.print()” 从服务器端打印 基本上,您使用服务器端(PHP)来打印文档,而不是客户端。 因此,您可以使用Ajax请求(用户单击打印按钮)将要打印的文件名或内容传递到服务器上的“print.php”文件,该文件将内容推送到打印机 当然,您必须知道用户希望在哪台打印机上打印内容 从PHP打印有几种方法 一种选择是使用
php\u打印机
扩展:
$handle = printer_open();
printer_set_option($handle, PRINTER_MODE, "raw");
printer_write($handle,$myfile);
printer_close($handle);
或者将复制
或打印
到打印机:
exec('copy C:\file.txt com1');
exec('copy C:\file.txt lpt1');
exec('print /d:LPT1: C:\file.txt');
如果您有网络打印机,您可以尝试将内容发送到网络地址。
有一些PHP实用程序可用于LPR:
参考:
评论中的问题:如何在Windows上从PHP设置打印机选项 这在Linux上非常容易,因为lpr接受选项
lpr
——但在Windows上不是这样。因此,以下是一些Windows特有的配置打印机的技巧:
exec('copy C:\file.txt com1');
exec('copy C:\file.txt lpt1');
exec('print /d:LPT1: C:\file.txt');
Windows7有PRINTUI.EXE
——是RUNDLL32 PRINTUI.DLL、printuitery的缩写
有关示例,请参见
您可以手动配置打印机,例如激活双面打印模式,
然后保存设置文件并在从PHP打印时重新使用。
这允许使用多个打印机配置文件
最简单的方法是在环境中配置打印机,然后按名称访问它,
“Printer-HP-XY-DuplexOn-2PagesOn1”。换句话说,它是在PHP外部配置的,而不是从PHP内部配置的,只能从那里访问。除非这是一台联网打印机,否则无法在不显示打印对话框的情况下从浏览器打印。听起来他可能想从服务器端(apache/PHP)打印.@epascarello请不要告诉我:阅读以下内容:如何配置mozilla,使其不显示打印对话框,并在预定打印机中使用预先设置的首选项进行打印。这是我需要的一小部分。@DigitalChris:我不需要从服务器端打印,可以从客户端完成(这是一个本地安装的apache:服务器和客户端将是同一个CPU)@BarragánLouisenbairn您正在为特定用户更改浏览器。如果您想让任何页面开始随机打印100个文档,这很好。是的,这是主要的答案,现在我正在与“如何使用PHP打印到LPR”进行斗争。你知道你是否可以在发送文件之前配置打印?我已经附上了我的答案。好的,完美的答案,我会让你在有15个代表时投票。我只是补充一点信息:我发现了如何“在windows中配置驱动程序”。安装资源工具包工具windows Server 2003(从这里:可以使用兼容模式在win 7 x64中安装它,并选择windows->windows Server 2003的早期版本中的工作)。然后,您可以使用“setprinter.exe”命令来配置它。我现在正在学习如何使用它。(配置64台打印机,不谢谢:_D?“setprinter.exe”-旧时代的另一个好东西:)我发现您也可以使用PowerShell:Set PrintConfiguration-PowerShell 2.0是隐藏的,以前安装在Windows 7中:查看此链接:(您的内部有一个在Win7内部安装v3.0的链接: