ÇIKTILARI PDF FORMATINA DÖNÜŞTÜRME

ÇIKTILARI PDF FORMATINA DÖNÜŞTÜRME

Liste çıktısı veya smartform çıktısı pdf formatına dönüştürülebilir. Smartform içeriği önce OTF ardından pdf formatına dönüştürülür.

ABAP listesini ve OTF içeriği pdf formatına dönüştürmek için birkaç yöntem kullanılabilir.

1. Kod yazmadan yazıcı kuyruğuna gönderilen bir çıktı pdf formatına dönüştürülebilir. Bu işlem için yazdırılan çıktının kuyruk talep numarası gerekir. Kuyruk taleplerini görmek için SP01 veya SP02 işlem kodlarını kullanabilirsiniz.

ABAP Düzenleyici ile RSTXPDFT4 programı çalıştırılarak kuyruk talep numarası seçim ekranına girilir. Program çalıştığında çıktı pdf formatına çevrilir ve bilgisayarda belirtilen dosya adı kısmına kaydedilir.

2. Aşağıdaki çıktı türleri kod yazılarak pdf formatına dönüştürülebilir.

· Smartformlar: Önce OTF formatına ardından pdf formatına çevrilir.

· ABAP listesi: Çıktı yazıcı kuyruğuna gönderilir, daha sonra kuyruk talebi pdf formatına dönüştürülür.

PDF DÖNÜŞTÜRME ÖRNEKLERİ

1. Smartform’u otf formatına dönüştüren, daha sonra otf içeriği pdf formatına çeviren örnek. Örneği kullanabilmek için Z_SF_TEST isimli smartform oluşturulmalıdır. Program çalıştırıldığında pdf dosyasını kaydetmek için dosya yolu sorar.

DATA: gv_formname             TYPE tdsfname,
gv_fm_name              TYPE rs38l_fnam,
gs_output_options       TYPE ssfcompop ,
gs_control_parameters   TYPE ssfctrlop,
gs_job_output_info      TYPE ssfcrescl,
gs_document_output_info TYPE ssfcrespd,
gs_job_output_options   TYPE ssfcresop.
DATA: gs_job_output TYPE ssfcrescl.
DATA: gt_otf TYPE STANDARD TABLE OF itcoo,
gt_pdf TYPE STANDARD TABLE OF tline.
DATA: gv_bin_filesize TYPE i.
DATA: gv_filename TYPE string,
gv_filepath TYPE string,
gv_fullpath TYPE string.
gv_formname = ‘Z_SF_TEST’.
CALL FUNCTION ‘SSF_FUNCTION_MODULE_NAME’
EXPORTING
formname           = gv_formname
IMPORTING
fm_name            = gv_fm_name
EXCEPTIONS
no_form            = 1
no_function_module = 2
OTHERS             = 3.
gs_control_parameters-device    = ‘PRINTER’.
gs_output_options-tdimmed       = ‘X’.
gs_output_options-tddest        = ‘LOCL’.
gs_control_parameters-no_dialog = ‘X’.
gs_control_parameters-preview   = space.
gs_control_parameters-getotf    = ‘X’.
CALL FUNCTION gv_fm_name
EXPORTING
control_parameters = gs_control_parameters
output_options     = gs_output_options
user_settings      = space
IMPORTING
job_output_info    = gs_job_output
EXCEPTIONS
formatting_error   = 1
internal_error     = 2
send_error         = 3
user_canceled      = 4
OTHERS             = 5.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
gt_otf[] = gs_job_output-otfdata[].
CALL FUNCTION ‘CONVERT_OTF’
EXPORTING
format        = ‘PDF’
max_linewidth = 132
copynumber    = 0
IMPORTING
bin_filesize  = gv_bin_filesize
TABLES
otf           = gt_otf
lines         = gt_pdf.
CALL METHOD cl_gui_frontend_services=>file_save_dialog
CHANGING
filename             = gv_filename
path                 = gv_filepath
fullpath             = gv_fullpath
EXCEPTIONS
cntl_error           = 1
error_no_gui         = 2
not_supported_by_gui = 3
OTHERS               = 4.
CONCATENATE gv_fullpath ‘.pdf’ INTO gv_fullpath.
CALL FUNCTION ‘GUI_DOWNLOAD’
EXPORTING
bin_filesize = gv_bin_filesize
filename     = gv_fullpath
filetype     = ‘BIN’
TABLES
data_tab     = gt_pdf.

2. ABAP listesini ekrana yazdıran örnek. Örnek iki programdan oluşur. İlk program yazdırılacak ABAP listesidir. Ekrana SPFLI tablosundaki bazı sütunları yazdırır. İkinci program birinci programı yazıcı kuyruğuna gönderecek şekilde çalıştırır ve kuyruk talebi numarasını Z_R_TEST_Y_SPONO nesnesi ile hafızaya aktarır. Birinci program ABAP listesini yazdıktan sonra, ikinci program hafızaya aktarılan kuyruk talep numarasını pdf formatına dönüştürür.

a. İlk program Z_R_TEST_Y.

