SAP里常常要画各种smartform,并且用户还希望保存至本地PDF文件,下面就详细说明smartform转成PDF的四种方法,如果还有其他方法欢迎留言补充。

一、代码开发

1)先调用smartform函数获取OTF格式数据

2)后调用函数CONVERT_OTF转换成PDF格式数据

3)再调用GUI_DOWNLOAD函数下载

示例代码如下(本示例中需下载四个smartform对应的四个PDF文件)

  METHOD DOWNLOAD_PDF.DATA: LT_FORMNAME           TYPE STANDARD TABLE OF /PICM/ADOBEFORM_STR,LT_OTF                TYPE STANDARD TABLE OF ITCOO,LT_LINES              TYPE STANDARD TABLE OF TLINE,LT_DATA               TYPE STANDARD TABLE OF ZSSD042,LS_DATA               TYPE ZSSD042,LS_CONTROL_PARAMETERS TYPE SSFCTRLOP,LS_OUTPUT_OPTIONS     TYPE SSFCOMPOP,LS_JOB_OUTPUT_INFO    TYPE SSFCRESCL,LV_FILENAME           TYPE STRING,LV_PATH               TYPE STRING.DATA(LV_TIME) = SY-DATUM && SY-UZEIT.DATA(LT_VBELN) = T_ALV[].DELETE LT_VBELN WHERE CHOOSE IS INITIAL.SORT LT_VBELN BY VBELN.DELETE ADJACENT DUPLICATES FROM LT_VBELN COMPARING VBELN.IF LT_VBELN[] IS INITIAL.MESSAGE TEXT-E03 TYPE 'E'.ENDIF.CALL METHOD CL_GUI_FRONTEND_SERVICES=>DIRECTORY_BROWSECHANGINGSELECTED_FOLDER      = LV_PATHEXCEPTIONSCNTL_ERROR           = 1ERROR_NO_GUI         = 2NOT_SUPPORTED_BY_GUI = 3OTHERS               = 4.IF SY-SUBRC <> 0.MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNOWITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.ENDIF.IF LV_PATH IS INITIAL.RETURN.ENDIF."  LS_OUTPUT_OPTIONS-TDDEST   = 'LP01'.LS_OUTPUT_OPTIONS-TDIMMED  = 'X'.LS_OUTPUT_OPTIONS-TDDELETE = 'X'.LS_OUTPUT_OPTIONS-TDNOPREV = 'X'.LS_CONTROL_PARAMETERS-NO_DIALOG = 'X'.LS_CONTROL_PARAMETERS-GETOTF    = 'X'.LT_FORMNAME = VALUE #(( FORMNAME = 'ZSD001_FORM' FUGRNAME = 'despatchlist_&1_&2.pdf'     ) "DespatchList( FORMNAME = 'ZSD002_FORM' FUGRNAME = 'EDIDoc_&1_&2.pdf'           ) "EDIDoc( FORMNAME = 'ZSD003_FORM' FUGRNAME = 'shippingorder_&1_&2.pdf'    ) "ShippingOrder( FORMNAME = 'ZSD004_FORM' FUGRNAME = 'SO_DELIVERY_NOTE_&1_&2.pdf' ) "SO_DELIVERY_NOTE).*   获取SMARTFORM对应函数名LOOP AT LT_FORMNAME INTO DATA(LS_FORMNAME).CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'EXPORTINGFORMNAME           = LS_FORMNAME-FORMNAMEIMPORTINGFM_NAME            = LS_FORMNAME-FUNCNAMEEXCEPTIONSNO_FORM            = 1NO_FUNCTION_MODULE = 2OTHERS             = 3.IF SY-SUBRC <> 0.MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNOWITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.ENDIF.MODIFY LT_FORMNAME FROM LS_FORMNAME.ENDLOOP.LOOP AT LT_VBELN INTO DATA(LS_VBELN).CLEAR LT_DATA[].LOOP AT T_ALV INTO DATA(LS_ALV) WHERE VBELN = LS_VBELN-VBELN.MOVE-CORRESPONDING LS_ALV TO LS_DATA.APPEND LS_DATA TO LT_DATA.ENDLOOP.LOOP AT LT_FORMNAME INTO LS_FORMNAME WHERE FUNCNAME IS NOT INITIAL.CLEAR: LT_OTF[], LT_LINES[], LS_JOB_OUTPUT_INFO, LV_FILENAME.*       编辑文件名LV_FILENAME = LS_FORMNAME-FUGRNAME.DATA(LV_VBELN) = |{ LS_VBELN-VBELN ALPHA = OUT }|.REPLACE '&1' WITH LV_TIME INTO LV_FILENAME.REPLACE '&2' WITH LV_VBELN INTO LV_FILENAME.CONDENSE LV_FILENAME NO-GAPS.CONCATENATE LV_PATH LV_FILENAME INTO LV_FILENAME SEPARATED BY '\'.*       调用SMARTFORMCALL FUNCTION LS_FORMNAME-FUNCNAMEEXPORTINGCONTROL_PARAMETERS = LS_CONTROL_PARAMETERSOUTPUT_OPTIONS     = LS_OUTPUT_OPTIONSUSER_SETTINGS      = 'X'IMPORTINGJOB_OUTPUT_INFO    = LS_JOB_OUTPUT_INFOTABLESIT_DATA            = LT_DATAEXCEPTIONSFORMATTING_ERROR   = 1INTERNAL_ERROR     = 2SEND_ERROR         = 3USER_CANCELED      = 4OTHERS             = 5.IF SY-SUBRC <> 0.MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNOWITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.ENDIF.*       转换PDFLT_OTF[] = LS_JOB_OUTPUT_INFO-OTFDATA[].CALL FUNCTION 'CONVERT_OTF'EXPORTINGFORMAT                = 'PDF'TABLESOTF                   = LT_OTFLINES                 = LT_LINESEXCEPTIONSERR_MAX_LINEWIDTH     = 1ERR_FORMAT            = 2ERR_CONV_NOT_POSSIBLE = 3ERR_BAD_OTF           = 4OTHERS                = 5.IF SY-SUBRC <> 0.MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNOWITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.ENDIF.*       下载文件CALL FUNCTION 'GUI_DOWNLOAD'EXPORTINGFILENAME                = LV_FILENAMEFILETYPE                = 'BIN'TABLESDATA_TAB                = LT_LINESEXCEPTIONSFILE_WRITE_ERROR        = 1NO_BATCH                = 2GUI_REFUSE_FILETRANSFER = 3INVALID_TYPE            = 4NO_AUTHORITY            = 5UNKNOWN_ERROR           = 6HEADER_NOT_ALLOWED      = 7SEPARATOR_NOT_ALLOWED   = 8FILESIZE_NOT_ALLOWED    = 9HEADER_TOO_LONG         = 10DP_ERROR_CREATE         = 11DP_ERROR_SEND           = 12DP_ERROR_WRITE          = 13UNKNOWN_DP_ERROR        = 14ACCESS_DENIED           = 15DP_OUT_OF_MEMORY        = 16DISK_FULL               = 17DP_TIMEOUT              = 18FILE_NOT_FOUND          = 19DATAPROVIDER_EXCEPTION  = 20CONTROL_FLUSH_ERROR     = 21OTHERS                  = 22.IF SY-SUBRC <> 0.MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNOWITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.ENDIF.ENDLOOP.ENDLOOP.ENDMETHOD.

二、 通过打印池假脱机请求转成PDF文件

1)打印smartform输出假脱机请求

2)SP01查看假脱机请求,选择菜单中 假脱机请求->转发->导出为PDF 进行下载,或者执行SAP标准程序RSTXPDFT4输入假脱机请求号进行下载

执行程序RSTXPDFT4

三、在打印预览界面输入Tcode PDF!预览PDF,点击保存按钮进行下载

四、使用PDF虚拟打印机,本电脑使用的是微软自带的Microsoft Print to PDF虚拟打印机

SPAD配置输出设备

1)如果 主机假脱机访问方法 选择了 G:使用控制技术的前台打印,则先设置smartform打印选项后选择打印机

打印smartform

选择打印机

2)如果 主机假脱机访问方法 选择了 F:计算机前台打印,则设置smartform打印选项时可同时选择打印机

设置smartform打印选项并选择打印机

SAP Smartform转成PDF方法汇总相关推荐

  1. SAP 邮件发送smartform(转成PDF附件)实例

    介绍一个项目中经常会遇到的场景:将smartform转化成PDF,然后再把PDF作为邮件的附件发送出去. 1, 创建smartform Tcode:smartforms创建一个简单的smartform ...

  2. 怎么把jpg转换成pdf方法

    怎么把jpg转换成pdf方法 怎么把JPG图片转换成PDF名堂?一样平常环境下,许多年老的用户恋爱在旅途中拍摄一些乏味的相片,概略在一些站点凹凸载一些图片,如果JPG图片技俩不赞成PDF,该若何是好? ...

  3. 怎样把jpg转成pdf方法分享

    如果能把自己的图片编辑在一起,做成一个3D电子相册,那么以后查看图片起来就很方便.可是这仅仅只是一个想法,要想实现并不是那么容易的事.世事无绝对,在一次微粉互动中,从一个朋友的口中得知,迅捷 JPG转 ...

  4. 手机Excel怎么转换成PDF方法

    PDF文档正在慢慢成为办公室最常用的办公文档格式.那我们经常制作的Excel表格有办法转换成PDF格式吗?小编尝试过很多转换方法,最近发现迅捷PDF转换器操作简单,转换速度也挺快的,今天就分享给大家. ...

  5. C#将Word转换成PDF方法总结(基于Office和WPS两种方案)

    有时候,我们需要在线上预览word文档,当然我们可以用NPOI抽出Word中的文字和表格,然后显示到网页上面,但是这样会丢失掉Word中原有的格式和图片.一个比较好的办法就是将word转换成pdf,然 ...

  6. altium designer 原理图SCH 转换成PDF方法

    很多时候,原理图并不愿意给用户,只能将SCH原理图转成PDF给用户.具体操作. 扫码关注微信,不定期用心推送优质文章. [Java开发交流](群号157529282),欢迎,有志同道合的朋友加入,交流 ...

  7. 将JPG图片直接转换成PDF软件操作步骤

    忙碌的工作中,经常面对大量专业的PDF文件处理,格式间的转换已不再是陌生的话题,当需要将成百的JPG图片转换成PDF文件格式时,是否随便下载安装一个JPG转换成PDF转换器就能实现JPG转PDF呢?如 ...

  8. JPG转换成PDF转换器使用说明

    日常办公中除了运用到Office文件,PDF文件也是我们常见的一种文件格式.信息化时代的快速发展推进了办公软件的普及,掌握微软办公软件的使用和操作知识是现在很多入职新手必须掌握的一门技巧,其中将多页J ...

  9. jpg在线转换成pdf

    jpg在线转换成pdf 前段时间,朋友JM给我看了一个自己制作的JPG式的PDF文本,从图片拍摄角度上看确实很好,加上PDF特有的标准格式,仿若锦上添花,增色了不少,问起如何将图片放入PDF文档中时, ...

  10. 如何将jpg转换成PDF转换器教程

    jpg转换成PDF转换器是将PDF文档中的文字.图片.表格.注释等文档元素完整保的一种标准电子文档格式,如果要将JPG图片转换到PDF文档中,有没有好的方法呢?普通的 JPG转PDF转换器不具备良好的 ...

最新文章

  1. opencv2安装报错no module named cv2
  2. php 函数:func_get_args()、func_get_arg()与func_num_args()
  3. 计算机网络:分组交换
  4. 【模型解读】network in network中的1*1卷积,你懂了吗
  5. css盒子模型_css的盒子模型是什么
  6. UI完美素材|(Watch展示篇)Mockups动态图提案模板
  7. 模拟新浪新闻在线聊天功能
  8. sum of digits
  9. 打印机喷嘴清洗必杀武器
  10. 时间序列分析实验报告总结_时间序列分析实验报告
  11. JAVA里面一加到一百等于多少_从1加到100等于多少 【求和算法汇总】
  12. 爱因斯坦:培养独立思考的教育
  13. 电子书搜索引擎,快速寻找和下载电子书,搞定99.9%的电子书资源!
  14. 解决 Psycopg2 install失败(针对MAC)
  15. (14)python函数与变量
  16. java基础国庆作业_国庆JAVA作业
  17. 【JavaScript实训】-- 限时秒杀
  18. 2019-信息安全管理与评估
  19. flask 模板渲染layui数据表格不显示以及显示不完全
  20. 【转】产业集群互联网+怎么做?

热门文章

  1. linux 读取权限目录权限,文件的读取与写入权限《 Linux 文件与目录权限 》
  2. python中socket.gaierr errno1104_“socket.gaierror:[Errno 11004]getaddrinfo失败”
  3. nginx 文件服务器_nginx配置简单文件服务器
  4. python定期自动运行_令人惊叹的8个Python新手工具
  5. mysql 8.0 (ga)_MySQL 8.0.20 GA 发布
  6. Git(5):使用git命令将本地项目上传到GitLab仓库中
  7. SpringBoot系列(5):SpringBoot对JSON数据的处理
  8. [例程]string.trim().length()的用法
  9. go channel
  10. Substrings (C++ find函数应用)