1.转成PDF文件时可以参考的函数(本人只试过一种其它有待尝试):

CONVERT_OTFSPOOLJOB_2_PDF;
CONVERT_OTF_2_PDF;
SX_OBJECT_CONVER_OTF_PDF;
HRHAP_DOC_CONVERT_SMF_TO_PDF.

2.保存后出现了乱码(建议ADOBE READER最新的来读,可以避免乱码,不行了才找其它原因)

t-code spad
新建一个输出设备或用LP01,关键是选对设备类型,据说CN 开头的都是可以的。
例如 CNSAPWIN : MS WINDOWS DRIVER VIA SPLPD 然后保存就行了
调用smartforms的时候,用刚定义的这个就行了
调用SMARTFORMS里面有个相关参数可以适当修改(有些不是必须的根据自己情况设置)

(DATA L_CONTROL_PARAMETERS TYPE SSFCTRLOP.)
      L_CONTROL_PARAMETERS-GETOTF    = ‘X’.   “此参数必须,不然不会导出PDF而直接显示smartform
      L_CONTROL_PARAMETERS-NO_CLOSE  = ”.
      L_CONTROL_PARAMETERS-NO_DIALOG = ‘X’.   “不显示打印对话框
      (DATA L_OUTPUT_OPTIONS TYPE SSFCOMPOP.)
      L_OUTPUT_OPTIONS-BCS_LANGU = ‘1′.
      L_OUTPUT_OPTIONS-TDDEST = ‘DEFAULT’.

3.以下打印时调用部分参考代码
FORM FRM_USER_COMMAND_ALV
USING R_UCOMM  LIKE SY-UCOMM
                        RS_SELFIELD TYPE SLIS_SELFIELD.”行数 
*—>smartforms 中相关参数定义
  DATA:L_FM_NAME TYPE RS38L_FNAM.
  DATA:L_JOB_OUTPUT_INFO TYPE SSFCRESCL,
       L_JOB_OUTPUT_OPTIONS TYPE SSFCRESOP,
       L_LEN TYPE I.
  DATA L_CONTROL_PARAMETERS TYPE SSFCTRLOP.
  DATA L_OUTPUT_OPTIONS TYPE SSFCOMPOP.
  DATA BEGIN OF LT_PDF OCCURS 10.
          INCLUDE STRUCTURE TLINE.
  DATA END OF LT_PDF.

CASE R_UCOMM.
    WHEN ‘&ZRNT’.

CLEAR: L_FM_NAME.
      REFRESH IT_HEAD .
      IT_HEAD = IT_ALV.
      DELETE ADJACENT DUPLICATES FROM IT_HEAD COMPARING RSNUM.

CALL FUNCTION ‘SSF_FUNCTION_MODULE_NAME’
        EXPORTING
          FORMNAME                 = ‘ZMMR03′
*       VARIANT                  = ‘ ‘
*       DIRECT_CALL              = ‘ ‘
        IMPORTING
          FM_NAME                  = L_FM_NAME
*     EXCEPTIONS
*       NO_FORM                  = 1
*       NO_FUNCTION_MODULE       = 2
*       OTHERS                   = 3
                .
      IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      L_CONTROL_PARAMETERS-GETOTF    = ‘X’.   “此参数必须,不然不会导出PDF而直接显示smartform
      L_CONTROL_PARAMETERS-NO_CLOSE  = ”.
*     L_CONTROL_PARAMETERS-NO_DIALOG = ‘X’.   “不显示打印对话框
*     L_OUTPUT_OPTIONS-BCS_LANGU = ‘1′.
*     L_OUTPUT_OPTIONS-TDDEST = ‘DEFAULT’.

CALL FUNCTION L_FM_NAME
        EXPORTING
*   ARCHIVE_INDEX              =
*   ARCHIVE_INDEX_TAB          =
*   ARCHIVE_PARAMETERS         =
CONTROL_PARAMETERS         = L_CONTROL_PARAMETERS
*   MAIL_APPL_OBJ              =
*   MAIL_RECIPIENT             =
*   MAIL_SENDER                =
  OUTPUT_OPTIONS             = L_OUTPUT_OPTIONS
    USER_SETTINGS              = ‘X’
  IMPORTING
*   DOCUMENT_OUTPUT_INFO       =
    JOB_OUTPUT_INFO            = L_JOB_OUTPUT_INFO
    JOB_OUTPUT_OPTIONS         = L_JOB_OUTPUT_OPTIONS
        TABLES
          IT_ALV                     = IT_ALV
          IT_HEAD                    = IT_HEAD
* EXCEPTIONS
*   FORMATTING_ERROR           = 1
*   INTERNAL_ERROR             = 2
*   SEND_ERROR                 = 3
*   USER_CANCELED              = 4
*   OTHERS                     = 5
                .
      IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      IF SY-SUBRC EQ 0.
*—>转成PDF
        CALL FUNCTION ‘CONVERT_OTF’
          EXPORTING
            FORMAT                      = ‘PDF’
*           MAX_LINEWIDTH               = 132
*           ARCHIVE_INDEX               = ‘ ‘
*           COPYNUMBER                  = 0
*           ASCII_BIDI_VIS2LOG          = ‘ ‘
*           PDF_DELETE_OTFTAB           = ‘ ‘
          IMPORTING
            BIN_FILESIZE                = L_LEN
*           BIN_FILE                    =
          TABLES
            OTF                         = L_JOB_OUTPUT_INFO-OTFDATA
            LINES                       = LT_PDF[]
