SMARTFORMS打印后转存为PDF文件相关问题
1.转成PDF文件时可以参考的函数(本人只试过一种其它有待尝试):
CONVERT_OTFSPOOLJOB_2_PDF;
CONVERT_OTF_2_PDF;
SX_OBJECT_CONVER_OTF_PDF;
HRHAP_DOC_CONVERT_SMF_TO_PDF.
2.保存后出现了乱码(建议ADOBE READER最新的来读,可以避免乱码,不行了才找其它原因)
t-code spad
新建一个输出设备或用LP01,关键是选对设备类型,据说CN 开头的都是可以的。
例如 CNSAPWIN : MS WINDOWS DRIVER VIA SPLPD 然后保存就行了
调用smartforms的时候,用刚定义的这个就行了
调用SMARTFORMS里面有个相关参数可以适当修改(有些不是必须的根据自己情况设置)
(DATA L_CONTROL_PARAMETERS TYPE SSFCTRLOP.)
L_CONTROL_PARAMETERS-GETOTF = ‘X’. “此参数必须,不然不会导出PDF而直接显示smartform
L_CONTROL_PARAMETERS-NO_CLOSE = ”.
L_CONTROL_PARAMETERS-NO_DIALOG = ‘X’. “不显示打印对话框
(DATA L_OUTPUT_OPTIONS TYPE SSFCOMPOP.)
L_OUTPUT_OPTIONS-BCS_LANGU = ‘1′.
L_OUTPUT_OPTIONS-TDDEST = ‘DEFAULT’.
3.以下打印时调用部分参考代码
FORM FRM_USER_COMMAND_ALV
USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.”行数
*—>smartforms 中相关参数定义
DATA:L_FM_NAME TYPE RS38L_FNAM.
DATA:L_JOB_OUTPUT_INFO TYPE SSFCRESCL,
L_JOB_OUTPUT_OPTIONS TYPE SSFCRESOP,
L_LEN TYPE I.
DATA L_CONTROL_PARAMETERS TYPE SSFCTRLOP.
DATA L_OUTPUT_OPTIONS TYPE SSFCOMPOP.
DATA BEGIN OF LT_PDF OCCURS 10.
INCLUDE STRUCTURE TLINE.
DATA END OF LT_PDF.
CASE R_UCOMM.
WHEN ‘&ZRNT’.
CLEAR: L_FM_NAME.
REFRESH IT_HEAD .
IT_HEAD = IT_ALV.
DELETE ADJACENT DUPLICATES FROM IT_HEAD COMPARING RSNUM.
CALL FUNCTION ‘SSF_FUNCTION_MODULE_NAME’
EXPORTING
FORMNAME = ‘ZMMR03′
* VARIANT = ‘ ‘
* DIRECT_CALL = ‘ ‘
IMPORTING
FM_NAME = L_FM_NAME
* EXCEPTIONS
* NO_FORM = 1
* NO_FUNCTION_MODULE = 2
* OTHERS = 3
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
L_CONTROL_PARAMETERS-GETOTF = ‘X’. “此参数必须,不然不会导出PDF而直接显示smartform
L_CONTROL_PARAMETERS-NO_CLOSE = ”.
* L_CONTROL_PARAMETERS-NO_DIALOG = ‘X’. “不显示打印对话框
* L_OUTPUT_OPTIONS-BCS_LANGU = ‘1′.
* L_OUTPUT_OPTIONS-TDDEST = ‘DEFAULT’.
CALL FUNCTION L_FM_NAME
EXPORTING
* ARCHIVE_INDEX =
* ARCHIVE_INDEX_TAB =
* ARCHIVE_PARAMETERS =
CONTROL_PARAMETERS = L_CONTROL_PARAMETERS
* MAIL_APPL_OBJ =
* MAIL_RECIPIENT =
* MAIL_SENDER =
OUTPUT_OPTIONS = L_OUTPUT_OPTIONS
USER_SETTINGS = ‘X’
IMPORTING
* DOCUMENT_OUTPUT_INFO =
JOB_OUTPUT_INFO = L_JOB_OUTPUT_INFO
JOB_OUTPUT_OPTIONS = L_JOB_OUTPUT_OPTIONS
TABLES
IT_ALV = IT_ALV
IT_HEAD = IT_HEAD
* EXCEPTIONS
* FORMATTING_ERROR = 1
* INTERNAL_ERROR = 2
* SEND_ERROR = 3
* USER_CANCELED = 4
* OTHERS = 5
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
IF SY-SUBRC EQ 0.
*—>转成PDF
CALL FUNCTION ‘CONVERT_OTF’
EXPORTING
FORMAT = ‘PDF’
* MAX_LINEWIDTH = 132
* ARCHIVE_INDEX = ‘ ‘
* COPYNUMBER = 0
* ASCII_BIDI_VIS2LOG = ‘ ‘
* PDF_DELETE_OTFTAB = ‘ ‘
IMPORTING
BIN_FILESIZE = L_LEN
* BIN_FILE =
TABLES
OTF = L_JOB_OUTPUT_INFO-OTFDATA
LINES = LT_PDF[]
* EXCEPTIONS
* ERR_MAX_LINEWIDTH = 1
* ERR_FORMAT = 2
* ERR_CONV_NOT_POSSIBLE = 3
* ERR_BAD_OTF = 4
* OTHERS = 5
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
IF SY-SUBRC EQ 0.
*—>下载
CALL METHOD CL_GUI_FRONTEND_SERVICES=>GUI_DOWNLOAD
EXPORTING
BIN_FILESIZE = L_LEN
FILENAME = P_FNAME ”此处是路径,例D:\TEMP.PDF
FILETYPE = ‘BIN’
CHANGING
DATA_TAB = LT_PDF[]
EXCEPTIONS
OTHERS = 1.
IF SY-SUBRC <> 0.
*MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
*WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDIF.
ENDIF.
ENDCASE.
ENDFORM. “user_command
SMARTFORMS打印后转存为PDF文件相关问题相关推荐
- 以无代码的方式将Form打印内容转成生成PDF文件
企业在应用SAP ERP时,可能需要大量 打印 通信文档如催款单,对账单,付款通知等.通过生成PDF格式的通信文件然后用电子邮件的方式发给客户或供应商,不仅大在降低打印成本和邮递费用,加快了与业务合作 ...
- Java 读写docx文件后直接转成PDF文件方法
java将docx文件转成pdf文件的实现方法,需要的jar包下载地址:https://download.csdn.net/download/keke921231/10529672 1.读写docx文 ...
- js pdf文件 如何调用打印机打印_可以使用Javascript打开PDF文件的打印对话框吗?...
繁花不似锦 我通常使用一种类似于如何使用JavaScript打印PDF(eHow.com)的方法iframe.一个容纳打印触发器的功能......function printTrigger(eleme ...
- Python爬虫:多线程的应用和pdf文件相关操作
多线程的应用 前程无忧岗位爬虫 import requests from re import search from multiprocessing import Process, Queue fro ...
- freemarker生成word文档,通过libreoffice完美转为pdf文件排版不乱(包含调用浏览器打印pdf)
了解libreoffice的朋友都知道,freemarker是用xml生成的word文档,libreoffice打开这些文档会不兼容,会直接显示xml代码或排版差别很大,尤其是文档中包含一些复杂表格的 ...
- 标签打印软件输出PDF文件过大时如何解决?
在用标签打印软件制作标签输出PDF文件时,如果数据过多可能会出现输出的PDF文件过大,这种情况如何解决呢?在标签打印软件中,输出PDF文件时可以对PDF文件进行压缩和拆分,压缩方式有六种,分别为:默认 ...
- 【iOS】保存PDF文件和打印功能
新的需求又来了,这次的需求是用户可以在App中打印当前页面,也可以将当前页面保存成pdf文件,以便日后打印. 首先解决一下保存文件的问题,用户需要在文件管理中能查看pdf文件.iOS允许暴露给用户的只 ...
- 解决pdf文件无法打印问题的最好方法
作者:佚名 文章来源:本站原创 点击数:309 更新时间:2012-5-7 解决pdf文件无法打印问题的最好方法:先下载PDFSpliter软件并安装.打开PDFSpli ...
- html 加载pdf文件内容不显示不出来,pdf.js首次加载pdf文件时找不到pdf文件,刷新后才能出现pdf文件...
前台点击文件学码的定一近,更工广款近,更工广款近,更名后,后台通过openoffice将doc文件转为pdf格式文件,然后存放在服务器tomcat'中,pdf.js首次加载服务器中tomcat中的转化 ...
最新文章
- 我认识Linux的小羞愧历史
- HACMP 认证学习系列,第 2 部分-1:计划与设计
- 用c# 实现设计器 DesignSurface
- python调用另一个类的返回值_python – 在OpenERP中调用另一个表单的方法返回值
- 【经典面试题一】最长公共子序列(经典动态规划题)
- 【译】Economics of Fees and Gas
- .NET三种异步模式(APM、EAP、TAP)
- 如何成为架构师?3条有效的实战经验
- pytorch AUTOGRAD
- 2021年中国蛋鸡养殖设备市场趋势报告、技术动态创新及2027年市场预测
- Scala实现冒泡排序、归并排序和快速排序
- asp2.0 GridView OnRowDataBound event
- 迪文屏幕T5UID3平台学习笔记零:迪文屏幕的学习和开发
- 1分钟教会你如何视频转文字,简单又实用
- python爬取天极网手机信息代码
- Android手机目前常见的分辨率
- 万科又出新招,小市民只有看热闹的份
- 一分钟带你解读光纤收发器,秒懂(一)
- java不同数据类型之间的运算法则
- 【开源】F2FS技术拆解