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

作者:郑德鼎 约 4 分钟阅读 更新日期:2025-03-02 1 年前更新 标签:ABAP, Data Engineering, SD, 开发, 数据工程, 销售分销
Solution 通过 SAP 打印 PDF 时打印机没反应 - 封面图
Solution 通过 SAP 打印 PDF 时打印机没反应 - 封面图

之前写过一篇文章,《 [ ** 合并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** 这个选项就可以了。

Solution 通过 SAP 打印 PDF 时打印机没反应 - 封面图
Solution 通过 SAP 打印 PDF 时打印机没反应 - 封面图

我的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同号)** ****

**如果喜欢,谢谢转发。**

郑德鼎

关于作者:郑德鼎

企业信息化与 SAP 技术顾问,长期专注 SAP ABAP、FI/CO、MM、SD 等模块的技术分享与实战经验总结。查看更多介绍

来源说明:本文内容由「Solution通过SAP打印PDF时打印机没反应.md」整理生成,仅用于内部技术分享与学习交流。