-
2018-08-13 14:23:23
web页面调用打印机不预览直接执行打印
<%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@include file="/context/mytags.jsp"%> <!DOCTYPE html> <html> <head> <title>打印页面</title> </head> <body> <script language="javascript" src="${webRoot}/plug-in/printlodop/LodopFuncs.js"></script> <object id="LODOP_OB" classid="clsid:2105C259-1E0C-4534-8141-A753534CB4CA" width=0 height=0> <embed id="LODOP_EM" type="application/x-print-lodop" width=0 height=0></embed> </object> <a href="javascript:bai_print1()">打印预览1</a> <a href="javascript:bai_print2()">打印预览2</a> <a href="javascript:bai_print3()">打印预览3</a> <a href="javascript:bai_print4()">打印预览4</a> <div id="printcontent" style="display: none;"> <img border="0" src="aaa-png.png"> </div> <script language="javascript" type="text/javascript"> var LODOP; //声明为全局变量 function bai_print1(){ LODOP=getLodop(); LODOP.PRINT_INIT("打印常用证明1"); LODOP.ADD_PRINT_HTM(0,0,"100%","100%",document.getElementById("printcontent").innerHTML); //LODOP.PREVIEW(); LODOP.PRINT(); }; function bai_print2() { var LODOP=getLodop(); LODOP.PRINT_INIT("打印常用证明2"); var strHTML="<body style='margin:0;background-color: white'>"+document.getElementById("printcontent").innerHTML+"</body>"; LODOP.ADD_PRINT_HTM("0mm",0,"RightMargin:0.1cm","BottomMargin:1mm",strHTML); LODOP.PREVIEW(); }; function bai_print3() { LODOP=getLodop(); LODOP.PRINT_INIT("打印常用证明3"); LODOP.ADD_PRINT_IMAGE(0,0,"100%","100%",document.getElementById("printcontent").innerHTML); LODOP.SET_PRINT_STYLEA(0,"Stretch",2);//按原图比例(不变形)缩放模式 LODOP.PREVIEW(); }; function bai_print4() { LODOP=getLodop(); LODOP.PRINT_INIT("打印常用证明3"); LODOP.ADD_PRINT_IMAGE(0,0,"100%","100%",document.getElementById("printcontent").innerHTML); LODOP.SET_PRINT_STYLEA(0,"Stretch",2);//按原图比例(不变形)缩放模式 LODOP.SET_PRINT_COPIES(5); //LODOP.PREVIEW(); LODOP.PRINT(); }; </script> </body> </html>
更多相关内容 -
Web自动打印方案 Lodop
2019-09-02 15:54:45说明 由于浏览器安全限制,直接在js中...Lodop通过本地驱动和浏览器控件相结合的方式解决了Web自动打印的需求。 支持各种浏览器 使用步骤 1、下载安装驱动及控件 通过[http://www.lodop.net/download.html]下载相关...说明
由于浏览器安全限制,直接在js中调用window.print() 只能弹出打印预览窗口,无法自动调用打印机进行打印。
在许多业务场景下,希望能够做到自动调用打印机打印,无需人工干预。
Lodop通过本地驱动和浏览器控件相结合的方式解决了Web自动打印的需求。
支持各种浏览器
使用步骤
1、下载安装驱动及控件
通过[http://www.lodop.net/download.html]下载相关程序,并安装
2、在页面中使用
- 引入js文件
<script src="/static/js/LodopFuncs.js" type="text/javascript"></script>
- js打印方法
var LODOP; function doPrint(how) { LODOP=getLodop(); // LODOP.SELECT_PRINTER(); //弹出打印机选项页面 LODOP.PRINT_INIT("小票打印");//打印任务名称 LODOP.SET_PRINTER_INDEX("ydyf_pos58");//指定打印机名称 LODOP.SET_PRINT_PAGESIZE(1,580,600,'CreateCustomPage'); LODOP.ADD_PRINT_HTM(0,0,"100%","100%",document.getElementById("print_div").innerHTML); // LODOP.PREVIEW(); LODOP.PRINT(); }
免费版在打印时会增加文字“本页由【试用版打印控件Lodop6.2.2.6】输出”
主要方法介绍
- PRINT_INIT(strPrintTaskName)打印初始化
- SET_PRINT_PAGESIZE(intOrient,intPageWidth,intPageHeight,strPageName)设定纸张大小
- ADD_PRINT_HTM(intTop,intLeft,intWidth,intHeight,strHtml)增加超文本项
- ADD_PRINT_TEXT(intTop,intLeft,intWidth,intHeight,strContent)增加纯文本项
- ADD_PRINT_TABLE(intTop,intLeft,intWidth,intHeight,strHtml)增加表格项
- ADD_PRINT_SHAPE(intShapeType,intTop,intLeft,intWidth,intHeight,intLineStyle,intLineWidth,intColor)画图形
- SET_PRINT_STYLE(strStyleName, varStyleValue)设置对象风格
- PREVIEW打印预览
- PRINT直接打印
- PRINT_SETUP打印维护
- PRINT_DESIGN打印设计
参考
- http://www.lodop.net/LodopDemo.html
-
JS调用打印机打印例子
2012-11-02 09:58:31JS调用打印机打印例子。直接调用打印插件打印。 -
web项目js调用斑马打印机打印二维码
2021-06-16 20:00:55项目(Web项目)功能中存在生成并打印二维码的功能,需要借助打印机打印出二维码。由于业务需求二维码需要打印在不干胶的材料上并可以进行粘贴,所以借助斑马打印机通过热敏不干胶纸进行打印。 需要结合所使用的的...斑马打印机打印二维码
项目(Web项目)功能中存在生成并打印二维码的功能,需要借助打印机打印出二维码。由于业务需求二维码需要打印在不干胶的材料上并可以进行粘贴,所以借助斑马打印机通过热敏不干胶纸进行打印。
- 需要结合所使用的的斑马打印机的型号,去官网下载相关的浏览器打印插件。(使用的是GT800型号,可以下载Browser Print)
下载适用于Windows PC的Browser Print,同时还可以下载javaScript库或者查看Browser Print产品支持。
下载完成后解压,得到安装包并进行安装。
安装完成后进行设置(产品支持中都已写明,具体可以查看官网的产品支持),主要设置打印机设备,如果此时打印机已经连接(打印机的连接,放纸,介质校正等官网都有详细视频),可以自动检测到设备。
2. 然后通过javaScript库的参考示例编写打印二维码的功能。//斑马打印机用 var selected_device; var errorCallback = function(errorMessage){ alert("Error: " + errorMessage); } //斑马打印机用 function setup() { //首先从应用程序中获取默认设备。 BrowserPrint.getDefaultDevice("printer", function(device) { //添加设备 selected_device = device; }, function(error){ alert(error); }) } setup(); //发送打印机ZPL Label var writeToSelectedPrinter = function(dataToWrite){ var printString = '^XA^JMA^LL450^PW700^MD0^PR3^PON^LRN^LH0,0^CI26^FO200,30^BQN,2,5^FDHM,B0200'+ dataToWrite + '^FS^XZ'; selected_device.send(printString, undefined, errorCallback); }
其中^BQN,2,10是指定二维码,指令格式如下:
^BQa,b,c
a代表二维码方向,默认是N
b代表二维码的版本,可选值有(1,2),1是原始版本,2是增强版本,推荐用2。
c代表二维码的放大程度,可选值(1-10)(注意二维码的打印还需要与 ^FD 配合,当我们使用 ^BQ 这个函数时,^FD 必须设置相关的参数 ^FDab , cd^FS)
a:错误纠正率,(H,Q,M,L)H是超高可靠度,L是高密度,建议使用H
b:数据输入模式,(A,M)A是自动模式(参数c可省略),M是手动模式(需要指定参数c的字符类型)
c:字符模式,N — 数字,A — 字符,B — 字节,K — Kanji(日文汉字)
d:二维码的内容
(具体的ZPL语言内容没有深度了解,仅供参考)其中的dataToWrite变量为生成的二维码信息并经过压缩和加密后的字符串。
- 然后根据需要进行二维码打印方法调用即可。
(注:开始使用的是GT800的打印机型号,且浏览器打印插件和JavaScript样例都是基于该型号下载的,但GT800已经停产,后更换的新款的ZD888桌面打印机,插件和代码同样适用)
- 需要结合所使用的的斑马打印机的型号,去官网下载相关的浏览器打印插件。(使用的是GT800型号,可以下载Browser Print)
-
web打印三种实现方式
2021-04-09 16:26:23web打印的方式可以分为3种:1、window.print()直接调用浏览器;2、利用js插件调用浏览器打印;3、利用第三方插件直接调用打印机。3种方式各有不同的使用场景和灵活度,接下来进行探讨比较web打印的方式可分为三种:
- 直接调用浏览器打印
- 通过javascript插件调用浏览器打印
- 通过第三方程序直接调用打印机
一、直接调用浏览器打印
通过在javascript代码中调用window.print()函数实现,浏览器会自动获取当前页面内容,并打开浏览器的打印预览页面。
使用场景:刚好当前页面的全部内容需要打印。
优点:兼容性好
缺点:适用场景狭窄;仅能识别内联样式,无法识别行内样式和外部样式
不推荐
二、利用第三方js库
比较推荐的是Print.js,目前GitHub上star最多的js打印控件,支持ES6,npm引入。
使用场景:只要没有直接打印的需求的场景,都可以使用这款插件
优点:
- 支持打印的类型多:PDF、HTML、IMAGE、JSON
- 支持行内样式与外联样式,再也不用在DOM元素上写满样式了
- 兼容性好,除了IE不支持PDF和IMAGE打印外,其余主流浏览器全部支持
缺点:
- 可能出现的样式异常
- 无法直接打印/静默打印,因为是调用chrome打印,还是会弹出打印预览页面
使用方法:
- 安装,npm方式:
npm install print-js --save
yarn方式:
yarn add print-js
2. 在需要使用的文件中引入:
import print from 'print-js'
3. 调用打印,以打印html为例,调用打印方法后浏览器会弹出打印预览页面:
import * as medicalStyle from '@/assets/style/eye/medical/standard.css' import print from 'print-js' ... /** * 打印方法 */ printMedical () { // 调用打印插件,配置项参考官网:https://printjs.crabbly.com/ print ({ // printable为需要打印的DOM的id printable: 'standard', // type为需要打印的类型 type: 'html', // css为样式文件或者直接css样式,支持导入整个css文件,或者css文件数组 css: medicalStyle, // 可选项,这样配置意味着应用所有导入的css文件 targetStyles: ['*'] }) }
三、利用第三方插件LODOP
LODOP是老牌打印插件了,功能十分强大,同时也在与时俱进,原先老版本是以插件形式提供打印服务,目前官方也发现随着浏览器不断更新,兼容性有问题,开发了新的C-Lodop程序,解决了浏览器的兼容问题,
适用场景:对打印有较多配置要求,尤其需要直接打印的场景
优点:
- 支持直接打印
- 支持打印类型丰富:HTML、TABLE、URL、TEXT、文档模板
- 配置项十分丰富,大到是否显示打印预览,小到分页设置、边框设置等等
- 兼容性好,除了兼容各类浏览器外,甚至还有LINUX版本
缺点:
- 直接打印功能需要付费解锁,但价格不算离谱,210RMB起
- 需要单独下载exe安装到电脑上,不过也没办法,能实现如此强大的打印功能,只有此途径
- 只支持内联样式,样式只能卸载DOM元素上
使用方法(window操作系统):
- 下载插件:
建议只安装红圈中云打印程序。更详细的区别请看官网的介绍文档
2. 将LodopFuncs.js拷贝至项目目录下,例如我是放在src/asserts/printPlugin目录下,在文件底部添加导出语句
3. 在页面中使用:
... // 导入打印插件 import { getLodop } from '@/assets/printPlugin/LodopFuncs' ... // 打印方法 printMedical () { // 获取打印对象 const LODOP = getLodop() // 打印初始化 LODOP.PRINT_INIT('打印任务名') // 设定纸张大小,指定需要打印的DOM元素 LODOP.ADD_PRINT_HTM(0, 0, '100%', '100%', document.getElementById('standard').innerHTML) // 执行打印-直接打印 LODOP.PRINT() }
以上是最简打印配置,有其他需要可以参考官方文档
-
Java调用打印机打印(远程、本地皆可用)
2021-01-14 15:15:43Java调用打印机打印(远程、本地皆可用)背景准备MAVEN环境步骤获取PrinterJob设置PrinterJob纸张样式打印PDF 背景 开发个Java项目需要远程调用共享打印机打印 准备 环境 内容 JDK 1.8.0_212 开发工具 ... -
VUE前端+Node后台模拟打印机Web即时打印
2022-06-26 20:54:49公司接到了这样一个用户需求,用户可以通过手机扫描打印机的二维码来打开打印机的 WebPage,然后可以通过 WebPage 来设定部分打印参数,并且可以向打印机发送打印文件,可以查看打印完毕的历史记录。由于打印机端的... -
web开发JS调用打印机打印Web页面
2013-06-09 16:34:02第一种方法:指定不打印区域 使用CSS,定义一个.noprint的class,将不打印的内容放入这个class内。 详细如下: .noprint{visibility:hidden} 要打印的内容。哈哈! 将不打印的代码放在这里... -
关于JS调用Adobe Reader ActiveX插件,在web环境下调用本地打印机执行静默打印的实现
2022-05-25 17:25:35web页面调用打印机 静默打印 -
资江小票打印机js实现web打印(web通用打印)
2018-09-04 19:45:19参数 默认值 接收值 描述 globalStyles true Boolean 是否包含父文档的样式 mediaPrint false Boolean 是否包含... 任何可用的jQuery选择器 不想打印的元素的jQuery选择器 iframe 默认true,如果没有iframe选择器被 -
调用斑马打印机实现标签打印
2020-04-01 15:25:33Java 调用斑马打印机实现标签打印代码实现 最近的一个项目中,需要实现java调用斑马的打印机实现标签打印功能,百度了一些资源,找了不少人搞了一台快报废的斑马105SL 300DPI打印机,分分钟就搞出来了,不过要想调试... -
使用java自带的方式调用打印机打印图片
2018-06-29 19:15:18功能描述: 在二手车项目中需要实现一个自动打印的功能。将打印的设置在java代码中写好,直接调用打印机打印,不需要有打印设置的页面。这里我使用的是Java自带的方式,一开始是打印pdf,但是由于公司的打印机不能... -
JS调用打印机打印Web页面
2012-12-05 16:27:36JS调用打印机打印Web页面 转载:http://hi.baidu.com/junwords/item/57c38665689cac2e69105bdc 第一种方法:指定不打印区域 使用CSS,定义一个.noprint的class,将不打印的内容放入这个class内。... -
如何通过Nw.js纯前端实现调用热敏打印机打印小票?
2019-02-18 10:40:591. 需求背景前段时间公司项目需要在商户电脑上调用商户自己的热敏打印机打印商户的客户的购物小票(如下图),但FE的纯js显然不能实现该功能,因此采用nw来实现。当时的项目已有一个web页面,因此在nw里将已有的html... -
H5网页调用58热敏小票打印机实现打印小票
2018-10-16 13:58:48在微信公众号和H5网页开发中,常常需要开发调用打印机进行小票打印操作,通常的做法是调用蓝牙打印机,但是蓝牙打印机由于蓝牙连接的原因,往往稳定性差,需要客户端配合才能发挥好的效果,另外蓝牙打印机距离受限制... -
java实现调用打印机代码详解
2021-02-25 20:14:55PrintService 描述了打印机的功能,并可查询它来了解打印机支持的属性。import java.io.File;import java.io.FileInputStream;import javax.print.Doc;import javax.print.DocFlavor;import javax.print.DocP... -
c# 调用打印机
2017-10-20 20:26:001.本地打印机 //添加引用并using System.Management; public static void AvailablePrinters() { ManagementScope ms = new ManagementScope(ManagementPath.DefaultPath); ms. -
JavaWeb开发,使用js调用打印机打印页面
2018-01-16 15:59:31首先,在html中,通过star和end来标记...h1>这块内容不需要打印h1> div class="content"> 这里是需要打印的内容 ..... div> h1>这块内容不需要打印h1> 然后,在点击事件中添加如下代码 -
JAVA调用系统打印机打印字符串
2021-03-10 03:05:41用java实现打印,java.awt中提供了一些打印的API,要实现打印,首先要获得打印对象,然后继承Printable实现接口方法print,以便打印机进行打印,最后用用Graphics2D直接输出直接输出。 下面代码实现了简单的打印功能... -
一种基于浏览器的自动小票机打印实现方案(js版)
2020-10-21 21:12:24主要介绍了一种基于浏览器的自动小票机打印实现方案(js版)的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下 -
TSC打印机,利用javascript实现连续扫码自动打印,配置说明
2019-07-26 13:49:51TSC打印机,利用javascript打印配置说明 页面预览: 页面代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <... -
JS调用打印机
2018-05-14 16:34:24第一种方法:指定不打印区域使用CSS,定义一个.noprint的class,将不打印的内容放入这个class内。详细如下:<style media=print type="text/css"> .noprint{visibility:hidden} </... -
electron-react对接打印机 实现打印功能
2021-06-24 16:08:18electron-react实现打印功能思路主线程设计思路渲染进程设计思路 ...第二种方法是在使用electron的主线程调用webContents.print()方法,这个方法相对比较复杂,主线程和渲染线程直接需要通信。 流程如下: 主线程 : -
Web Html 分页、表格跨页断裂处理、自定义页眉页脚页码打印控件
2020-10-11 21:50:47Web打印控件,完美解决以下HTML打印难题 1.Web Html 分页打印 2.内容、图片、表格跨页断裂,封边 3.table并行、并列双边、重边 4.自动计算页码(总数及每一页),样式、位置、形式完全个性化 5.页眉页脚,去除浏览... -
php如何实现热敏58mm小票打印机打印?
2021-07-03 18:56:40用php开发的后台管理...同时也是一款任意网络终端皆可上传打印数据,经云打印服务器下发给打印机自动打印的打印机。 莫慌莫慌~优声云打印机来帮你解决所有难题 具备开发能力的软件开发商通过优声云打印机发布的AP -
打印功能是后端接口实现还是前端可以调用浏览器的打印组件
2021-09-02 16:35:56打印功能应该前端就可以实现吧。不需要后端专门写接口吧。 快解答一下 -
针式打印机的页面打印设置小技巧解析
2020-12-22 19:33:30针式打印机的页面打印设置小技巧解析针式打印机受进纸方式制约,进纸时,都要卷入一小段,固定纸张,这一...如果你的页面设置打印面积大于纸张实际可用长度,打印机就会自动将本页未打印完的内容排到下一页。有些是... -
ARM-LINUX平台下的文本文件打印机打印
2021-10-07 17:12:09一、前言 在前段时间构建打印系统的过程... 在计划最后,还准备实验佳能公司打印机,会编写单独的实验报告,本文档不会详细介绍。 二、ARM-LINUX平台下实现文本文件打印方案 根据前期工作,已明确使用Ghostscript...
-
asp.net <em>web打印</em>控件asp.net <em>web打印</em>控件asp.net <em>web打印</em>控件
-
jatoolsPrinter ,免费的<em>web打印</em>工具(兼容j2ee及.net的<em>web打印</em>工具)jatoolsPrinter通过在网页中嵌入控件,解决了<em>web</em>客户端精确<em>打印</em>,批量<em>打印</em>,<em>打印</em>配置<em>自动</em>保留等问题
-
GoldPrinterV2.5源码.rarC#<em>打印</em>控件源码,针对<em>打印</em>控件的处理情况 ,能够实现相关的控件<em>打印</em>
-
第三代移动<em>WEB</em>内核小程序风口-逐浪CMS2 x3.9.3全面发布■扩展:支持<em>打印</em>份数,与USB<em>打印机</em> ■按需扩展金赣物联网远程视频与数据监控模块。 ■增加:PayPal即时到账支付 ■增加:初步重写了CRM模块 ■扩展:
-
DataGrid、DataGridView及二维数据如ListView等终极<em>打印</em>实现通过核心的<em>打印</em>二维网格的程序,无论你用的是VS.NET2003还是2005,DataGrid、DataGridView网格、ListView、DataTable等等二维数据,通通<e