06-26-2008 12:19 PM
i there any possiblity to convert data in the internal table to pdf directly...not using abaplist or script (otf)
06-26-2008 12:21 PM
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.
06-26-2008 12:27 PM
06-26-2008 12:28 PM
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.
06-26-2008 12:33 PM
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.
06-26-2008 12:34 PM
06-26-2008 12:35 PM
hi,
you may try this
CONVERT_OTFSPOOLJOB_2_PDF
or
CONVERT_OTF_2_PDF
Award if found helpful.
Anirban Bhattacharjee