之前写过一篇文章,《合并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这个选项就可以了。
我的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同号)
如果喜欢,谢谢转发。