LODOP控制打印项水平居中,可以用如下语句,该语句控制的是打印项本身在纸张中水平居中。
LODOP.SET_PRINT_STYLEA(0,"Horient",2);
这个根据大的打印项本身的宽度,如果打印项本身内部不是居中的,那么加了这句,内容也不会居中。

之前有博文介绍过打印项在纸张中受到的各种边距:
LODOOP中的各种边距 打印项、整体偏移、可打区域、内部边距

例如,打印项的左边距,是指打印项与纸张之间的距离,打印项内部如果也有左边距,例如样式等造成的,那么打印项内容和纸张之间的距离,就不是单纯的额打印项左边距,而是打印项左边距加上内容内部的左边距。
同理,打印项水平居中这个样式,也会受打印项宽度的影响。

其他:此文不再对整体偏移和可打区域做解释,LODOP不同打印机出现偏移问题,注意在实际代码里不要设置整体偏移,可针对不同客户端进行打印维护整体偏移,调整结果只对客户端本地本机影响。Lodop打印维护PRINT_SETUP本地缓存ini文件

代码:
1.第一页的打印项是 根据实际超文本打印项宽度设置的打印项宽度,所以设置打印项在纸张中水平居中后,打印项大致是在纸张中水平居中的。
2.第二页打印项 打印项宽度设置比实际打印项内容的宽度要大一些,如图中的打印设计,进入打印设计后,选中该超文本打印项,可以看到右侧有空白部分。所以设置打印项在纸张中水平居中后,打印项虽然在纸张中水平居中了,但是打印项中的内容没有针对纸张居中。

  1. <head>
  2. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  3. <title>WEB打印控件LODOP</title>
  4. <script language="javascript" src="LodopFuncs.js"></script>
  5. </head>
  6. <body>
  7. <div id="div1"><!--一个三行三列的table表格-->
  8. <table width="300" border=1 style="border:solid 1px black;border-collapse:collapse" bgcolor="#5dd2e3">
  9. <tr>
  10. <td width="100">lodop</td>
  11. <td width="100">c-lodop</td>
  12. <td width="100">c-lodop</td>
  13. </tr>
  14. <tr>
  15. <td width="100" >text</td>
  16. <td width="100">html</td>
  17. <td width="100">html</td>
  18. </tr>
  19. <tr>
  20. <td width="100">lodop</td>
  21. <td width="100">c-lodop</td>
  22. <td width="100">html</td>
  23. </tr>
  24. </table>
  25. </div>
  26. </div>
  27. <a href="javascript:prn1_dg()">打印设计查看打印项</a><br>
  28. <a href="javascript:prn2_preview()">打印预览2</a><br>
  29. <script language="javascript" type="text/javascript">
  30. var LODOP; //声明为全局变量
  31. function prn1_dg() {
  32. LODOP=getLodop();
  33. LODOP.PRINT_INIT("");
  34. LODOP.SET_PRINT_PAGESIZE(1,1200,500,"");
  35. LODOP.ADD_PRINT_HTM(25,30,411,90,document.getElementById("div1").innerHTML);
  36. LODOP.SET_PRINT_STYLEA(0,"Horient",2);
  37. LODOP.PRINT_DESIGN();
  38. };
  39. function prn2_preview() {
  40. LODOP=getLodop();
  41. LODOP.PRINT_INIT("");
  42. LODOP.SET_PRINT_PAGESIZE(1,1200,500,"");
  43. LODOP.ADD_PRINT_HTM(25,30,300,90,document.getElementById("div1").innerHTML);
  44. LODOP.SET_PRINT_STYLEA(0,"Horient",2);
  45. LODOP.NEWPAGE();
  46. LODOP.ADD_PRINT_HTM(25,30,411,90,document.getElementById("div1").innerHTML);
  47. LODOP.SET_PRINT_STYLEA(0,"Horient",2);
  48. LODOP.PREVIEW();
  49. };
  50. </script>
  51. </body>

