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'案例,我还特意看了这些参数的意义,又因为我们公司有湾湾用户,所以我故意保留了这个参数,防止繁体字转化失败,没想到画蛇添足了,好吧,就记录到这里!!

踩过坑就长记性了!!

相关推荐
小熊恋旧6 分钟前
Python 面向对象编程:方法、属性、继承与多态详解
开发语言·python
云边云科技_云网融合7 分钟前
面向汽车零部件制造业场景的解决方案 | 70 秒:一台车下线的时间里,藏着五张网
开发语言·汽车·php
Evand J7 分钟前
【PMSM滤波例程2】PMSM未知负载转矩观测EKF。MATLAB例程(负载增广EKF与实际仿真结果)。附下载链接
开发语言·matlab·电机
will_net28 分钟前
apollo 站点部署&C#接入
开发语言·c#·apollo
hu55667981 小时前
如何使用Adobe Acrobat Pro DC将1页PDF切割为2页,A3变A4打印。
pdf
晗夜未央1 小时前
任务队列反复失败,先分清重试、阻塞和结果待核对
开发语言·javascript
熊猫钓鱼>_>1 小时前
四种书签,一条时间线:一个读书 App 的记忆颗粒与它的边界案例【鸿蒙心迹】
开发语言·华为·ai编程·harmonyos·鸿蒙·openharmony·鸿蒙pc
ComPDFKit2 小时前
PDF转Word后,每行都成一段?先分清断段、文本框和扫描页
pdf·word
努力努力再努力wz2 小时前
【Lua 入门系列】Lua 函数深入理解:函数对象、多返回值、可变参数、闭包、递归与尾调用优化
开发语言·lua
飞浪纪元[FWC–FE]2 小时前
从零到一键绿:Qt 5.14.2 + VS2019 开发环境搭建、Kit 套件配置与构建错误修复完全手册
开发语言·qt