怎么用 js 调用系统的打印机?

2016-02-01 13:54:48 +08:00
 haython

想在网页里直接调用打印功能,不是使用浏览器的打印功能,比如使用 js 调用某个系统服务,系统服务去调用打印

9249 次点击
所在节点    问与答
17 条回复
kfll
2016-02-01 14:00:50 +08:00
你需要一个全系列 IE 漏洞或 ActiveX + ppapi plugin + npapi plugin
(大概
FrankFang128
2016-02-01 14:03:48 +08:00
浏览器里的 JS 还能脱离浏览器?
warlock
2016-02-01 14:04:27 +08:00
很早以前用的 applet
jugelizi
2016-02-01 14:06:17 +08:00
https://www.v2ex.com/t/254625#reply7

javascript 真的和 java 没任何关系

js 在浏览器里能做的真的很少
mkeith
2016-02-01 14:08:48 +08:00
系统服务做成 http server
ljbha007
2016-02-01 14:14:35 +08:00
或者学习百度 本地开个允许跨域的 http 服务器 然后调用服务器接口获取本地功能
haython
2016-02-01 14:14:58 +08:00
@jugelizi 我当然知道 js 跟 java 没有关系,是已经离职的同事做的一个打印功能,用 c#做调用的打印机,页面上用 js 调用的 c#的,但是不知道怎么调用的 c#这块,据说是注册到注册表,弄成了服务
jugelizi
2016-02-01 14:28:28 +08:00
@haython 你这个自己用还是给客户用?
cyberdak
2016-02-01 14:29:39 +08:00
lodop
haython
2016-02-01 14:30:23 +08:00
@jugelizi 自己用
haython
2016-02-01 14:30:51 +08:00
@cyberdak 这个已经在用了,有些地方不好使
gamexg
2016-02-01 14:52:54 +08:00
写成浏览器插件会有浏览器兼容性问题。

最简单的办法是 C# 写一个 http 服务器(固定到一个端口), js ajax 调用(传递需要打印的 url ,可能需要带 cookie)。
pein
2016-02-01 16:32:54 +08:00
js 的话估计只有 websocket 全双工通信,这样服务器可以直接给浏览器发打印信号,结合 lodop 就可以实现 js 打印。
我最近做的一个项目,是网页外面套一个 C#的壳,实时监听是否有需要打印的数据,用户在网页产生操作后,后端语言向那个壳发送 socket 消息,然后壳接收到消息就打印出来。
ipconfiger
2016-02-01 16:35:08 +08:00
js 只能通过浏览器
xxdd
2016-02-01 16:45:43 +08:00
作为 JS 调用过打印机的来说几句:

1.需要封装成插件 , 打包成 cab 包。里面包含 ocx dll 文件

2.IE 浏览器安全性需要调低。

3.JS 里面用 Object 对象引入 cab 包
NemoAlex
2016-02-01 16:50:01 +08:00
https://github.com/tojocky/node-printer
封装成 nw.js 的应用程序
gkiwi
2016-03-21 15:45:44 +08:00
之前打印餐馆小票用的这个: http://www.lodop.net/
不过需要安装一个他家的驱动,这个避免不了~~

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/254766

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX