我目前正在尝试通过电子邮件发送选择的结果,更准确地说是作为附件。我的目标是创建一个XML文件(到目前为止有效)和一个PDF,两者都来自保存所选数据的内部表。内部表是使用自定义类型声明的。我当前用于发送带有 XML 附件的电子邮件的代码如下所示:
lr_send_request = cl_bcs=>create_persistent( ).
lr_document = cl_document_bcs=>create_document( i_type = 'HTM'
i_text = lt_text
i_subject = lv_subject ).
* ----- converting data of internal table so it is suitable for XML
...
* -----
lr_document->add_attachment( i_attachment_type = 'BIN'
i_attachment_subject = 'output.xml'
i_attachment_size = xml_size
i_attachment_language = sy-langu
i_att_content_hex = xml_content ).
lr_send_request->set_document( lr_document ).
在网络上,我只能找到如何将spooljob(无论是什么:/)转换为PDF。有了这样的函数,我也许能够解决我的问题,但是我就不能再附加XML了。
如何将内部表的数据转换为 PDF 文件,以像使用 XML 一样将其附加到电子邮件中?
有多种方法可以创建 PDF:
- 使用智能表单创建报告并获得PDF格式的输出。示例代码
- 如果您的系统具有 Adobe 表单许可证,请使用 Adobe 表单创建。
- 使用zcl_pdf类创建本机 pdf 文件。
- 使用CONVERT_ABAPSPOOLJOB_2_PDF FM将打印机线轴获取为pdf(感谢@Sandra Rossi)。
如果您的PDF很简单(不包括复杂的表格,垂直文本,图像等),请使用第三个选项,否则尝试第一个或第二个。