之前写过一篇文章,《 [ ** 合并PDF并打印 **
](http://mp.weixin.qq.com/s?__biz=MzU0ODE5MDc2NA==&mid=2247484077&idx=1&sn=293f24d1e0e20b3fee28ec88b28a5e5c&chksm=fb43adeecc3424f88b2cebee1375ea946fc96d0e642bbdaffd900933bf4a23f6128667deeb07&scene=21#wechat_redirect)
》。
但是有朋友遇到一个案例,通过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_dialogEXPORTINGwindow_title = '选择打开文件'file_filter = 'PDF (*.pdf)|*.pdf|'CHANGINGfile_table = lt_filesrc = l_rcEXCEPTIONSOTHERS = 1.
READ TABLE lt_files INTO l_file INDEX 1.CHECK sy-subrc = 0.
CALL FUNCTION 'GUI_UPLOAD'EXPORTINGfilename = l_filefiletype = 'BIN'IMPORTINGfilelength = l_filesizeTABLESdata_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_UPLOADFORM 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'EXPORTINGrqdest = '*'update = 'X'IMPORTINGsel_rqdest = l_rqdestsel_rqdestl = l_rqdestlEXCEPTIONSOTHERS = 1.
CALL FUNCTION 'ADS_CREATE_PDF_SPOOLJOB'EXPORTINGprinter = l_rqdestldest = l_rqdestpages = 1pdf_data = gv_pdf_xstrimmediate_print = 'X' "如需立即打印,设置为Xauto_delete = 'X'IMPORTINGspoolid = l_spoolidEXCEPTIONSOTHERS = 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同号)** ****
**如果喜欢,谢谢转发。**