图示:
1.超文本打印项宽度是实际的内容的宽度。
2.超文本打印项宽度不是实际的内容宽度,打印项内部存在空白区域。
设置打印项相对于纸张水平居中后,第二个宽度较大的,内容不会相对于纸张居中。

ADD_PRINT_TEXT纯文本中,内容在文本框中默认是居左的,如果只设置打印项居中,那么文本框存在内部居中,内容也不会相对于纸张居中,所以需要加上文本框内容相对于文本框居中,这样纯文本就能在纸张中居中。
纯文本在纸张中居中:
LODOP.SET_PRINT_STYLEA(0,"Alignment",2);//文本框里 内容对于文本框居中
LODOP.SET_PRINT_STYLEA(0,"Horient",2);//打印项在纸张中水平居中
代码:

  1. <head>
  2. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  3. <title>WEB打印控件LODOP</title>
  4. <script language="javascript" src="LodopFuncs.js"></script>
  5. </head>
  6. <body>
  7. <a href="javascript:prn1_dg()">打印设计</a><br>
  8. <script language="javascript" type="text/javascript">
  9. var LODOP; //声明为全局变量
  10. function prn1_dg() {
  11. LODOP=getLodop();
  12. LODOP.PRINT_INIT("");
  13. LODOP.SET_PRINT_PAGESIZE(1,1200,500,"");
  14. LODOP.ADD_PRINT_TEXT(29,121,100,20,"文本");
  15. LODOP.SET_PRINT_STYLEA(0,"Alignment",2);
  16. LODOP.SET_PRINT_STYLEA(0,"Horient",2);
  17. LODOP.PRINT_DESIGN();
  18. };
  19. </script>
  20. </body>

图示:

由于LODOP生成的条码二维码,设置多宽并不一定是多宽,受合计值的影响,因此条码如果数值不同,在纸张中居中比较难控制,无法做到条码在纸张中居中,最好留够最大条码的宽度,放在一定区域内。

二维码可以通过打印设计找到在纸张中的居中点,然后设置具体的版本号,统一所有二维码的大小。
相关博文:Lodop打印条码二维码设置多宽不一定是多宽Lodop打印二维码内容长度不同如何大小相同

简短问答:
居中打印
1. 打印项居中 参考样例23 http://www.c-lodop.com/demolist/PrintSample23.html
LODOP.SET_PRINT_STYLEA(0,"Horient",2);//打印项在纸张中水平居中
LODOP.SET_PRINT_STYLEA(0,"Vorient",2);//打印项在纸张中垂直居中
2. add_pirnt_text纯文本打印项里面的内容居中
纯文本设置Alignment设置水平居中LODOP.SET_PRINT_STYLEA(0,"Alignment",2);//文本框里 内容对于文本框居中,
不支持垂直居中, 具体参考技术手册;
3.AlignJustify设置纯文本两端对齐和条码文字对齐
LODOP.SET_PRINT_STYLEA(0,"AlignJustify",1);//纯文本两端对齐
LODOP.SET_PRINT_STYLEA(0,"AlignJustify",2);//设置条码下方的文字相对于条码本身居中
4.Html 通过css 控制 参考样例2 ,10;http://www.c-lodop.com/demolist/PrintSample10.html

