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/ ...
随机推荐
- 0008SpringBoot中的spring.config.location对于运维的用处
在工作过程中,若项目已经打好包,application.properties中的配置文件已经不能修改,但是还是需要修改一些参数或者新增一些参数的情况下怎么办? 可以单独再定义一个配置文件,比如定义名称 ...
- 快速排序Quick_Sort
快排——排序中的明星算法,也几乎是必须掌握的算法,这次我们来领略以下快排为何魅力如此之大. 快排主要有两种思路,分别是挖坑法和交换法,这里我们以挖坑法为例来进行介绍,交换法可以参考这篇博文.值得一提的 ...
- linux实操_shell系统函数
basename函数: 功能:返回完整路径最后/的后面部分,常用于获取文件名. 基本语法: basename 路径 后缀 不加后缀:运行后 加后缀:运行后 dirname函数: 功能:返回完整路径最后 ...
- P5043【模板】树同构([BJOI2015]树的同构)
思路:树哈希 提交:1次 题解: 怕不是用的oi-wiki上的公式: \[f_u=size_u\times\sum f_{son_{u,i}}\times Base^{i-1}\] #include& ...
- [Luogu P4145] 上帝造题的七分钟2 / 花神游历各国
题目链接 题目简要:我们需要一个能支持区间内每一个数开方以及区间求和的数据结构. 解题思路:说道区间修改区间查询,第一个想到的当然就是分块线段树.数据范围要用long long.本来我是看到区间这两个 ...
- 分布式锁的三种实现方式 数据库、redis、zookeeper
版权声明: https://blog.csdn.net/wuzhiwei549/article/details/80692278 一.为什么要使用分布式锁 我们在开发应用的时候,如果需要对某一个共享变 ...
- char 类型的数组转换到CSting
首先,字符串“abc”在CString的保存格式是‘a’,'\0','b','\0','c','\0','\0','\0'; 从中可以看出它是以‘\0’,'\0',结束的. 当char ch[6]: ...
- 在Android中使用OpenGL ES开发第(五)节:GLSL基础语法
一.前期基础储备笔者之前的四篇文综述了Android中使用OpenGL ES绘制基本图形和实现了简单的相机预览,初次接触OpenGL ES开发的读者可能对其中新的概念比较迷惑,尤其是其中的顶点着色器( ...
- String 类型的数据强转成int的方法
有2个方法:1). int i = Integer.parseInt(str); 2). int i = Integer.valueOf(str).intValue();
- 调皮捣蛋的Linux下有趣终端的合集
*本文作者:国光,转载自 FreeBuf.COM,原文地址:https://www.freebuf.com/news/144050.html 前言 刚开始接触Linux的我们,肯定认为Linux系统就 ...