电子邮件中的附加 PDF 附件 (ABAP)

Additional PDF Attachment in E-Mail (ABAP)

我目前正在尝试通过电子邮件发送选择结果,更准确地说是作为附件。我的目标是创建一个 XML-File(目前有效)和一个 PDF,它们都来自保存所选数据的内部 table。内部 table 是用自定义类型声明的。我当前发送带有 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。

如何将内部 table 的数据转换为 PDF 文件,以将其附加到电子邮件 ,就像我处理 XML?

创建PDF的方式有多种:

  1. 使用 Smartform 创建报告并以 PDF 格式输出。 Sample code
  2. 如果您的系统有 adobe form license create with adobe form。
  3. 使用 zcl_pdf class 创建原生 pdf 文件。
  4. 使用 CONVERT_ABAPSPOOLJOB_2_PDF FM 以 pdf 格式获取打印机假脱机(感谢@Sandra Rossi)。

如果您的 PDF 很简单(不包括复杂 table、竖排文本、图像等),请使用第三个选项,否则请尝试第一个或第二个。