LODOP纸张高度不定的纯文本累计高度
小票由于纸张没有确定的高度,根据内容多少,小票打印机出多少纸,在设置纸张的时候,需要把纸张设置成不定高的纸张。
简短问答:
小票打印 ,参考样例18 http://www.c-lodop.com/demolist/PrintSample18.html
(小票针式打印 建议用 ADD_PRINT_TEXT文本,不用htm超文本,纸张高度不定容易引起 htm 中排版变形)
小票一般内容简短,有文本线条二维码条码之类的都可能,可以直接用纯文本进行设计,纯文本不会像超文本一样受浏览器解析的影响,(关于纯文本和超文本 相关博文:LODOP中的纯文本和超文本打印项)
小票出纸的高度是怎么确定的呢:是由以下几个数值的合计组成的
高度1:打印项的上边距
高度2:打印项和打印项之间的距离
高度3:打印项本身的高度
高度4:纸张语句设置的下方留白高度
PS:如果有虚线可打区域,或整体偏移值,也会受这些的影响(可打区域相关博文:LODOOP中的各种边距 打印项、整体偏移、可打区域、内部边距、Lodop打印控件打印机可打区域的影响 设置纸张边缘为基点、LODOP中预览界面查看打印机的可打区域具体值)
例如:如图,测试代码用到的打印项:两个纯文本,两个实心矩形。(实心矩形和纯文本宽高一致,由于纯文本没有背景色的设置,默认无背景色,这里用实心矩形当作背景色可以更直观的查看到文本项本身的宽高区域。)
情况1:第一个项实心矩形顶边距为0,高度为60。(第一个纯文本同样高和顶边距)
第二个项实心矩形顶边距为60,高度为60.(第二个纯文本同样高和顶边距)
设置纸张不定高,下方留白高度为0。
效果:纸张高度为120,为两个打印项的高度60+60之和。
情况2(测试内容超出):第一个项实心矩形顶边距为0,高度为60。(第一个纯文本同样高和顶边距)
第二个项实心矩形顶边距为60,高度为60.(第二个纯文本同样高和顶边距)
设置纸张不定高,下方留白高度为0。
效果:纸张高度为两个打印项的高度60+60之和。
相关博文:LODOP打印超过后隐藏内容样式
由相关博文可知,纯文本超过打印项高度会隐藏,由情况1,可知打印项高度会影响纸张的高度,如情况1,两个文本项之间存在间距,这间距是打印项高度造成的。
一般小票比较简单,内容就是商品和价格,估计最大的文本的值,设计合适的宽高,如果商品名字很长,宽高不够,会隐藏后面的内容。
情况:3:第一个项实心矩形顶边距为10,高度为60。(第一个纯文本同样高和顶边距)
第二个项实心矩形顶边距为80,高度为60.(第二个纯文本同样高和顶边距)
设置纸张不定高,下方留白高度为60。
效果:纸张高度为顶边距10+打印项高度60+两个纯文本打印项的间隔(80-60-10)+第二个打印项高度60+下方留白60
也就是纸张高度=打印项高度累计+打印项间隔高度+顶边距+底边距(下方留白),无整体偏移可打区域等情况下。
测试代码的宽度设定的好像有差异,不过这里演示不定高,和高度有关,宽度就不改了,因为之前截好图了。
具体效果如图:
测试代码:
<a href="javascript:prn1_preview()">打印项高度(无边距)</a><br>
<a href="javascript:prn2_preview()">打印项高度内容超出(无边距)</a><br>
<a href="javascript:prn3_preview()">打印项高度内容超出(有上下边距)</a><br>
<script language="javascript" type="text/javascript">
var LODOP; //声明为全局变量
function prn1_preview() {
LODOP=getLodop();
LODOP.PRINT_INIT("");
LODOP.SET_PRINTER_INDEX("Microsoft XPS Document Writer");//指定某虚拟打印机
LODOP.SET_PRINT_PAGESIZE(3,1385,0,"");//这里3表示纵向打印且纸高“按内容的高度”;1200表示纸宽138.5mm;0表示页底空白0mm
LODOP.ADD_PRINT_SHAPE(4,0,0,119,60,0,1,"#0080FF");//实心矩形,上左边距都是0,宽119,高 60.
LODOP.ADD_PRINT_SHAPE(4,60,0,119,60,0,1,"#80FF80");//实心矩形,上边距都是60,宽119,高 60.
LODOP.ADD_PRINT_TEXT(0,0,119,60,"新加文本1");
LODOP.ADD_PRINT_TEXT(60,0,119,60,"新加文本1");
LODOP.PREVIEW();
};
function prn2_preview() {
LODOP=getLodop();
LODOP.PRINT_INIT("");
LODOP.SET_PRINTER_INDEX("Microsoft XPS Document Writer");//指定某虚拟打印机
LODOP.SET_PRINT_PAGESIZE(3,1200,0,"");//这里3表示纵向打印且纸高“按内容的高度”;1200表示纸宽138.5mm;0表示页底空白0mm
LODOP.ADD_PRINT_SHAPE(4,0,0,119,60,0,1,"#0080FF");//实心矩形,上左边距都是0,宽119,高 60.
LODOP.ADD_PRINT_SHAPE(4,60,0,119,60,0,1,"#80FF80");//实心矩形,上边距都是60,宽119,高 60.
LODOP.ADD_PRINT_TEXT(0,0,119,60," Lodop(标音:劳道谱,俗称:露肚皮)是专业WEB控件,用它既可裁剪输出页面内容,又可用程序代码直接实现复杂打印。控件功能强大,却简单易用,所有调用如同JavaScript扩展语句,主要接口函数如下:");
LODOP.ADD_PRINT_TEXT(60,0,119,60," Lodop(标音:劳道谱,俗称:露肚皮)是专业WEB控件,用它既可裁剪输出页面内容,又可用程序代码直接实现复杂打印。控件功能强大,却简单易用,所有调用如同JavaScript扩展语句,主要接口函数如下:");
LODOP.PRINT_DESIGN();
};
function prn3_preview() {
LODOP=getLodop();
LODOP.PRINT_INIT("");
LODOP.SET_PRINTER_INDEX("Microsoft XPS Document Writer");//指定某虚拟打印机
LODOP.SET_PRINT_PAGESIZE(3,1385,60,"");//这里3表示纵向打印且纸高“按内容的高度”;1200表示纸宽138.5mm;60表示页底空白6mm
LODOP.ADD_PRINT_SHAPE(4,10,0,119,60,0,1,"#0080FF");//实心矩形,上左边距都是0,宽119,高 60.
LODOP.ADD_PRINT_SHAPE(4,80,0,119,60,0,1,"#80FF80");//实心矩形,上边距都是60,宽119,高 60.
LODOP.ADD_PRINT_TEXT(10,0,119,60,"新加文本1");
LODOP.ADD_PRINT_TEXT(80,0,119,60,"新加文本1");
LODOP.PREVIEW();
};
</script>
图示:
注意单位的不同,PAZESIZE的默认缺省单位是0.1mm,打印项的默认缺省单位是px。

