引言

ABAP SMARTFORMS打印二维码步骤参照此链接
如果读者使用SAP内置的QECODE2005,遇到了因二维码内容变化而导致二维码大小变化的问题,这篇博客提供的方法仅供参考,如果有更好的方法欢迎留言补充。

解决方案

我的做法是首先计算出二维码所放置内容的最大字符长度,如果当前所需放置长度不足最大字符长度,则使用空格补全至最大长度。
也就是说,如果我需要输出二维码的字符长度有:20,10,30,25,那么最大字符长度就是30,其余不满足条件的用空格补足至30。
之所以用空格而不用别的字符,是因为扫描二维码时只有空格在以下情况下会被忽略

  • 如果有10个空格在其他字符的最前面或者最后面,这10个空格会被忽略而无法被扫描出
  • 如果空格在中间,那么这10个空格只会被扫描出1个

所以我们使用空格在输出字符的最前面或者最后面的方法是可行的,但是SAP系统是不能在字符后面加空格的(我试了很多方法都不行,只能在两个字符中间或者字符前面),所以我在输出字符的最前面补足了空格,以达到控制二维码内容长度的目的。

问题示例

这是我最开始没有用空格补足至72个字符长度的效果,可以看到两个二维码大小是不一致的。
第一个二维码字符长度是31(D3#2000000000004/A4002021060010)
第二个二维码字符长度是18(D3#3000000000003/1)

解决代码

现在使用如下代码对字符进行空格补全

DATA lv_len TYPE I.
DATA: LV_SERNR LIKE GS_DATA-SERNR,LV_MATNR LIKE GS_DATA-MATNR.
* 如果有前导零,会影响strlen的计数长度,要清空前导零,这里因为太占篇幅就没有加上*计算当前输出内容总长度lv_len = strlen( LV_MATNR ).lv_len = lv_len + strlen( LV_SERNR ).*拼接最后二维码输出的内容gv_data = 'D3#' && LV_MATNR && '/' && LV_SERNR.*我的情况下最多字符数=前缀+序列号+ '/ '+物料号 = 3 + 18 + 1 + 40 = 72DO ( 72 - lv_len - 4 ) TIMES."在字符最前面加空格补全至最大长度,string和char用以下方法都可以加空格CONCATENATE '' gv_data INTO gv_data SEPARATED BY ' '.ENDDO.

此时再在smartforms输出后的效果如下,可以看见两个二维码扫描出来的内容长度是不一致的,但二维码大小是相同的


后记------二维码宽高和位置问题

至此,二维码固定大小的问题得到了解决,但是此时还有两个问题就是二维码的宽高没办法设置定值,而且二维码的位置也很奇怪。

二维码宽高问题

二维码宽高无法被直接设置成定值(我到处都找遍了也没找到设置的方法,如果有请评论区留言分享),所以我只能用以下的方法进行估算宽高,这一步的前提是你的二维码内容长度已经固定了
二维码的宽高可以通过SE73的系统条形码中二维码的Modsize和Corrlev(容错级别,二维码产生部分污损,仍能被扫描出来的级别,级别越高二维码越复杂)两个属性共同控制大小,建议多改动尝试,找到一个合适的大小,可以在smartforms里画一个定长的正方形,进行比对。
Tips:如果容错级别设置成H,最严格的那一种,那么ModSize不宜太小,否则可能无法被扫描设备(如手机)扫描出来,如果ModeSize一定要设置的小一些,那么就选择低级别的容错级别

二维码位置问题

这个位置也很难设置,像之前所展示的图片中所示,二维码到处跑,就不在我们给他塞的窗口里面,这一步的操作建议先完成上两步
如果要修改他的位置,可以在smartforms的style当中,修改段落格式的左右边距和行间距,慢慢调整至合适的效果

这是最后的成品图,孩子已经很努力的在调整了,给我点个赞再走吧qaq

SAP二维码固定大小相关推荐

  1. bartender二维码固定大小

    二维码 一般情况下会跟着内容的不同而大小不同. 这对于模板的调整是个很可恶的事情. 那么如何固定大小呢? 第一步:如下图:::: 图片源选择: 编码的图片数据 编码选择: base64 第二步, 添加 ...

  2. 【绝对靠谱】Vue生成二维码Qrcode,可插入二维码中心logo图标,可以设置二维码颜色大小等属性

    效果 代码 npm install vue-qr --save 个别网络用 cnpm install vue-qr --save 安装 <template><div class=&q ...

  3. C# ThoughtWorks.QRCode.dll 生成完美二维码(大小 边距 备注 颜色 LOGO大小背景形状)

    一.先睹为快 功能: 1)边框颜色可改   2)边距可修改     3)二维码背景色可修改  4)二维码前景色可修改   5)备注文本可修改(背景色可改 字体颜色可改 大小可改) 6) logo大小背 ...

  4. 【相对靠谱】Vue生成二维码Qrcode,可插入二维码中心logo图标,可以设置二维码颜色大小等属性

    效果 代码 npm install vue-qr --save 个别网络用 cnpm install vue-qr --save 安装 <template><div class=&q ...

  5. qrcode生成固定大小的二维码

    qrcode生成固定大小的二维码 最近在使用qrcode的三方库制作一个二维码,但在使用的过程中,发现二维码的大小会随着加入字符串的多少的变化而变化. QRcode *QRcode_encodeStr ...

  6. 二维码的生成(可设置大小)以及插件下载地址

    本文写的二维码生成是基于jQuery和jquery.qrcode.min.js插件的,本文将介绍两种方法和方式,仅供朋友选择和取舍.本文最下面附有插件的下载地址! 方式1: 基于jquery.qrco ...

  7. 博客:固定位置增加二维码

    如果您也是用 hexo 搭建的个人博客,不妨一试. 博客主题选择 目前我的个人博客是基于GitHub Pages,用hexo搭建的,详细教程:<手把手教你建github技术博客by hexo&g ...

  8. C# QRCode自定义二维码大小

    当设置了QRCodeVersion=0之后,二维码的大小会根据文字内容改变,但是更多时候希望二维码的大小由参数指定,通过设置QRCodeScale也可以一定程度上改变大小,不过有个精度问题,我测试了下 ...

  9. Vue2 中使用C-Lodop打印控件时无法调整二维码大小问题

    问题描述: 打印模板里配置的二维码是偏小的,但是在页面使用打印的时候打印预览的二维码不是预期大小,如图:  原因:         配置二维码的时候上下左右(图中箭头)会有一部分区域,打印时的二维码会 ...

