2020-09-24 18:04发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
你好朋友
我要求文件必须以PDF格式存储在SAP目录(应用程序服务器-AL11)中。 然后,需要将此PDF文件转换为OTF格式。
请帮助解决此要求。
此致
Pranali
SAP仅提供从OTF到PDF的转换器。
如果以前使用具有SAPWIN设备类型的输出设备,则可以使用报告RSPO0022将设备类型SAPWIN分配给XDC acrobat6。 确保已从SAP Note 1672781中导入了新版本的RSPO0022。在打印交互式表单时,如果使用设备类型为SAPWIN的打印机进行打印,则系统会生成PDF数据流。
*****************测试报告
报告ztest_pdf2spool。 包含fp_utilities。 "#EC INCL_OK 数据gv_cust_id类型s_customer。数据:内容类型fpcontent。数据gs_outputparams类型sfpoutputparams。数据:total_pages类型fppagecount。 > 参数:fpages类型i修改ID向上更新。 初始化。 选择开始。 执行上载数据。 > PERFORM set_outpars。 PERFORM send_pdf_to_spool。 FORM send_pdf_to_spool。 DATA:大小TYPE i。 DATA:total_size TYPE i。 DATA:假脱机类型rspoid。 br>数据:复制类型rspocopies。数据:生存期。 大小= xstrlen(content)。将大小添加到total_size。 副本= gs_outputparams-copys。寿命= gs_outputparams-寿命。 调用功能'ADS_CREATE_PDF_SPOOLJOB'导出 dest = gs_outputparams-dest 页面= Total_pages pdf_data =内容名称= gs_outputparams-数据集 后缀1 = gs_outputparams-后缀1 后缀2 = gs_outputparams-后缀2 副本=副本 Instant_print = gs_outputparams-reqimm auto_delete = gs_outputparams-reqdel 标题行= gs_outputparams-covtitle 接收者= gs_outputparams-receiver 除法= gs_outputparams-division 权限= gs_outputparams-authority 寿命=寿命< br> IMPORTING 假脱机=假脱机例外情况 no_data = 1 not_pdf = 2 错误_开发类型= 3 操作失败= 4 无法写入文件= 5 设备丢失= 6 < br> no_such_device = 7 其他=8。如果sy-subrc <>0。消息ID sy-msgid类型sy-msgty编号sy-msgno 与sy-msgv1 sy-msgv2 sy -msgv3 sy-msgv4。 ENDIF。 消息s060(ssfcomposer)带有假脱机。 ENDFORM。 " SEND_PDF_To_SPOOL FORM上载数据。 包含fp_spool_constants。 DATA:名称TYPE字符串,文件类型TYPE char10,< br>文件表TYPE文件表, rc类型i, guiobj类型引用cl_gui_frontend_services, uact类型i。 DATA:datatab类型ssfdata的表。 DATA:扩展类型字符串。 br>数据:bin_filesize TYPE i。数据:缓冲区TYPE xstring。 扩展名= c_file_ext_pdf。文件类型='BIN'。 CONCATENATE'*'扩展名INTO名称。 创建对象guiobj。 调用方法guiobj-> file_open_dialog 导出 default_filename =名称 CHANGING file_table = filetable rc = rc user_action = uact 例外 file_open_dialog_failed = 1 cntl_error = 2 error_no_gui =3。如果uact = guiobj-> action_cancel。离开程序。 ENDIF。 读取 TABLE文件表INDEX 1 INTO名称。检查sy-subrc =0。 调用功能'GUI_UPLOAD'导出文件名=名称文件 ype =文件类型导入文件长度= bin_filesize 表 data_tab = datatab 例外情况 file_open_error = 1 file_read_error = 2 invalid_type = 3 no_batch = 4 其他=5。如果sy-subrc <>0。消息ID sy-msgid类型sy-msgty编号sy-msgno 与sy-msgv1 sy-msgv2 sy-msgv3 sy- msgv4。离开程序。 ENDIF。 "#EC * 呼叫功能'SCMS_BINARY_TO_XSTRING'导出 input_length = bin_filesize 导入缓冲=缓冲表格 Binary_tab = datatab 例外失败= 1 其他=2。如果sy-subrc <>0。消息ID sy-msgid类型sy-msgty编号sy-msgno 与 sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4。离开程序。 ENDIF。 content =缓冲区。 total_pages = fpages。 ENDFORM。< br> FORM set_outpars。 数据:ls_outpars类型sfpoutpar。 通话功能'FPCOMP_SHOW_DIALOG'更改 ie_outpar = ls_outpars 例外情况取消= 1 用法错误= 2 系统错误= 3 内部错误= 4 其他=5。如果sy-subrc <>0。消息ID sy-msgid类型'S'编号 sy-msgno 与sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4。离开程序。 ELSE。将ls_outpars移至gs_outputparams。 ENDIF。 < br> ENDFORM。
一个不同的答案-我做了什么。 过去:
1。 上载PDF
我已经使用功能模块GUI_UPLOAD和BIN类型。 现在请牢记有对象。 进行搜索。 我使用的是旧版本的SAP。
2。 如果要显示它。
呼叫方法pdf_html_control-> load_data 出口 url ='smart.pdf' 大小= pdf_size 类型='文字' 子类型='pdf' 输入 Assigned_url = l_url 改变 data_table = l_pdf_data [] 例外情况 其他= 1。 如果sy-subrc <> 0。 消息="内部IT错误"。 万一。 *显示数据 呼叫方法pdf_html_control-> show_data 出口 网址= l_url 例外情况 其他= 1。 如果sy-subrc <> 0。 消息="内部IT错误"。 ENDIF。
3。 使用打开数据集作为输入/关闭数据集。 保存到您的A11":directory"。 确保您具有有权访问SAP用户的目录。 如果需要,请在al11的配置中映射您的目录。 参见下面的打开/关闭。 (我检查目录,如果目录不存在,则创建一个新目录)
在二进制模式下输出的OPEN DATASET file_name。 如果sy-subrc <> 0。 message ='系统无法将文件存储到服务器上'。 出口。 万一。 放大pdf。 将pdf传输到file_name。 结局。 CLOSE DATASET file_name。
4。 检索PDF
OPEN DATASET p_file_name用于在二进制模式下输入。 如果sy-subrc <> 0。 CONCATENATE'无法打开文件'p_file_name INTO p_message按空格分隔。 出口。 万一。 清除p_pdf。 刷新p_pdf。 做。 读取数据集p_file_name INTO p_pdf。 如果sy-subrc <> 0。 出口。 万一。 附录p_pdf。 ENDDO。
5。 从SAP内部创建PDF。 使用智能表格。 创建并填写智能表单后,请运行以下命令-这会将PDF另存为字符串。 阅读功能模块上的文档。
清除消息。 pdf_cp-getotf ='X'。 pdf_cp-no_dialog ='X'。 通话功能fm_name 出口 control_parameters = pdf_cp user_settings ='' mdesc = matdesc mqty = mqty muom = tuom mdol = mdol 单价=单价 mstartdate = mstartdate Menddate = Menddate vbdka =电视台 tvko =电视 addrname1 = addrname1 addrstras = addrstras addrort01 = addrort01 addrregion = addrregion addrpstlz = addrpstlz phoneco =电话公司 传真=传真 prttelefax = prttelefax 私房=私房 prtfax = prtfax 输入 job_output_info = pdf_joi 桌子 addr = addr 例外情况 formatting_error = 1 internal_error = 2 send_error = 3 user_canceled = 4 其他= 5。 如果pdf_joi-otfdata []是INITIAL。 出口。 万一。 *将OTF数据转换为PDF格式 通话功能'CONVERT_OTF_2_PDF' 出口 archive_index =存档索引 输入 bin_filesize = bin_filesize 桌子 otf = pdf_joi-otfdata 线=线 doctab_archive = doctab 例外情况 err_conv_not_possible = 1。 如果sy-subrc <> 0或line []是INITIAL。 出口。 万一。
最多设置5个标签!
SAP仅提供从OTF到PDF的转换器。
如果以前使用具有SAPWIN设备类型的输出设备,则可以使用报告RSPO0022将设备类型SAPWIN分配给XDC acrobat6。 确保已从SAP Note 1672781中导入了新版本的RSPO0022。在打印交互式表单时,如果使用设备类型为SAPWIN的打印机进行打印,则系统会生成PDF数据流。
*****************测试报告
报告ztest_pdf2spool。
包含fp_utilities。 "#EC INCL_OK
数据gv_cust_id类型s_customer。
数据:内容类型fpcontent。
数据gs_outputparams类型sfpoutputparams。
数据:total_pages类型fppagecount。
>
参数:fpages类型i修改ID向上更新。
初始化。
选择开始。
执行上载数据。
> PERFORM set_outpars。
PERFORM send_pdf_to_spool。
FORM send_pdf_to_spool。
DATA:大小TYPE i。
DATA:total_size TYPE i。
DATA:假脱机类型rspoid。 br>数据:复制类型rspocopies。
数据:生存期。
大小= xstrlen(content)。
将大小添加到total_size。
副本= gs_outputparams-copys。
寿命= gs_outputparams-寿命。
调用功能'ADS_CREATE_PDF_SPOOLJOB'
导出
dest = gs_outputparams-dest
页面= Total_pages
pdf_data =内容
名称= gs_outputparams-数据集
后缀1 = gs_outputparams-后缀1
后缀2 = gs_outputparams-后缀2
副本=副本
Instant_print = gs_outputparams-reqimm
auto_delete = gs_outputparams-reqdel
标题行= gs_outputparams-covtitle
接收者= gs_outputparams-receiver
除法= gs_outputparams-division
权限= gs_outputparams-authority
寿命=寿命< br> IMPORTING
假脱机=假脱机
例外情况
no_data = 1
not_pdf = 2
错误_开发类型= 3
操作失败= 4
无法写入文件= 5
设备丢失= 6 < br> no_such_device = 7
其他=8。
如果sy-subrc <>0。
消息ID sy-msgid类型sy-msgty编号sy-msgno
与sy-msgv1 sy-msgv2 sy -msgv3 sy-msgv4。
ENDIF。
消息s060(ssfcomposer)带有假脱机。
ENDFORM。 " SEND_PDF_To_SPOOL
FORM上载数据。
包含fp_spool_constants。
DATA:名称TYPE字符串,
文件类型TYPE char10,< br>文件表TYPE文件表,
rc类型i,
guiobj类型引用cl_gui_frontend_services,
uact类型i。
DATA:datatab类型ssfdata的表。
DATA:扩展类型字符串。 br>数据:bin_filesize TYPE i。
数据:缓冲区TYPE xstring。
扩展名= c_file_ext_pdf。
文件类型='BIN'。
CONCATENATE'*'扩展名INTO名称。
创建对象guiobj。
调用方法guiobj-> file_open_dialog
导出
default_filename =名称
CHANGING
file_table = filetable
rc = rc
user_action = uact
例外
file_open_dialog_failed = 1
cntl_error = 2
error_no_gui =3。
如果uact = guiobj-> action_cancel。
离开程序。
ENDIF。
读取 TABLE文件表INDEX 1 INTO名称。
检查sy-subrc =0。
调用功能'GUI_UPLOAD'
导出
文件名=名称
文件 ype =文件类型
导入
文件长度= bin_filesize
表
data_tab = datatab
例外情况
file_open_error = 1
file_read_error = 2
invalid_type = 3
no_batch = 4
其他=5。
如果sy-subrc <>0。
消息ID sy-msgid类型sy-msgty编号sy-msgno
与sy-msgv1 sy-msgv2 sy-msgv3 sy- msgv4。
离开程序。
ENDIF。 "#EC *
呼叫功能'SCMS_BINARY_TO_XSTRING'
导出
input_length = bin_filesize
导入
缓冲=缓冲
表格
Binary_tab = datatab
例外
失败= 1
其他=2。
如果sy-subrc <>0。
消息ID sy-msgid类型sy-msgty编号sy-msgno
与 sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4。
离开程序。
ENDIF。
content =缓冲区。
total_pages = fpages。
ENDFORM。< br>
FORM set_outpars。
数据:ls_outpars类型sfpoutpar。
通话功能'FPCOMP_SHOW_DIALOG'
更改
ie_outpar = ls_outpars
例外情况
取消= 1
用法错误= 2
系统错误= 3
内部错误= 4
其他=5。
如果sy-subrc <>0。
消息ID sy-msgid类型'S'编号 sy-msgno
与sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4。
离开程序。
ELSE。
将ls_outpars移至gs_outputparams。
ENDIF。
< br> ENDFORM。
一个不同的答案-我做了什么。 过去:
1。 上载PDF
我已经使用功能模块GUI_UPLOAD和BIN类型。 现在请牢记有对象。 进行搜索。 我使用的是旧版本的SAP。
2。 如果要显示它。
3。 使用打开数据集作为输入/关闭数据集。 保存到您的A11":directory"。 确保您具有有权访问SAP用户的目录。 如果需要,请在al11的配置中映射您的目录。 参见下面的打开/关闭。 (我检查目录,如果目录不存在,则创建一个新目录)
4。 检索PDF
5。 从SAP内部创建PDF。 使用智能表格。 创建并填写智能表单后,请运行以下命令-这会将PDF另存为字符串。 阅读功能模块上的文档。
一周热门 更多>