LODOP纸张高度不定的纯文本累计高度的更多相关文章
- LODOP中纸张高度不定超文本和纯文本对比
关于纸张高度不定的小票打印,建议使用纯文本进行设计,避免纸张高度引起变形,或超文本解析差异造成一些影响:LODOP纸张高度不定的纯文本累计高度 上面的链接的博文里,纯文本可通过间距和高度值累计,得出最 ...
- Lodop纯文本英文-等符号自动换行问题
ADD_PRINT_TEXT纯文本,宽度不够,高度足够,超宽会自动换行,高度不够会隐藏后面的内容.在超宽自动换行的时候,如果有-或()之类的,英文单词不拆分,或其他一些认为是不拆分的情况,会造成还没有 ...
- LODOP中的纯文本和超文本打印项
LODOP中的的打印项,有超文本也有纯文本,超文本指的是用html语言,html里的标签为值的打印项,该种打印项会经过浏览器解析,LODOP本身不带解析超文本的引擎,调用的windows底层引擎,与i ...
- Lodop打印控件输出页码(超文本和纯文本页码)
Lodop打印控件打印超文本既可以手动分页,也可以自动分页,自动分页可阅读本博客的另一篇博文:Lodop打印控件 超文本自动分页 自动分页的时候,往往是不知道需要打印的内容到底分了几页,也就不可能预先 ...
- 计算纯文本情况下RichTextBox实际高度的正确方法(.NET)
2016-07-17重大更新 其实有更好.更系统的方法,也是最近才发现的,分享给大家!! /// <summary> /// /// </summary> ...
- 使用div模拟textarea,实现文本输入框高度自适应(附:js控制textarea实现文本输入框高度自适应)
一.使用textarea标签进行多行文本的输入有很多限制,比如不能实现高度自适应,会出现难看的滚动条等问题. HTML5中添加了一个新属性contenteditable,该属性可以让input,tex ...
- 纯文本抽出程序库DMC TEXT FILTER
因需而生,红樱枫为文本转换市场领航 --纯文本抽出程序库DMC TEXT FILTER,从需求中把握平衡 在高度数字化的今天,数字图书馆已经成为非常多人查询资料的有效途径.然而即使在畅通的宽带搜寻中一 ...
- 小tip: 如何让contenteditable元素只能输入纯文本
div模拟textarea文本域轻松实现高度自适应 这篇文章发布于 2010年12月23日,星期四,22:07,归类于 css相关. 阅读 112630 次, 今日 40 次 by zhangxinx ...
- 限制可编辑div只能输入纯文本
本博客转载自张鑫旭大神的一篇文章:小tip: 如何让contenteditable元素只能输入纯文本,原文地址:http://www.zhangxinxu.com/wordpress/2016/01/ ...
随机推荐
- 2018/7/31-zznu-oj- 2128: 素数检测 -【费马小定理裸应用】
2128: 素数检测 时间限制: 1 Sec 内存限制: 128 MB提交: 84 解决: 32[提交] [状态] [讨论版] [命题人:admin] 题目描述 在算法竞赛中你会遇到各种各样的有关 ...
- WordCount--实现字符,单词,代码统计
Github: https://github.com/whoNamedCody/WordCount PSP表格 PSP2.1 PSP阶段 预估耗时 (分钟) 实际耗时 (分钟) Planning 计 ...
- 「Django」Django内置email发送邮件
Django内置email发送邮件 1.首先在settings.py文件设置相关参数 STATIC_URL = '/static/' # 设置邮件域名 EMAIL_HOST = 'smtp.163.c ...
- 基于Flask和百度AI实现与机器人对话
实现对话机器人主要有个步骤 : 一.前端收集语音传入后端 二.后端基于百度AI接口进行语音识别,转换成文字 三.对文字进行自定义验证或通过图灵端口进行处理,生成回复内容 四.将文字通过百度AI接口合成 ...
- JavaEE企业面试问题之JavaWeb
2.Javaweb阶段 2.1 Ajax你以前用过么?简单介绍一下 AJAX = 异步 JavaScript 和 XML. AJAX 是一种用于创建快速动态网页的技术. 通过在后台与服务器进行少 ...
- Codeforces Round #599 (Div. 2) A,B1,B2,C 【待补 D】
排序+暴力 #include<bits/stdc++.h> using namespace std; #define int long long #define N 1005000 int ...
- 【基础算法-ST表】入门 -C++
前言 学了树状数组看到ST表模板跃跃欲试的时候发现完全没思路,因为给出的查询的时间实在太短了!几乎是需要完成O(1)查询.所以ST表到底是什么神仙算法能够做到这么快的查询? ST表 ST表是一个用来解 ...
- 数据库学习之一--DBMS种类
一.定义 数据库(DB):数据库是将大量数据保存尔来,通过计算机加工而成的可以进行高效访问的数据集合: 数据库管理系统(DBMS):是一种操纵和管理数据库信息的大型管理软件,用于建立,使用和维护数据库 ...
- GAN生成式对抗网络(二)——tensorflow代码示例
代码实现 当初学习时,主要学习的这个博客 https://xyang35.github.io/2017/08/22/GAN-1/ ,写的挺好的. 本文目的,用GAN实现最简单的例子,帮助认识GAN算法 ...
- 2019.6.28 校内测试 T1 Jelly的难题1
这题面有点难理解,建议直接跳到题意解释那一部分(虽然我觉得解释的不大对,但按照解释来做确实能AC): 按照“题意解释”的思路来思考这个题,那么就十分的简单了: 1.首先要读入这个字符矩阵,可以用cin ...