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 .

相关推荐
SamChan9011 小时前
PDF翻译API的JWT签名鉴权与速率限制设计:安全实战指南
网络·安全·pdf
AmyLin_200116 小时前
PDF 脱敏技术【1】:PDF 脱敏不是盖黑框:为什么敏感信息仍能被复制,正确的保护方式是什么?
安全·pdf·sdk·脱敏·文档安全·pdf 脱敏·智能脱敏
denggun123451 天前
PDF解析 Mineru
pdf
10mAh1 天前
【PaddleOCR】扫描版 PDF 无法复制、RAG 检索为空怎么解决?——OCR 解析与版面还原实战
前端·pdf·ocr
慧都小妮子2 天前
PDF图片提取总“褪色“?Aspose.PDF 多层级提取能力详解
pdf·c#·.net·图片处理·文档处理·色彩空间
SamChan902 天前
PDF翻译中的并发控制:用Semaphore防止API限流与资源耗尽
java·jvm·pdf
ilvcn3 天前
在线 PDF 翻译工具实测:整份翻译保留表格版式,长文档处理方案
pdf
accept 99%3 天前
python版提取 PDF 的常用第三方库与工具
开发语言·python·pdf
AmyLin_20013 天前
PDF 色彩保真工程实践【6】怎么证明“真的无损“?——SHA-256 校验与三个真实踩坑
c++·pdf·内存·sdk·调试·印刷
zyplayer-doc3 天前
zyplayer-doc企业知识库能做什么:从文档创建、权限管理到AI问答的完整能力
大数据·javascript·数据库·人工智能·pdf·word