以下是 OLE Word 转换 PDF 文件


1
DATA:gs_word TYPE ole2_object, 2 gs_docu TYPE ole2_object. 3 4 5 create OBJECT gs_word 'WORD.APPLICATION' . 6 CALL METHOD OF gs_word 'Documents' = gs_docu. 7 8 CALL METHOD OF gs_docu 'Open' = GS_docu 9 EXPORTING #1 = 'C:\Users\itstudy\Desktop\aa.docx'. 10 11 CALL METHOD OF gs_docu 'ExportAsFixedFormat' = GS_docu 12 EXPORTING 13 #1 = 'C:\Users\itstudy\Desktop\aa.pdf' 14 #2 = '17'. 15 CALL METHOD OF gs_word 'QUIT' .

原文出置:https://answers.sap.com/questions/11494117/abap---ole-ms-word-save-docx-as-pdf.html

 

以下是 OLE EXCEL 转换 PDF 文件

测试发现以下程序需要office激活和安装盘符才可以转换

REPORT y_excel_ole_pdf.
LOAD-OF-PROGRAM.
* Allow OLE calls to COM enabled programs on Workstation (e.g. Excel)
  INCLUDE ole2incl.
* handles for OLE objects
  DATA: oexcel           TYPE ole2_object,    " Excel object
        owbs             TYPE ole2_object,    " collection of workbooks
        owb              TYPE ole2_object.    " workbook
*&---------------------------------------------------------------------*
*&      Form  ErrorHandler
*&---------------------------------------------------------------------*
*       outputs OLE error if any was returned by SAP
*----------------------------------------------------------------------*
  FORM errorhandler.
    IF sy-subrc <> 0.
      WRITE: / 'OLE-Automation Error:'(010), sy-subrc.
      CALL METHOD OF oexcel 'Quit'.
      FREE OBJECT oexcel.
      STOP.
    ENDIF.
  ENDFORM.                    " ErrorHandler
  PARAMETERS: p_source TYPE string LOWER CASE.
  PARAMETERS: p_dest   TYPE string LOWER CASE.
START-OF-SELECTION.
* Start a new copy of Excel
  CREATE OBJECT oexcel 'EXCEL.APPLICATION'.
  PERFORM errorhandler.  "Set oExcel = CreateObject()
* Hide Excel window for now (faster)
  SET PROPERTY OF oexcel 'Visible' = 0.
  PERFORM errorhandler.  "oExcel.Visible = False
* Tell Excel not to update entire worksheet with each change (faster)
  SET PROPERTY OF oexcel 'ScreenUpdating' = 0.
  PERFORM errorhandler.  "oExcel.ScreenUpdating = False
* Get list of workbooks, initially empty
  CALL METHOD OF oexcel 'Workbooks' = owbs.
  PERFORM errorhandler.  "Set oWBs = oExcel.Workbooks
* Open excel file, returning workbook
  CALL METHOD OF owbs 'Open' "= owb
    EXPORTING #1 = p_source.
  PERFORM errorhandler.  "oWBs.Open P_Source
  CALL METHOD OF owbs 'Item' = owb
    EXPORTING #1 = 1.
  PERFORM errorhandler.  "Set oWB = oWBs.Item(1)
* Export file as PDF using the name User defined previously
  CALL METHOD OF owb 'ExportAsFixedFormat'
    EXPORTING #1 = 0       "Type = xlTypePDF
              #2 = p_dest. "FileName
  PERFORM errorhandler.  "oWB.ExportAsFixedFormat xlTypePDF, P_Dest
* Close Excel file without saving changes
  CALL METHOD OF owb 'Close'
    EXPORTING #1 = 0. "Save = False
  PERFORM errorhandler.  "oWB.Close ( Save = False)
* Tell Excel to resume updating entire worksheet with each change
  SET PROPERTY OF oexcel 'ScreenUpdating' = 1.
  PERFORM errorhandler.  "Application.ScreenUpdating = True
* Tell Excel to show worksheet to the User
  SET PROPERTY OF oexcel 'Visible' = 1.
  PERFORM errorhandler.  "oExcel.Visible = True
  CALL METHOD OF oexcel 'Quit'.
  PERFORM errorhandler.  "oExcel.Quit
* Disconnect from Excel
  FREE OBJECT oexcel.
  PERFORM errorhandler.

 

posted on 2021-07-06 12:00  淡淡-祥  阅读(705)  评论(0编辑  收藏  举报