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 .

相关推荐
北极象3 小时前
Flying-Saucer HTML到PDF渲染引擎核心流程分析
前端·pdf·html
一只酸奶牛^_^3 小时前
java实现pdf添加水印
java·pdf
还是叫明5 小时前
将PDF每一页导出一张图片(C#,.NET)
pdf
E_ICEBLUE7 小时前
Python 实现 PDF 表单域的自动化创建与智能填充
python·pdf·自动化·表单域
莫非技术栈18 小时前
51AI工具集:网站更新了图片工具、PDF工具、视频工具、音频工具
pdf
御坂10101号2 天前
爱泼斯坦文件技术细节:伪扫描、元数据清洗与撤销涂黑
图像处理·pdf·ocr
羑悻的小杀马特2 天前
本地PDF处理神器Stirling - PDF搭配cpolar
网络协议·pdf·电脑·cpolar
xiaoliuliu123453 天前
Foxit_PDFOEM_xp85安装步骤详解(附PDF阅读与表单填写教程)
pdf
MaiTube&Maipdf3 天前
控制PDF外发教程:麦瓜PDF 3步设权限
pdf