当前位置: 首页 > news >正文

ABAP+从SAP发出去的PDF文件在第三方系统出现乱码

这是一个 ABAP转换PDF调用函数CALL FUNCTION 'CONVERT_OTF'的问题记录,关乎字体STSong-Light-ldentity-H  和   STSong-Light的区别

背景:

做了一个增强,是采购订单审批后自动发送采购订单PDF1到企业微信,用户再将企业微信收到的PDF发送到SS系统进行流程签核。PDF1就是会乱码的文件。

在增强里面转化PDF是调用标准程序:CALL FUNCTION 'CONVERT_OTF',然后再进行二进制转换,再发送给企业微信的。

另外还有一个PDF2文件,是用户直接在SAP使用smartform时,预览下载(pdf!)的PDF2文件,这个文件在任何系统都没有报错。

报错:

用户在企业微信接收到PDF1附件展示是正常的,但是上传到SS系统后,出现乱码(字段间距出现问题),如下:

解决:

第三方人员判断可能是字体问题,开始查看:

PDF1的模板字体

PDF2的模板字体

两个模板的字体都是一样的,所以对于模板本身是没有问题的

但是使用office办公软件来查看PDF的字体的时候,发现PDF1和PDF2的字体有轻微差别,如下:

PDF1的字体是STSong-Light

PDF2的字体是STSong-Light-ldentity-H

最直接的方式就是让SS系统添加上没有的字体,但是经过查询,发现STSong-Light-ldentity-H和STSong-Light从本质上来说就是同一个字体,所以不是字体原因导致的乱码。

问题还是出现在SAP里面,还得找一下。于是开始对比手动导出PDF和系统转换PDF的代码,发现确实是我参数设置有问题。

DEBUG步骤:

先进行系统标准程序保存PDF2的调试

这是使用标准事务代码  PDF!  时系统的参数设置,如下:

这是我写在增强里的转换PDF的代码:

我的代码里面多设置了一个use_cascading = 'x'.的参数,就是这里有问题。

为什么我会在这里多加一个参数呢?因为我在开发时都是网上查找,一个一个案例学习(copy)别人的,以至于开发的时候,浏览器窗口是这样的:

这个ABAP转换PDF调用函数CALL FUNCTION 'CONVERT_OTF'案例,我还特意看了这些参数的意义,又因为我们公司有湾湾用户,所以我故意保留了这个参数,防止繁体字转化失败,没想到画蛇添足了,好吧,就记录到这里!!

踩过坑就长记性了!!

http://www.lryc.cn/news/407744.html

相关文章:

  • 基于springsecurity的会话并发处理功能(附代码)
  • Redis底层数据结构的实现
  • 制作excel模板,用于管理后台批量导入船舶数据
  • 领略诗词之妙,发觉生活之美。
  • 基于FFmpeg和SDL的音视频解码播放的实现过程与相关细节
  • SSIS_SQLITE
  • Redis 7.x 系列【27】集群原理之通信机制
  • 【五】MySql8基于m2芯片arm架构Ubuntu24虚拟机安装
  • 【Hot100】LeetCode—279. 完全平方数
  • 腾讯云开发者《中国数据库前世今生》有奖创作季
  • redis:清除缓存的最简单命令示例
  • 基于深度学习算法,支持再学习功能,不断提升系统精准度的智慧地产开源了。
  • Cmake生成的Xcode工程相对路径与绝对路径的问题
  • “机器说人话”-AI 时代的物联网
  • C#高级:数据库中使用SQL作分组处理3(ROW_NUMBER() 关键字)
  • 光明乳业:以科技赋能品质,引领乳业绿色新未来
  • Footprint Analytics 助力 Core 区块链实现数据效率突破
  • 从零搭建pytorch模型教程(八)实践部分(二)目标检测数据集格式转换
  • MYSQL(2) 高级查询
  • 小程序的运营方法:从入门到精通
  • 【优秀python算法毕设】基于python时间序列模型分析气温变化趋势的设计与实现
  • 掌握 Symfony 路由系统:配置与管理
  • OpenTeleVision复现及机器人迁移
  • 气膜足球馆:经济高效的室内足球场馆解决方案—轻空间
  • Vue3二次封装axios
  • 【MetaGPT系列】【MetaGPT完全实践宝典——多智能体实践】
  • C#中GridControl的数据源双向绑定
  • sklearn详细基础教程(科普篇)
  • el-table列的显示与隐藏
  • 使用命令快速删除项目中的node_modules