【错误还原】Lodop多张空白页测试2

【错误还原】Lodop多出空白页测试
上面这个链接是以前的一个超文本自动分页,最后却出现了空白页的问题。
该问题产生的原因是,超文本中有不可见内容,所以占了空间,导致分出了空白页。
 
此问题可以通过给超文本加背景色,或者排查超文本内容解决。
若空白页出现背景色,说明有不可见内容。
----------
最近测试发现了一个可以产生空白页的方法:内容偏移出纸张。
正常代码,内容都在纸张里,一共只有一页:
  LODOP.PRINT_INIT("");
  LODOP.SET_PRINT_PAGESIZE(0,400,400,"");
  LODOP.ADD_PRINT_TEXT(10,10,260,39,"打印内容");     
  LODOP.PREVIEW();
 
然而,如果内容偏移出纸张,就可能导致空白页,有内容,但是已经偏移出纸张的范围内,导致有多个空白页。
PRINT_INITA的前两个参数可以设置所有打印项的整体偏移值,PRINT_INITA 参数第一个top整体偏移的上边距,第二个left整体偏移的左边距。
如果打印项都偏移出了纸张,可能造成空白页。
 
空白页代码,内容偏移出了纸张:
  LODOP.PRINT_INITA("40mm","40mm","40mm","40mm","");
  LODOP.SET_PRINT_PAGESIZE(0,400,400,"");
  LODOP.ADD_PRINT_TEXT(10,10,260,39,"打印内容");     
  LODOP.PREVIEW();
如下图,INITA前两个偏移值40mm,距顶边,距左边,都偏移了40mm,而纸张本身是400X400(也就是40mmX40mm,纸张默认单位是0.1mm),因此所有打印项都偏移出了纸张外,造成了两张空白页的现象。
 
打印设计随意拖动纸钉引起
在打印设计界面,移动打印设计的可视化编辑区域就是偏移,通常情况下左上角的纸钉是固定的,但是点击可以解锁,之后可以拖动可视化编辑区域。
如果有人设置的纸张较小,左上角一块编辑区域不好看,然后把纸钉钉在中间位置,这时候查看生成的代码会发现会产生偏移值,内容偏移出了纸张,可能就是空白页了。
如果只是向左偏移,不会分页成多张空白页会显示一页空白。

 
然而如果整体偏移到下方,就会根据打印项偏移超出的高度,分页成多个空白页。
单位:
PRINT_INITA,默认单位是px。
SET_PRINT_PAGESIZE,默认单位0.1mm。
如果要使用其他单位,需要用""字符串,字符串的时候单位不能省略。
PRINT_INITA(前两个参数是整体偏移,后两个是打印设计的可视化编辑区域大小)四个参数的默认单位是px,缺省长度单位为px,打印设计界面拖动纸钉生成前两个偏移的单位是px。
SET_PRINT_PAGESIZE(第二三参数是纸张大小),纸张宽高的参数默认是01.mm,缺省长度单位为0.1mm。
单位换算,参考样例29 http://www.c-lodop.com/demolist/PrintSample29.html
这里的px不是像素,是绝对长度单位,1px等于1/96英寸,与正常DPI显示设置的像素值相等。
如果是超文本中设置的css样式等,如果使用px等像素单位就可能会受一些分辨率之类的影响。

(1)PRINT_INITA偏移,不要偏移出纸张。偏移出纸张,可能造成一页空白,或多张空白页。

(2)如果不要偏移,在打印设计界面不要随意移动纸钉。

感谢:http://blog.sina.com.cn/s/blog_157ebf1370102wvss.html

