Lodop打印

参考

官方网站:https://www.lodop.net/index.html

官方文档:https://www.lodop.net/LodopDemo.html

官方问答:常见问答列表

官方博文:博文摘录

推荐博客:博客园-花谢悦神

注意事项

Lodop并非完全免费。

当你的程序采用预览打印语句(如PREVIEW、PREVIEWA等)且预览窗口正常大小时,是完全免费的,输出结果没有水印。

仅当采用直接打印语句(如PRINT、PRINTA等)或预览窗口过小时,打印结果的左下角会出现水印。要去掉水印需要按如下途径购买Lodop控件注册号并同时获得更多权益:http://www.c-lodop.com/Lodop_Lic.html

Lodop API整理

单位

Lodop函数的许多参数可声明使用in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸)等绝对长度单位,其中部分函数(数据区域)的计量单位还可以使用百分比%,这类值是相对于纸张宽或高的比率。例如:

ADD_PRINT_RECT("0%","0%","100%","100%",0,1);
这行语句的参数含义是:矩形的上边距和左边距是0,其宽高与纸张的宽高100%一致。

任务名称

1
LODOP.PRINT_INIT(taskName)

不同打印任务,打印任务名称不能相同,会相互干扰,参考:

https://www.lodop.net/faq/pp17.html

https://www.lodop.net/faq/pp9.html

设置纸张大小

https://www.lodop.net/demolist/PrintSample5.html

1
SET_PRINT_PAGESIZE(intOrient,intPageWidth,intPageHeight,strPageName)
  • intOrient:打印方向及纸张类型
    • 1—纵向打印,固定纸张;
    • 2—横向打印,固定纸张;
    • 3—纵向打印,宽度固定,高度按打印内容的高度自适应(见样例18);
    • 0—方向不定,由操作者自行选择或按打印机缺省设置。
  • intPageWidth: 纸张宽,单位为0.1mm 譬如该参数值为45,则表示4.5mm,计量精度是0.1mm。
  • intPageHeight:固定纸张时该参数是纸张高;高度自适应时该参数是纸张底边的空白高,计量单位与纸张宽一样。
  • strPageName:纸张类型名,intPageWidth等于零时本参数才有效,具体名称参见操作系统打印服务属性中的格式定义。关键字“CreateCustomPage”会在系统内建立一个名称为“LodopCustomPage”自定义纸张类型。

分页NewPage和NewPageA的区别

NewPageA和NewPage使用特性区分

当前面的对象是一页时,两个效果是一样的;当前面的对象是多页时有差异。
例如,前面的对象占3页时,NEWPAGE是从第2页开始,NEWPAGEA是从第4页开始。如果是位置重复的话,用NEWPAGE就覆盖了,位置不重复,就并列输出,NEWPAGEA是顺序输出。

其他

打印模糊问题

如果使用ADD_PRINT_HTML(图形模式),换成ADD_PRINT_HTM(普通模式)试试。ADD_PRINT_HTML(图形模式)适合高精度的图文打印机,有的打印机会模糊。

连续打印

例如:打印多行多列资产标签

思路:一行当做一张纸,一行能打印n个标签,每次打印标签控制打印起始点top left

参考:打印连续的纸张

打印常见名词解释

“横向打印”含义

https://www.lodop.net/blogs/Blog010.html

正确理解打印预览的虚线

http://www.c-lodop.com/faq/pp26.html