LODOP打印图片水平居中

Wesley13
• 阅读 727

其他居中,查看本博客相关博文:LODOP中打印项水平居中简短问答
图片也属于超文本打印项,因此如果想把图片居中,也需要图片本身内容相对于图片打印项宽度居中,然后再设置打印项居中。
如图,同一张图片,都设置了打印项居中语句,一个居中了一个没有居中,这是因为第一个打印项宽度就是图片本身内容宽度,而第二个则是大于内容宽度,如果进入打印设计,选中第二个方法的图片打印项,可以看出第二个方法里的图片打印项宽度右侧会有空白出现,也就是图片本身里面没有相对于打印项宽度居中。

如本文测试用了一张100mm*100mm的图片,
方法1设置了 打印项宽度为100mm,然后设置打印项居中,在打印预览界面开启标尺。
在A4纸张(A4纸宽210mm),图片本身宽度为100mm,标尺左侧是55mm,右侧是155mm。
左侧的距离为55mm,右侧距离为 210mm-155=55mm,所以这个图片是在A4中水平居中的。

方法2,设置了打印项宽度为150mm,但是实际上图片只有100mm大小,所以图片没有相对于打印项宽度居中。
图片和纸张同方法1,标尺显示图片左侧是30mm,图片右侧是130mm
设置了打印项居中,图片左侧距离为30mm,右侧距离为210mm-130mm=80mm。
这个距离是图片内容和纸张左右的距离。
因为打印项设置的是150mm,所以实际是左侧30mm,右侧是210-30-150=30mm,实际上设置的打印项居中是有效的,只不过打印内容图片本身没有相对于打印项宽度居中,所以图片打印项右侧有50mm的空白

该文图示没有演示打印设计,进入打印设计,选中图片打印项,可以看出方法2后面的空白,图片100mm,后面跟着50mm的空白。

该文演示不缩放图片的情况下,如果打印居中打印一个原图
如果图片分辨率过大,还需要缩放处理等。
不知道图片有多大的时候,可以进入打印设计,选中图片,拖动蓝色的圆点,直到打印项宽度正好和图片宽度一致,然后查看打印设计显示的数值,或在打印设计里生成代码拷贝过去。

测试代码:

<script language="javascript" src="LodopFuncs.js"></script>
</head>
<body>
<a href="javascript:prn0_preview()">打印项宽高和图片一致</a><br>
<a href="javascript:prn1_preview()">打印项宽度大于图片本身</a><br>
<script language="javascript" type="text/javascript">   
        var LODOP; //声明为全局变量 
        function prn0_preview() {//打印项宽度和图片大小宽度一致
        LODOP=getLodop(); 
        LODOP.PRINT_INIT("");
        LODOP.ADD_PRINT_IMAGE(0,0,"100mm","100mm","<img src='img1.png'>");
        LODOP.SET_PRINT_STYLEA(0,"Horient",2);
        LODOP.PREVIEW();    
    };
        function prn1_preview() {//打印项和图片大小宽度不一致,大于图片本身宽度
        LODOP=getLodop(); 
        LODOP.PRINT_INIT("");
        LODOP.ADD_PRINT_IMAGE(0,0,"150mm","100mm","<img src='img1.png'>");
        LODOP.SET_PRINT_STYLEA(0,"Horient",2);
        LODOP.PREVIEW();    
    };
</script>

图示:

LODOP打印图片水平居中

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
Android So动态加载 优雅实现与原理分析
背景:漫品Android客户端集成适配转换功能(基于目标识别(So库35M)和人脸识别库(5M)),导致apk体积50M左右,为优化客户端体验,决定实现So文件动态加载.!(https://oscimg.oschina.net/oscnet/00d1ff90e4b34869664fef59e3ec3fdd20b.png)点击上方“蓝字”关注我
Wesley13 Wesley13
3年前
HTML中经常用到的对齐,居中方式
在编写一片网页时,我们经常需要使一些文本或者图片,盒子居中!但是在众多的写法里,那些才能使我们的目的最快,最有效的达到呢!居中也是有轴线之分的,水平轴,垂直于水平轴的轴,交叉轴。1盒子居中margin:auto;通常在这此行只有一个盒子的情况下使用\需要定宽\常规流和浮动不用\2文本居中   定义水平轴线对齐方式flexst
Stella981 Stella981
3年前
CSS 布局 ,文档流,定位,中划线,表格属性,line
CSS知识汇总verticalalign:top|middle|bottom//用于图片时,(如文字)其他元素相对于图片的上,中,下对齐divlineheight:200px;//设置lineheight的高度和div的高度一样,则div里的文字10Px上下居中对齐divheight:200px;divfontsiz
Wesley13 Wesley13
3年前
LODOP打印项水平居中
LODOP控制打印项水平居中,可以用如下语句,该语句控制的是打印项本身在纸张中水平居中。LODOP.SET\_PRINT\_STYLEA(0,"Horient",2);这个根据大的打印项本身的宽度,如果打印项本身内部不是居中的,那么加了这句,内容也不会居中。之前有博文介绍过打印项在纸张中受到的各种边距:LODOOP中的各种边距打印项
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这