最新文章

  1. 第十五周程序阅读-范型程序设计(6)
  2. 老板扣了我1000,因为我没记住阿里巴巴开发手册的这条规则。
  3. 12 年!Android 系统的漫漫设计路
  4. C++标准库bitset类型(简单使用方法)
  5. 关于三星研究院adv机试(开发人员入职机试)
  6. C#,编写制作《扫雷》游戏代码的前传——作弊手段大曝光
  7. 知识分享!电阻按照用途分类可以分为哪几种电阻?-道合顺大数据infinigo
  8. 英文IT电子书下载:www.foxebook.net
  9. Html5网页录音,js录音mp3
  10. 《亚马逊云科技-游戏孵化营》第一次公开课学习心得
  11. 乐观锁实现接口幂等性_calvin-idempotent
  12. python判断字符串是否为大写字母、小写字母
  13. EPW的输入文件浅析
  14. RGB和YUV视频存储格式
  15. Pytest如何查找用例耗时最长的N个
  16. 【Vegas原创】word图片隐藏在文字里了的终极解决办法
  17. 计量经济学及Stata应用 陈强 第九章模型设定与数据问题习题9.4
  18. C#:EXCEL版本与相应dll版本的对应关系
  19. 华为运营商级路由器配置示例 | 配置OptionC方式跨域BGP AD VPLS示例
  20. gdp 栅格数据_最常用的GIS数据汇总

热门文章

  1. ram计算机中术语,分类词汇:计算机术语 RAM ROM
  2. jackson 驼峰注解_springboot jackjson驼峰转下划线
  3. 董事会会议中,如何让董事之间的对话更加畅通?
  4. H.264 x264 h264 AVC1的关系和区别
  5. Reflections 介绍
  6. python怎么画出圆润的曲线_Python如何对折线进行平滑曲线处理?
  7. STM32Cubemx—— ADS1118二差分驱动程序移植
  8. HDU 4022 Bombing(11年上海 二分)
  9. 暴力破解WPA(WPA2 PSK)密码
  10. 成佩涛-两张图给你看看两大搜索引擎的区别