Solution:通过SAP打印PDF时,打印机没反应

之前写过一篇文章,《合并PDF并打印》。

但是有朋友遇到一个案例,通过HP等普通打印机打印PDF的时候没问题,但通过其他类型的打印机,比如用佳博的二维码打印机打印PDF,打印机没有反应。

碰巧我这边也有一个二维码打印机,我做了个DEMO试验了一下,选择本地的随便一个PDF,然后通过函数将其放到PRINT SPOOL里,并执行打印。

(说明:DEMO中的函数ADS***需要SAP ABA 755才可以运行)

DATA: gv_pdf_xstr  TYPE xstring.


PERFORM pdf_upload.
PERFORM pdf_print.


FORM pdf_upload.
DATA: lt_files TYPE filetable,
l_file   TYPE string,
l_rc     TYPE i.
DATA: lt_pdf_tab TYPE TABLE OF rspolpbi,
ls_line    TYPE rspolpbi,
l_filesize TYPE i,
l_rest     TYPE i,
l_chunk    TYPE i.


CALL METHOD cl_gui_frontend_services=>file_open_dialog
EXPORTING
window_title = '选择打开文件'
file_filter  = 'PDF (*.pdf)|*.pdf|'
CHANGING
file_table   = lt_files
rc           = l_rc
EXCEPTIONS
OTHERS       = 1.


READ TABLE lt_files INTO l_file INDEX 1.
CHECK sy-subrc = 0.


CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename   = l_file
filetype   = 'BIN'
IMPORTING
filelength = l_filesize
TABLES
data_tab   = lt_pdf_tab.


l_rest = l_filesize.
LOOP AT lt_pdf_tab INTO ls_line.
IF l_rest < 128.
l_chunk = l_rest.
ELSE.
l_chunk = 128.
ENDIF.


CONCATENATE gv_pdf_xstr ls_line-data(l_chunk) INTO gv_pdf_xstr IN BYTE MODE.
l_rest = l_rest - l_chunk.
ENDLOOP.
ENDFORM.                    " PDF_UPLOAD
FORM pdf_print.
DATA: l_rqdestl TYPE rspolname,
l_rqdest  TYPE rspopname.
DATA: l_spoolid TYPE rspoid,
l_msg     TYPE string.


CALL FUNCTION 'RSPO_R_RHELP_PRIN'
EXPORTING
rqdest      = '*'
update      = 'X'
IMPORTING
sel_rqdest  = l_rqdest
sel_rqdestl = l_rqdestl
EXCEPTIONS
OTHERS      = 1.


CALL FUNCTION 'ADS_CREATE_PDF_SPOOLJOB'
EXPORTING
printer         = l_rqdestl
dest            = l_rqdest
pages           = 1
pdf_data        = gv_pdf_xstr
immediate_print = 'X'    "如需立即打印,设置为X
auto_delete     = 'X'
IMPORTING
spoolid         = l_spoolid
EXCEPTIONS
OTHERS          = 1.
ENDFORM.

结果:

HP打印机正常打印,佳博打印机无任何反应。

而直接打印PDF时,选择用佳博打印机打印,是没问题的。

SPAD中的打印机设置中,设备类型:PDF1、PDFUC、CNPDF等都试过了,不行,访问方法用的G。

猜测原因是因为SAP将PDF发送给佳博打印机时出现错误,导致佳博无法正常接收。

之后就在support.sap.com上搜SAP PDF PRINT相关的资料,最终找到解决方案并成功打印。前提,对GUI客户端版本有要求(760及以上)。

解决办法其实很简单,运行GUI的安装程序,勾选SAP PDFPRINT这个选项就可以了。

41bf342821bea0a1db463ffb85189ea7.png


我的SE38插件工具箱——视频介绍:

https://www.bilibili.com/video/BV1hP4y1N7Qz/

联系286503700获取

ABAP文章汇总:

https://mp.weixin.qq.com/s/djmMeM0qfDxPPwxbjuJABA

Excel文章汇总:

https://mp.weixin.qq.com/s/NwJ0SzIrn9hVmaCMo-UYyA

网盘永久链接:

https://mp.weixin.qq.com/s/f_WwKZdwM-vPEstTjjz_eQ

关注公众号,点下方菜单打开上面的链接,更方便哦。

笔者微信:286503700(QQ同号)

如果喜欢,谢谢转发。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值