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 .

相关推荐
huaweichenai21 小时前
spring boot操作PDF
java·spring boot·pdf
开开心心就好1 天前
批量提取PDF中的图片,直接导出原图
前端·javascript·支持向量机·智能手机·pdf·html·启发式算法
泡海椒2 天前
PDF 表格样式优化:jquick-pdf 边框、圆角、背景色
java·开发语言·pdf
泡海椒3 天前
jquick-pdf 表格实战:动态数据 PDF 报表生成
java·开发语言·pdf
泡海椒3 天前
jquick-pdf 表格行列尺寸控制实战:单元格合并的可行边界
java·开发语言·pdf
java_logo4 天前
Docker 部署 Gotenberg 完整教程:Compose 搭建文档转 PDF API
docker·pdf·chromium·libreoffice·文档转换·轩辕镜像·gotenberg
泡海椒4 天前
jquick-pdf 防止 PDF 内容分页断裂:keepTogether 属性妙用
java·开发语言·pdf
泡海椒4 天前
jquick-pdf 文本元素实战:段落、行内文本、制表符用法详解
java·开发语言·pdf
SamChan905 天前
Python 处理小语种 PDF 的编码坑:重音字符、连字与 (cid:xx) 乱码的解决方案
python·ai·pdf·机器翻译
微咣科技5 天前
平台化工业AI再突破|大捷智能携手岚图汽车,打造车身焊装智能设计行业标杆
pdf·音视频