点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
你好专家
我使用CONVERT_ABAPSPOOLJOB_2_PDF来将ABAP线轴转换为PDF。 之后,我用翻译命令将132个长字符串转换为255个长字符串。
写作时:
使用'〜'转换ls_pdf_output。
然后在打开pdf时有时可以,但是有时我会收到错误消息"无法提取嵌入式字体…"
写作时:
数据:lv_translate_str TYPE字符串VALUE'〜'
使用lv_translate_str来翻译ls_pdf_output。
然后,当打开pdf时,到目前为止,一切正常。
预先感谢
Hagit
FORM convert_spool_to_pdf
使用pv_job_id类型tsp01-rqident
更改pt_mess_att类型esy_tt_solisti1
。
常量:lc_no(1)TYPE C VALUE''
,lc_device(4)类型c值'LOCL'
。
数据:lt_pdf_output tline的类型表
,lv_buffer TYPE字符串
,ls_mess_att TYPE solisti1"如pt_mess_att的行
。
通话功能'CONVERT_ABAPSPOOLJOB_2_PDF'
出口
src_spoolid = pv_job_id
no_dialog = lc_no
dst_device = lc_device
*导入
* pdf_bytecount =
表格
pdf = lt_pdf_output
例外情况
err_no_abap_spooljob = 1
err_no_spooljob = 2
err_no_permission = 3
err_conv_not_possible = 4
err_bad_destdevice = 5
user_cancelled = 6
err_spoolerror = 7
err_temseerror = 8
err_btcjob_open_failed = 9
err_btcjob_submit_failed = 10
err_btcjob_close_failed = 11
其他=12。
如果sy-subrc <> 0.
RAISE no_conv2pdf。
ELSE。
数据:lv_translate_str TYPE字符串值'〜'
,lv_translate_back_str TYPE字符串VALUE'〜'
。
*将132个长字符串转换为255个长字符串
循环AT lt_pdf_output INTO DATA(ls_pdf_output)。
*使用'〜'转换ls_pdf_output。
使用lv_translate_str来翻译ls_pdf_output。
合并lv_buffer ls_pdf_output INTO lv_buffer。
ENDLOOP。
*使用'〜'转换lv_buffer。
使用lv_translate_back_str转换lv_buffer。
做
ls_mess_att = lv_buffer。
附加ls_mess_att至pt_mess_att。
左移lv_buffer 255个位置。
如果lv_buffer是INITIAL。
退出。
ENDIF。
ENDDO。
ENDIF。
ENDFORM。 " convert_spool_to_pdf
与使用'〜'的TRANSLATE lv_buffer不同。
是因为,如翻译:
在分配过程中保存:
PS:我说的与PDF无关,是ABAP固有的。 关于 CONCATENATE ,您可以使用附加的RESPECTING BLANKS 而不是使用TRANSLATE技巧来保持空白是非常危险的,因为在使用TRANSLATE之前PDF可能包含波浪号,并猜测会发生什么...
感谢您的反馈。 如果您想"奖励"我,请继续遵循SAP社区的参与规则 。 支持有帮助的答案,或无用的答案,选择"最佳答案"(按钮"接受",如目前所做的那样),以正确的理由结束问题。 谢谢!
Sandra Rossi ,
感谢您的完美解释。
在我在网络上找到的所有示例中,都使用了翻译。
先前的代码是否等同于下面的代码?
谢谢
Hagit
我看着 参与规则,但没有找到如何奖励积分的参考。
您能否更详细地解释我该怎么做才能奖励积分? 在某些链接中,我看到答案旁边应该出现一个星星以便奖励。 但我看不到任何星星
您的意思是"对有助于解决问题的答案进行投票,对不起作用的答案进行投票"是指单击箭头(黄色) )? 我最多可以给2。这是什么意思? 然后,我只需要关闭线程?
最重要的是,您必须绝对使用参数pdf_bytecount来修剪多余的字节。
代码的问题是只处理字符,必须将字符转换为字节,然后才能修剪多余的字节。
最后,代码会附加 PDF到"某处",并且必须使用字节而不是字符来完成。 如果对字符进行处理,可能会遇到问题。
一周热门 更多>