LODOP打印项水平居中的更多相关文章

  1. LODOP中打印项水平居中简短问答

    相关博文:LODOP打印项水平居中(超文本纯文本居中)LODOP打印超文本有边距不居中的情况2(超文本居中的一种) LODOP表格水平居中3(宽度为百分比)(超文本居中的一种) LODOP打印图片水平 ...

  2. LODOP打印图片水平居中

    其他居中,查看本博客相关博文:LODOP中打印项水平居中简短问答.图片也属于超文本打印项,因此如果想把图片居中,也需要图片本身内容相对于图片打印项宽度居中,然后再设置打印项居中.如图,同一张图片,都设 ...

  3. Lodop打印项对象类型属性区分

    Lodop提供了一些打印项类型,默认是普通项,通过设置打印对象的类型,可以实现一些普通项不能实现的效果.例如:该博客另一篇博文 标题是Lodop打印控件 打印‘接下一页’‘以下空白’,就用了眉脚项. ...

  4. LODOP打印超文本有边距不居中的情况2

    之前的博文:LODOP打印项水平居中.之前的博文有介绍超文本和纯文本的居中方式,设置超文本打印项居中时,注意打印内容要在打印项本身宽度里居中.之前的博文超文本用的是个表格,而且表格本身没有margin ...

  5. LODOP中的纯文本和超文本打印项

    LODOP中的的打印项,有超文本也有纯文本,超文本指的是用html语言,html里的标签为值的打印项,该种打印项会经过浏览器解析,LODOP本身不带解析超文本的引擎,调用的windows底层引擎,与i ...

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

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

  7. LODOP设置某打印项锁定下边距

    LODOP中的打印项定位都是按照top值(顶边距),left(左边距)来决定的 ,不能直接设置某打印项的下边距.此外,打印项的位置还受PRINT_INTA的前两个整体偏移值,打印机可打区域的影响.该文 ...

  8. LODOP关联,打印项序号注意事项

    之前也有介绍过打印项序号:Lodop打印控件里SET_PRINT_STYLE和SET_PRINT_STYLEA如果是个给打印项添加样式,最常用的是SET_PRINT_STYLEA(0.....),第一 ...

  9. Lodop打印设计里的 打印项对齐

    打印设计界面里,有四个对齐的图标:(1)第一个图标是左右对齐方式,该图标下有四种左右对齐方式.(2)第二个图标是上下对齐方式,该图标下有四种上下对齐方式.(3)第三个图标是等宽对齐,该图标下有三种等宽 ...

随机推荐

  1. 【转】GnuPG使用介绍

    一.什么是 GPG 要了解什么是 GPG,就要先了解 PGP. 1991 年,程序员 Phil Zimmermann 为了避开政府监视,开发了加密软件 PGP.这个软件非常好用,迅速流传开来,成了许多 ...

  2. SQLAlchemy多对多

    创建多对多表 from sqlalchemy.ext.declarative import declarative_base Base=declarative_base() from sqlalche ...

  3. pandas 筛选

    t={ , , np.nan, , np.nan, ], "city": ["BeiJing", "ShangHai", "Gua ...

  4. 多项式求逆入门 板题(Luogu P4238)

    下面是代码,推导详见 传送门 模板Code #include <cstdio> #include <cstring> #include <algorithm> us ...

  5. shell grep的基本用法

    grep 1.-i 不区分大写小写 2.-n 区分大小写 3.-E 查找多个条件 4.-c 查找到的结果的行数 5.-w 精确查找 6.取反 7.-q 静默输出

  6. MongoDB 4.2 新特性解读 (转载)

    MongoDB World 2019 上发布新版本 MongoDB 4.2 Beta,包含多项数据库新特性,本文尝试从技术角度解读. Full Text Search MongoDB 4.2 之前,全 ...

  7. TimescaleDB1.3 的新特性——Continuous aggregates: faster queries with automatically maintained materialized views

    One characteristic of time-series data workloads is that the dataset will grow very quickly. Without ...

  8. 设置多个className

    有时候我们需要有选择地设置多个className function myComponent(props) { const myClassName = { 'aaa', {'bbb': props.ne ...

  9. 理解Web路由(浅谈前后端路由与前后端渲染)

    1.什么是路由? 在Web开发过程中,经常会遇到『路由』的概念.那么,到底什么是路由?简单来说,路由就是URL到函数的映射. 路由的概念最开始是由后端提出来的,在以前用模板引擎开发页面的时候,是使用路 ...

  10. docker_概念

    为什么有docker? 1. 宿主机可以虚拟一个硬件平台:其上会有内核(在虚拟机上的操作系统),内核负责资源调度和通信:内核之上会有用户态,运行在用户态(用户空间)之上多是应用程序,也就是进程.硬件( ...