Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

internal table to pdf

Former Member
0 Kudos

i there any possiblity to convert data in the internal table to pdf directly...not using abaplist or script (otf)

6 REPLIES 6

Former Member
0 Kudos

hi shan,

yes.you can use CONVERT_OTF function module.

or

use this function module.

CALL FUNCTION 'CONVERT_ABAPSPOOLJOB_2_PDF'

EXPORTING

dst_device = c_device " Local path

IMPORTING

pdf_bytecount = gd_bytecount

TABLES

pdf = it_pdf_output " Internal table

EXCEPTIONS

err_no_abap_spooljob = 1

err_no_spooljob = 2

err_no_permission = 3

err_conv_not_possible = 4

err_bad_destdevice = 5

user_cancelled = 6

err_spoolerror = 7

err_temseerror = 8

err_btcjob_open_failed = 9

err_btcjob_submit_failed = 10

err_btcjob_close_failed = 11

OTHERS = 12.

former_member181995
Active Contributor
0 Kudos

Shan,

just refer:

do not forget reward if solved.

Amit.

sivasatyaprasad_yerra
Active Contributor
0 Kudos

Use GUI_UPLOAD function module to create pdf using data from internal table.


CALL FUNCTION 'GUI_DOWNLOAD'
  EXPORTING
*   BIN_FILESIZE                    =
    FILENAME                        = 'C:\test\test1.pdf'
   FILETYPE                        = 'ASC'
*   APPEND                          = ' '
*   WRITE_FIELD_SEPARATOR           = ' '
*   HEADER                          = '00'
*   TRUNC_TRAILING_BLANKS           = ' '
*   WRITE_LF                        = 'X'
*   COL_SELECT                      = ' '
*   COL_SELECT_MASK                 = ' '
*   DAT_MODE                        = ' '
*   CONFIRM_OVERWRITE               = ' '
*   NO_AUTH_CHECK                   = ' '
*   CODEPAGE                        = ' '
*   IGNORE_CERR                     = ABAP_TRUE
*   REPLACEMENT                     = '#'
*   WRITE_BOM                       = ' '
*   TRUNC_TRAILING_BLANKS_EOL       = 'X'
*   WK1_N_FORMAT                    = ' '
*   WK1_N_SIZE                      = ' '
*   WK1_T_FORMAT                    = ' '
*   WK1_T_SIZE                      = ' '
*   WRITE_LF_AFTER_LAST_LINE        = ABAP_TRUE
*   SHOW_TRANSFER_STATUS            = ABAP_TRUE
* IMPORTING
*   FILELENGTH                      =
  TABLES
    DATA_TAB                        = lt_target_data
*   FIELDNAMES                      =
* EXCEPTIONS
*   FILE_WRITE_ERROR                = 1
*   NO_BATCH                        = 2
*   GUI_REFUSE_FILETRANSFER         = 3
*   INVALID_TYPE                    = 4
*   NO_AUTHORITY                    = 5
*   UNKNOWN_ERROR                   = 6
*   HEADER_NOT_ALLOWED              = 7
*   SEPARATOR_NOT_ALLOWED           = 8
*   FILESIZE_NOT_ALLOWED            = 9
*   HEADER_TOO_LONG                 = 10
*   DP_ERROR_CREATE                 = 11
*   DP_ERROR_SEND                   = 12
*   DP_ERROR_WRITE                  = 13
*   UNKNOWN_DP_ERROR                = 14
*   ACCESS_DENIED                   = 15
*   DP_OUT_OF_MEMORY                = 16
*   DISK_FULL                       = 17
*   DP_TIMEOUT                      = 18
*   FILE_NOT_FOUND                  = 19
*   DATAPROVIDER_EXCEPTION          = 20
*   CONTROL_FLUSH_ERROR             = 21
*   OTHERS                          = 22
          .

Regards,

Siva.

Former Member
0 Kudos

Hi,

Try this piece of code. .

TABLES: yemp.

DATA: BEGIN OF itab3 OCCURS 0,
        tline(255),
      END OF itab3.

DATA: itab2 TYPE solix_tab  ,
      otf_tab TYPE soli_tab,
      itab4 TYPE soli_tab ,
      trans_6 TYPE sx_boolean value 'x'.

DATA: len_out LIKE sood-objlen value '125'.

DATA: h_path(20) TYPE c,
      file_name(20),
      h_mask(20) TYPE c VALUE ',*.pdf ,*.pdf. ',
      filename LIKE rlgrap-filename.


SELECT * FROM yemp INTO TABLE otf_tab.

SELECT * FROM yemp INTO TABLE itab3.

*SELECT * FROM yemp INTO TABLE itab2.

itab4 = otf_tab.

*itab2 = '0110101001010101'.


CALL FUNCTION 'SX_OBJECT_CONVERT_OTF_PDF'
  EXPORTING
    format_src      = 'OTF'
    format_dst      = 'PDF'
    devtype         = 'ASCIIPRI'
  CHANGING
    transfer_bin    = trans_6
    content_txt     = otf_tab
    content_bin     = itab2
    objhead         = itab4
    len             = len_out
  EXCEPTIONS
    err_conv_failed = 1
    OTHERS          = 2.

PERFORM get_path USING 'PDF_FILE'.

IF sy-subrc <> 0.
  WRITE:/ sy-subrc.
  EXIT.
ENDIF.

LOOP AT itab3.
  WRITE:/ itab3.
ENDLOOP.

CALL FUNCTION 'WS_DOWNLOAD'
  EXPORTING
    filename            = filename
    filetype            = 'BIN'
    bin_filesize        = len_out
  TABLES
    data_tab            = itab3
  EXCEPTIONS
    file_open_error     = 1
    file_write_error    = 2
    invalid_filesize    = 3
    invalid_table_width = 4
    invalid_type        = 5
    no_batch            = 6
    unknown_error       = 7
    OTHERS              = 8.


WRITE:/ 'done', filename.


*&---------------------------------------------------------------------*
*& Form GET_PATH
*&---------------------------------------------------------------------*
FORM get_path USING p_filename.
  CLEAR: h_path, file_name.
  file_name = p_filename.

  CALL FUNCTION 'WS_QUERY'
    EXPORTING
      query  = 'CD' "// Current Directory
    IMPORTING
      return = h_path.

  CONCATENATE file_name '.pdf' INTO file_name.

  CALL FUNCTION 'WS_FILENAME_GET'
    EXPORTING
      def_filename     = file_name
      def_path         = h_path
      mask             = h_mask
      mode             = 'O'
    IMPORTING
      filename         = filename"dbname
    EXCEPTIONS
      inv_winsys       = 1
      no_batch         = 2
      selection_cancel = 3
      selection_error  = 4
      OTHERS           = 5.

ENDFORM. " GET_PATH

hope this helps you.

plz reward if useful.

thanks,

dhanashri.

Former Member
0 Kudos

hi,

you may try this

CONVERT_OTFSPOOLJOB_2_PDF

or

CONVERT_OTF_2_PDF

Award if found helpful.

Anirban Bhattacharjee