电子邮件中的附加 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的方式有多种:
- 使用 Smartform 创建报告并以 PDF 格式输出。 Sample code
- 如果您的系统有 adobe form license create with adobe form。
- 使用 zcl_pdf class 创建原生 pdf 文件。
- 使用 CONVERT_ABAPSPOOLJOB_2_PDF FM 以 pdf 格式获取打印机假脱机(感谢@Sandra Rossi)。
如果您的 PDF 很简单(不包括复杂 table、竖排文本、图像等),请使用第三个选项,否则请尝试第一个或第二个。
我目前正在尝试通过电子邮件发送选择结果,更准确地说是作为附件。我的目标是创建一个 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的方式有多种:
- 使用 Smartform 创建报告并以 PDF 格式输出。 Sample code
- 如果您的系统有 adobe form license create with adobe form。
- 使用 zcl_pdf class 创建原生 pdf 文件。
- 使用 CONVERT_ABAPSPOOLJOB_2_PDF FM 以 pdf 格式获取打印机假脱机(感谢@Sandra Rossi)。
如果您的 PDF 很简单(不包括复杂 table、竖排文本、图像等),请使用第三个选项,否则请尝试第一个或第二个。