SMARTFORMS打印后转存为PDF文件相关问题
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文件相关问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: smartforms设置纸张打印格式
- 下一篇: 集团公司有什么性质