DATA : gs_spfli TYPE spfli,
gv_spono LIKE tsp01-rqident.
SELECT * FROM spfli INTO gs_spfli UP TO 10 ROWS.
WRITE: / gs_spfli-carrid, gs_spfli-connid, gs_spfli-countryfr,
gs_spfli-cityfrom, gs_spfli-airpfrom.
ENDSELECT.
gv_spono = sy-spono.
EXPORT gv_spono FROM gv_spono TO MEMORY ID ‘Z_R_TEST_Y_SPONO’.

b. İkinci program.

DATA: gv_spono LIKE tsp01-rqident.
DATA: gt_pdf TYPE STANDARD TABLE OF tline.
DATA: gv_bin_filesize TYPE i.
DATA: gv_filename TYPE string,
gv_filepath TYPE string,
gv_fullpath TYPE string.
SUBMIT z_r_test_y TO SAP-SPOOL
WITHOUT SPOOL DYNPRO
DESTINATION space
COVER TEXT ‘ Kuyruk Talebi Başlığı’
NEW LIST IDENTIFICATION ‘X’
IMMEDIATELY space
AND RETURN.
IMPORT gv_spono TO gv_spono FROM MEMORY ID ‘Z_R_TEST_Y_SPONO’.
CALL FUNCTION ‘CONVERT_ABAPSPOOLJOB_2_PDF’
EXPORTING
src_spoolid              = gv_spono
TABLES
pdf                      = gt_pdf
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.
CALL METHOD cl_gui_frontend_services=>file_save_dialog
CHANGING
filename                = gv_filename
path                    = gv_filepath
fullpath                = gv_fullpath
EXCEPTIONS
cntl_error              = 1
error_no_gui            = 2
not_supported_by_gui    = 3
OTHERS                  = 4.
CONCATENATE gv_fullpath ‘.pdf’ INTO gv_fullpath.
CALL FUNCTION ‘GUI_DOWNLOAD’
EXPORTING
bin_filesize = gv_bin_filesize
filename     = gv_fullpath
filetype     = ‘BIN’
TABLES
data_tab     = gt_pdf.

3. Internal tablo içeriğini pdf formatına çeviren örnek. SPFLI tablosundaki bazı sütunlar TLINE tipindeki internal tabloya eklenir. Eklenen kayıtlar PRINT_TEXT fonksiyonu ile otf formatına çevrilir. Otf formatına çevrilen veri CONVERT_OTF fonksiyonu ile pdf formatına çevrilir.

DATA: gs_spfli  TYPE spfli.
DATA: gs_header  TYPE thead,
gs_options TYPE itcpo,
gs_result  TYPE itcpp.
DATA: gt_otfdata TYPE STANDARD TABLE OF itcoo,
gt_lines   TYPE STANDARD TABLE OF tline,
gs_lines   TYPE tline.
DATA: gv_bin_filesize TYPE i.
DATA: gv_filename TYPE string,
gv_filepath TYPE string,
gv_fullpath TYPE string.
SELECT * FROM spfli INTO gs_spfli UP TO 10 ROWS.
CLEAR gs_lines.
CONCATENATE gs_spfli-carrid   gs_spfli-connid gs_spfli-countryfr
gs_spfli-cityfrom gs_spfli-airpfrom
INTO gs_lines SEPARATED BY space.
APPEND gs_lines TO gt_lines.
ENDSELECT.
gs_options-tddest   = ‘LOCL’.
gs_options-tdnewid  = ‘X’.
gs_options-tdgetotf = ‘X’.
CALL FUNCTION ‘PRINT_TEXT’
EXPORTING
device        = ‘PRINTER’
dialog        = ‘ ‘
header        = gs_header
OPTIONS       = gs_options
IMPORTING
RESULT        = gs_result
TABLES
lines         = gt_lines
otfdata       = gt_otfdata
EXCEPTIONS
canceled      = 01
device        = 02
form          = 03
OPTIONS       = 04
unclosed      = 05
unknown       = 06
format        = 07
textformat    = 08
communication = 09.
REFRESH gt_lines.
CALL FUNCTION ‘CONVERT_OTF’
EXPORTING
format        = ‘PDF’
max_linewidth = 132
copynumber    = 0
IMPORTING
bin_filesize  = gv_bin_filesize
TABLES
otf           = gt_otfdata
lines         = gt_lines.
CALL METHOD cl_gui_frontend_services=>file_save_dialog
CHANGING
filename             = gv_filename
path                 = gv_filepath
fullpath             = gv_fullpath
EXCEPTIONS
cntl_error           = 1
error_no_gui         = 2
not_supported_by_gui = 3
OTHERS               = 4.
CONCATENATE gv_fullpath ‘.pdf’ INTO gv_fullpath.
CALL FUNCTION ‘GUI_DOWNLOAD’
EXPORTING
bin_filesize = gv_bin_filesize
filename     = gv_fullpath
filetype     = ‘BIN’
TABLES
data_tab     = gt_lines.

Leave a Reply

Your email address will not be published. Required fields are marked *