ABAP,PDF,ADS,FORM,PRINT
ABAP怎么直接打印PDF文件?
https://faskomyabap.blogspot.com/2017/10/how-to-print-pdf-file-content-from-abap.html
里面的程序可以直接将本地文件打印出来,读一下过程,这个程序是把本地PDF文件使用upload函数到ABAP中,先是二进制,然后转成XSTRING,然后使用 连招 ADS_SR_OPEN, ADS_GET_PATH , ADS_SR_CONFIRM , ADS_SR_CLOSE可以直接打印或者发送到SPOOL。因为没找到官方文档 ,问了下deepseek,是这么解释这四个函数的作用的:
- ADS_SR_OPEN: 打开与存档系统的连接。初始化与外部存档系统(如文档管理系统DMS)的会话,建立通信通道。
- ADS_GET_PATH:获取文档存储路径。根据文档的唯一标识符(如存档键)获取其在存档系统中的物理路径或URL。
- ADS_SR_CONFIRM:确认操作并提交更改。在文档存储或修改后,显式确认操作以确保事务一致性(类似数据库提交)。
- ADS_SR_CLOSE:关闭连接。结束与存档系统的会话,释放资源。
还有一套函数也可以实现:RSPO_R_RHELP_PRIN,ADS_CREATE_PDF_SPOOLJOB
它的原理都是一样的,先转XSTRING,然后调ADS的API。ADS_CREATE_PDF_SPOOLJOB函数里也会调上面那4个函数。
常见问题
(如果百思不得解,试试升级GUI版本和SAP ABA组件,别问为什么,一问一个不吱声)
相关的程序和函数
TCODE:
- SP01: Spool Request List
- SPAD: Spool Administration
- PDF!
程序:
-
RSPO0020: Display Report for ADS Spool Job Parts
-
RSTXPDFT4: Converting OTP or Spool to PDF
函数组:
- SPOO
- SPADS
函数:
- RSPO_OUTPUT_SPOOL_REQUEST
- ADS_SR_OPEN
- ADS_GET_PATH
- ADS_SR_CONFIRM
- ADS_SR_CLOSE
- RSPO_R_RHELP_PRIN
- ADS_CREATE_PDF_SPOOLJOB
- SSF_FUNCTION_MODULE_NAME
- SSF_GET_DEVICE_TYPE
- CONVERT_OTF,输入PDF,输出BIN二进制
- CONVERT_OTF_2_PDF,
- CONVERT_ABAPSPOOLJOB_2_PDF
- GUI_DOWNLOAD
Link
- https://community.sap.com/t5/enterprise-resource-planning-blogs-by-members/save-print-output-as-pdf-file-in-front-end-system-using-pdf-printer-output/ba-p/13212479
- https://www.kodyaz.com/articles/sap-tutorial-convert-spool-request-to-pdf-file-using-rstxpdf4-abap-report.aspx
- https://community.sap.com/t5/application-development-blog-posts/convert-download-abap-report-to-pdf/ba-p