ABAP PDF

CLEAR F_FORMNAME .

F_FORMNAME = P_F_NAME.

CLEAR F_FUNCNAME .

CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'

EXPORTING

FORMNAME = F_FORMNAME

IMPORTING

FM_NAME = F_FUNCNAME.

CLEAR:OUTPUT,CONTROL_PARAMETERS.

  • CONTROL_PARAMETERS-NO_OPEN = 'X'.
  • CONTROL_PARAMETERS-NO_CLOSE = 'X'.
    CONTROL_PARAMETERS-GETOTF = 'X'.
    CONTROL_PARAMETERS-preview = ' '. "不打印预览
    CONTROL_PARAMETERS-no_open = 'X'. "没有新的假脱机请求
    CONTROL_PARAMETERS-no_close = 'X'. "不关闭假脱机请求
    CONTROL_PARAMETERS-no_dialog = 'X'. "没有对话窗口打开

EXPORT GT_HEAD GT_ITEM TO MEMORY ID 'ZSM002_2'.

CALL FUNCTION 'SSF_OPEN'

EXPORTING

CONTROL_PARAMETERS = CONTROL_PARAMETERS

OUTPUT_OPTIONS = OUTPUT

EXCEPTIONS

FORMATTING_ERROR = 1

INTERNAL_ERROR = 2

SEND_ERROR = 3

USER_CANCELED = 4

OTHERS = 5.

CALL FUNCTION F_FUNCNAME

EXPORTING

CONTROL_PARAMETERS = CONTROL_PARAMETERS

OUTPUT_OPTIONS = OUTPUT

复制代码
   GS_HEAD            = WA_HEAD
复制代码
   I_NUM              = 5

TABLES

T_HEAD = GT_HEAD

T_ITEM = GT_ITEM

EXCEPTIONS

FORMATTING_ERROR = 1

INTERNAL_ERROR = 2

SEND_ERROR = 3

USER_CANCELED = 4.

DATA: w_ctrlop TYPE ssfctrlop, "Smart Forms: 控制结构 "W_CONTROL

w_compop TYPE ssfcompop, "SAP Smart Forms: 智能写作器 (传输) 选项"W_OUTPUT.

w_return TYPE ssfcrescl. "Smart Forms: 表格打印结束时返回值

DATA: len TYPE i,

w_filesize TYPE i,

lv_xstring type xstring,

l_data type string,

g_pdf_xstring TYPE xstring,

l_lines TYPE TABLE OF tline WITH HEADER LINE.

DATA doctab TYPE TABLE OF docs WITH HEADER LINE.

DATA itab LIKE tline OCCURS 0 WITH HEADER LINE .

DATA: binary_tab TYPE STANDARD TABLE OF x255.

REFRESH L_BINARY_TAB.

CALL FUNCTION 'SSF_CLOSE'

IMPORTING

JOB_OUTPUT_INFO = w_return "LW_SSFCRESCL

EXCEPTIONS

FORMATTING_ERROR = 1

INTERNAL_ERROR = 2

SEND_ERROR = 3

OTHERS = 4.

  • CALL FUNCTION 'SSF_READ_ERRORS'

  • IMPORTING

复制代码
   ERRORTAB = ERRTAB.
  • CALL FUNCTION 'CONVERT_OTF_2_PDF' "转换otf数据为二进制PDF文件

    ** EXPORTING

    ** use_otf_mc_cmd = 'X'

    ** archive_index = archive_index

  • IMPORTING

复制代码
   bin_filesize           = len
  • TABLES

复制代码
   otf                    = w_return-otfdata[]
复制代码
   doctab_archive         = doctab
复制代码
   lines                  = l_lines[]
  • EXCEPTIONS

复制代码
   err_conv_not_possible  = 1
复制代码
   err_otf_mc_noendmarker = 2.
  • PERFORM SMARTFORM_END.

    CALL FUNCTION 'CONVERT_OTF' "转换otf数据为二进制PDF文件

    EXPORTING

    format = 'PDF'

    IMPORTING

    bin_file = lv_xstring

    bin_filesize = len

    TABLES

    otf = w_return-otfdata[]

复制代码
   doctab_archive         = doctab
  lines                  = l_lines[]

EXCEPTIONS

err_conv_not_possible = 1

err_otf_mc_noendmarker = 2.

  • data:lv_encoding type ABAP_ENCOD.

  • lv_encoding = '8450'.

  • CALL FUNCTION 'HR_KR_XSTRING_TO_STRING'

  • EXPORTING

复制代码
   from_codepage = lv_encoding   "lv_codepage_numc "lv_encoding
复制代码
   in_xstring    = lv_xstring
  • IMPORTING

复制代码
   out_string    = l_data.

"方案二 直接推送PDF

CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'

EXPORTING

buffer = lv_xstring

IMPORTING

OUTPUT_LENGTH = L_OUTPUT_LENGTH

TABLES

binary_tab = L_BINARY_TAB."binary_tab. "

P_FSIZE = L_OUTPUT_LENGTH.

*

CALL FUNCTION 'SCMS_BINARY_TO_STRING'

EXPORTING

INPUT_LENGTH = L_OUTPUT_LENGTH

复制代码
   ENCODING     = lv_encoding

IMPORTING

TEXT_BUFFER = l_data
*

复制代码
   OUTPUT_LENGTH = len

TABLES

BINARY_TAB = L_BINARY_TAB. "binary_tab.
*

  • CALL FUNCTION 'MD5_CALCULATE_HASH_FOR_CHAR'

  • EXPORTING

复制代码
   data       = l_data
  • IMPORTING

复制代码
   hash       = P_FMD5
  • EXCEPTIONS

复制代码
  internal_error = 1
复制代码
  OTHERS         = 2.

CALL FUNCTION 'MD5_CALCULATE_HASH_FOR_RAW'

EXPORTING

length = L_OUTPUT_LENGTH

IMPORTING

hash = P_FMD5

TABLES

data_tab = L_BINARY_TAB "binary_tab

EXCEPTIONS

internal_error = 1

OTHERS = 2 .

TRANSLATE P_FMD5 to LOWER CASE .

相关推荐
开开心心_Every13 小时前
限时免费加密、隐藏、锁定文件文件夹好工具
运维·服务器·人工智能·edge·pdf·逻辑回归·深度优先
不知名的老吴14 小时前
PDF神器-PDF Candy v2.89全能PDF工具箱便携版
pdf
其实秋天的枫18 小时前
2026年新大纲普通话考试真题题库50套【PDF电子版】
经验分享·pdf
PieroPc19 小时前
用tkinter 做一个通过 扫描仪硬件 扫描纸质文档的软件 支持pdf
python·pdf·扫描
优化控制仿真模型1 天前
【26年最新】新大纲普通话考试真题题库50套~PDF电子版
经验分享·pdf
优化控制仿真模型2 天前
【2026年6月最新】英语四级历年真题及答案解析PDF电子版(2015-2025年12月)
经验分享·pdf
开开心心就好2 天前
进程启动瞬间暂停工具,适合调试多开
linux·运维·安全·pdf·智能音箱·智能手表·1024程序员节
yivifu3 天前
完美的PyMuPDF删除pdf页面文字水印
python·pdf·pymupdf·去水印
weixin_441003643 天前
廖华英《中国文化概况》修订版+批注版+译文版+笔记+课件PPT+配套题库 PDF
笔记·pdf·中国文化概况
Source.Liu3 天前
【office2pdf】office2pdf 纯 Rust 实现的 Office 转 PDF 库
rust·pdf·office2pdf