*         EXCEPTIONS
*           ERR_MAX_LINEWIDTH           = 1
*           ERR_FORMAT                  = 2
*           ERR_CONV_NOT_POSSIBLE       = 3
*           ERR_BAD_OTF                 = 4
*           OTHERS                      = 5
                  .
        IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.
        IF SY-SUBRC EQ 0.
*—>下载
          CALL METHOD CL_GUI_FRONTEND_SERVICES=>GUI_DOWNLOAD
            EXPORTING
              BIN_FILESIZE = L_LEN
              FILENAME     = P_FNAME  ”此处是路径,例D:\TEMP.PDF
              FILETYPE     = ‘BIN’
            CHANGING
              DATA_TAB     = LT_PDF[]
            EXCEPTIONS
              OTHERS       = 1.
          IF SY-SUBRC <> 0.
*MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
*WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
          ENDIF.
        ENDIF.
      ENDIF.
  ENDCASE.

ENDFORM.                    “user_command

SMARTFORMS打印后转存为PDF文件相关问题相关推荐

  1. 以无代码的方式将Form打印内容转成生成PDF文件

    企业在应用SAP ERP时,可能需要大量 打印 通信文档如催款单,对账单,付款通知等.通过生成PDF格式的通信文件然后用电子邮件的方式发给客户或供应商,不仅大在降低打印成本和邮递费用,加快了与业务合作 ...

  2. Java 读写docx文件后直接转成PDF文件方法

    java将docx文件转成pdf文件的实现方法,需要的jar包下载地址:https://download.csdn.net/download/keke921231/10529672 1.读写docx文 ...

  3. js pdf文件 如何调用打印机打印_可以使用Javascript打开PDF文件的打印对话框吗?...

    繁花不似锦 我通常使用一种类似于如何使用JavaScript打印PDF(eHow.com)的方法iframe.一个容纳打印触发器的功能......function printTrigger(eleme ...

  4. Python爬虫:多线程的应用和pdf文件相关操作

    多线程的应用 前程无忧岗位爬虫 import requests from re import search from multiprocessing import Process, Queue fro ...

  5. freemarker生成word文档,通过libreoffice完美转为pdf文件排版不乱(包含调用浏览器打印pdf)

    了解libreoffice的朋友都知道,freemarker是用xml生成的word文档,libreoffice打开这些文档会不兼容,会直接显示xml代码或排版差别很大,尤其是文档中包含一些复杂表格的 ...

  6. 标签打印软件输出PDF文件过大时如何解决?

    在用标签打印软件制作标签输出PDF文件时,如果数据过多可能会出现输出的PDF文件过大,这种情况如何解决呢?在标签打印软件中,输出PDF文件时可以对PDF文件进行压缩和拆分,压缩方式有六种,分别为:默认 ...

  7. 【iOS】保存PDF文件和打印功能

    新的需求又来了,这次的需求是用户可以在App中打印当前页面,也可以将当前页面保存成pdf文件,以便日后打印. 首先解决一下保存文件的问题,用户需要在文件管理中能查看pdf文件.iOS允许暴露给用户的只 ...

  8. 解决pdf文件无法打印问题的最好方法

    作者:佚名  文章来源:本站原创  点击数:309  更新时间:2012-5-7             解决pdf文件无法打印问题的最好方法:先下载PDFSpliter软件并安装.打开PDFSpli ...

  9. html 加载pdf文件内容不显示不出来,pdf.js首次加载pdf文件时找不到pdf文件,刷新后才能出现pdf文件...

    前台点击文件学码的定一近,更工广款近,更工广款近,更名后,后台通过openoffice将doc文件转为pdf格式文件,然后存放在服务器tomcat'中,pdf.js首次加载服务器中tomcat中的转化 ...

最新文章

  1. 我认识Linux的小羞愧历史
  2. HACMP 认证学习系列,第 2 部分-1:计划与设计
  3. 用c# 实现设计器 DesignSurface
  4. python调用另一个类的返回值_python – 在OpenERP中调用另一个表单的方法返回值
  5. 【经典面试题一】最长公共子序列(经典动态规划题)
  6. 【译】Economics of Fees and Gas
  7. .NET三种异步模式(APM、EAP、TAP)
  8. 如何成为架构师?3条有效的实战经验
  9. pytorch AUTOGRAD
  10. 2021年中国蛋鸡养殖设备市场趋势报告、技术动态创新及2027年市场预测
  11. Scala实现冒泡排序、归并排序和快速排序
  12. asp2.0 GridView OnRowDataBound event
  13. 迪文屏幕T5UID3平台学习笔记零:迪文屏幕的学习和开发
  14. 1分钟教会你如何视频转文字,简单又实用
  15. python爬取天极网手机信息代码
  16. Android手机目前常见的分辨率
  17. 万科又出新招,小市民只有看热闹的份
  18. 一分钟带你解读光纤收发器,秒懂(一)
  19. java不同数据类型之间的运算法则
  20. 【开源】F2FS技术拆解

热门文章

  1. [洛谷P4705]玩游戏
  2. 《图数据库(第2版)》——2.1 关系型数据库缺少联系
  3. 由String.equals()方法引起的一系列思考
  4. 在现有项目中使用AspNet Identity 2.0 实战
  5. java文件读写操作大全
  6. 【ubuntu】解决窗口管理器 不支持透明问题(11.04之前版本不支持)
  7. linux redhat5下安装oracle10g
  8. 期盼的中国SB秀终于开始了
  9. 什么是爱?[转载朋友发给我的信息]
  10. APScheduler 浅析