lodop多打印一页白纸的更多相关文章

  1. LODOP批量打印多页模版进行维护

    批量打印的时候,可以循环多任务,也可以循环多页,很多的时候也可以分页分任务,分组打印.如果是一个任务里的多页相同的模版,一个任务中会有很多打印项,这些打印项在每页中的位置是相同的,如果要调整,调整结果 ...

  2. lodop打印多页

    定义全局变量 var loop = null; 加载时候打印 window.On_CLodop_Opened = function () { print(); //OpenPreview()是调用打印 ...

  3. 关于JavaScript打印去掉页眉页脚

    因为这个问题,Google和百度都查了个遍,网上主要解决方案都是这一个代码: <script language="JavaScript"> var hkey_root, ...

  4. C# 打印多页tif

    注意点: 1.计算image对象总页数 image.GetFrameCount(FrameDimension.Page); 2.初始化当前页,并获取指定页内容 image.SelectActiveFr ...

  5. IE浏览器打印的页眉页脚设置解决方法

    首先说明问题: 默认情况下,通过IE的打印对话框,打印出来的内容都有页眉和页脚的. 查看ie的页面设置发现如右图中,页眉页脚 下面先说明&w&bPage&p of &P ...

  6. Excel设置excel打印每页都有表头标题

    Excel设置excel打印每页都有表头标题

  7. Lodop调整打印项输出顺序 覆盖与层级

    Lodop中的打印项,如果有输出在同一位置,或部分位置重叠的地方,打印项之间是怎么覆盖的呢?在JS里,按照Lodop语句打印项先后的执行顺序,先执行的先输出,后执行的后输出,如果有后面的打印项和前面的 ...

  8. FastReport 打印模版页(TFrxReportpage)复制

    遇到一个奇葩的需求.一般情况下我们打印单据,用FastReport设置打印格式,也就是就设一个模版页而己,就是一种单据格式.如果打印的单据数据多了就自动打印多页了,他们的格式是一样的.也就是读同一个模 ...

  9. 【转】C#使用PrintDocument打印 多页 打印预览

    PrintDocument实例所有的订阅事件如下: 创建一个PrintDocument的实例.如下: System.Drawing.Printing.PrintDocument docToPrint ...

随机推荐

  1. Git与SVN版本控制系统

    关于版本控制 什么是版本控制?版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统.在本书所展示的例子中,我们仅对保存着软件源代码的文本文件作版本控制管理,但实际上,你可以对任 ...

  2. (转)OL2中设置鼠标的样式

    http://blog.csdn.net/gisshixisheng/article/details/49496289 概述: 在OL2中,鼠标默认是箭头,地图移动时,鼠标样式是移动样式:很多时候,为 ...

  3. Dijkstra算法模板

    自己对Dijstra算法的理解是: 首先输入保存点,边的权值(注意无向图和有向图在保存时的区别). 将表示从起点st到顶点 i 的距离的d[ i ]数组的每一个值初始化为INF,令d[st] = 0. ...

  4. 【模板】非旋转Treap

    Treap,也叫做树堆,是指有一个随机附加域满足堆的性质的二叉搜索树. 如果一棵二叉搜索树插入节点的顺序是随机的,那我们得到的二叉搜索树在大多数情况下是平衡的,期望高度是log(n). 但有些情况下我 ...

  5. 8.1.3 Row对象

    假设数据以下面的方式创建并插入数据: import sqlite3 conn = sqlite3.connect(r'D:\test.db') c = conn.cursor() c.execute( ...

  6. [HZOJ10420]计算

    [HZOJ10420]计算 题目 给定一个数列,第i个位置包含两个数ai,bi 每次询问给出x,y 求数列ai*x+bi*y的最大值 输入所有数为自然数,在int范围内 INPUT 第一行为n,m.n ...

  7. BZOJ1443 游戏game (二分图染色+匈牙利算法)

    先对整幅图进行二分图染色,再跑一遍匈牙利算法.如果最大匹配数=点数*2,那么输出WIN. 对于任何一个非必须在最大匹配上的点,即为所求的点. Program Test375num2; type arr ...

  8. POJ 3252 Round Numbers 组合数学

    Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 13381   Accepted: 5208 Description The ...

  9. P1464 Function 洛谷

    https://www.luogu.org/problem/show?pid=1464 题目描述 对于一个递归函数w(a,b,c) 如果a<=0 or b<=0 or c<=0就返回 ...

  10. 记一次ruby的安装

    1,下载rubyinstall 安装包及devkit包 登陆网站 :http://rubyinstaller.org/downloads/ 安装rubyinstall包时添加到环境变量 2,安装完in ...