07月12, 2016

记lodop的分页打印

打印控件比较多,但我想比较流行的应该是lodop吧。起码我上家公司,还有这家公司都在用。

昨天老大让我跟一个bug,案例类似表格分页打印。在项目中,需要打印多条记录,最终打印的结果是有些头消失不见了。猜想是:

LODOP.SET_PRINT_STYLEA(0,"LinkedItem",1);

所引起来的。

于是找之前的demo页开始调试。我一般不喜欢直接下载源码调,所以方式就有了以下两种:

  • 用Fiddler等抓包工具,然后替换成本地的文件。
  • 自己拷贝函数,修改函数名,自己触发

因为替换HTML文件比较麻烦,相关的js、css如果没有写绝对路径,那么就会变成请求本地的了。因此我选择了第二种方案。

截图1

一开始我比较困惑的是,为什么上面是1,下面是4。

于是把下面的参数改为2,发现打印的结果就有问题了,改成3也一样。

查了一下相关资料:

“LinkedItem”的值: 整数或字符型,字符型代表被关联项的项目名,整数代表被关联项的序号,如果是负数,代表当前对象,例如-1代表前一个对象,-2代表前面隔一个对象,使用-1时可以用同一个语句连续顺序关联一串对象。 内容项与别人关联后,会紧跟被关联者之后打印,位置和区域大小随被关联项而定,此时其Top和left不再是上边距和左边距,而是与关联项的间隔空隙及左边距偏移。如果关联者是页眉页脚对象,那么不会每页输出,仅与被关联对象同页输出。此时输出的位置与被关联对象的位置相对固定,也就是当上边距小于被关联对象的上边距时,那么其起点位置会与被关联者的上边线保持设计时的距离,否则与被关联对象的下边线保持设计时的距离。

一脸茫然,后来和之前的同事交流了一下,才知道这个和前面添加了几个打印机项有关。

截图1

那么问题就好解决了。在循环的时候,这个值就是一个变量,它取决于中间你调用了多少次的ADD_PRINT_xxx的方法。

本文链接:www.my-fe.pub/post/about-lodop.html

-- EOF --

Comments

评论加载中...

注:如果长时间无法加载,请针对 disq.us | disquscdn.com | disqus.com 启用代理。