cancel
Showing results for 
Search instead for 
Did you mean: 

Smartform spool to PDF conversion problem

Former Member
0 Kudos

Hello All,

I have created a smartform with Korean font(KPBATANG).In korean login the attributes of the style (paragraph and character formatting like bold) is coming correctly in the spool whereas when it is converted into PDF through spool the fonts and attributes are not reflected in the PDF file.The font difference is clearly visible in the printout.

Any help is highly welcomed.

Regards,

RAJ

Accepted Solutions (0)

Answers (4)

Answers (4)

Former Member
0 Kudos

Hi

Check this program RSTXPDFT4

Regards

Gregory

Former Member
0 Kudos

Hi,

Did you try function module "CONVERT_OTF" whih the binary file coming from the form generation ? Normally you shouldn't get any error of conversion whith this .

Let me know if you need more explanation.

Best regards

Former Member
0 Kudos

Try below code

&----


*& Report ZSMARTFORM_SPOOL_G

&----


REPORT zsmartform_spool_g.

*************Types Declaration ****************************

TYPES : BEGIN OF gty_tab, " Spool Requests

rqident TYPE tsp01-rqident, " Spool request number

rqdoctype TYPE tsp01-rqdoctype, " Spool: document type

rqo1name TYPE tsp01-rqo1name, " TemSe object name

END OF gty_tab.

*********Work Area ****************************************

DATA: form_name TYPE rs38l_fnam, " Used to get the function module of Smartform

wa_outopt TYPE ssfcompop, " SAP Smart Forms: Smart Composer (transfer) options

gs_tab TYPE gty_tab. " Spool Requests

*******Internal Table Declarations ************************

DATA: gt_tab TYPE STANDARD TABLE OF gty_tab, " Spool Requests

gt_pdf TYPE STANDARD TABLE OF tline, " SAPscript: Text Lines

gt_spoolid TYPE tsfspoolid, " Table with Spool IDs

gt_otfdata TYPE ssfcrescl. " Smart Forms: Return value at end of form prnt

*********Variable Declarations ****************************

DATA: gv_bytecount TYPE i, "#EC NEEDED " PDF Byte Count

gv_file_name TYPE string, " File name

gv_file_path TYPE string, " File Path

gv_full_path TYPE string, " Path

gv_binfilesize TYPE i, " Bin File size

gv_rqident TYPE tsp01-rqident, " Spool request number

gv_name TYPE tst01-dname, " TemSe object name

gv_objtype TYPE rststype-type, " TemSe: Object type name

gv_type TYPE rststype-type. " TemSe: Object type name

START-OF-SELECTION.

CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'

EXPORTING

formname = 'ZPDF_G'

IMPORTING

fm_name = form_name

EXCEPTIONS

no_form = 1

no_function_module = 2

OTHERS = 3.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

*Get Spool IDs

wa_outopt-tdnewid = 'X'.

wa_outopt-tddest = 'LP01'.

CALL FUNCTION form_name

EXPORTING

output_options = wa_outopt

user_settings = 'X'

IMPORTING

job_output_info = gt_otfdata

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.

*Assign the spool id

gt_spoolid = gt_otfdata-spoolids.

  • Generate spool and pdf for the output of the form

PERFORM sub_generate_spool_pdf.

END-OF-SELECTION.

&----


*& Form sub_generate_spool_pdf

&----


  • Generate Spool and PDF output

----


FORM sub_generate_spool_pdf .

DATA: ls_spoolid LIKE LINE OF gt_spoolid.

*----Get the Spool Number

CLEAR ls_spoolid.

READ TABLE gt_spoolid INTO ls_spoolid INDEX 1.

IF sy-subrc = 0.

gv_rqident = ls_spoolid.

ENDIF.

CLEAR gt_tab.

SELECT rqident rqdoctype rqo1name INTO TABLE gt_tab

FROM tsp01 WHERE rqident = gv_rqident.

IF sy-subrc = 0.

CLEAR gs_tab.

  • Get the TemSe: Object name into variable gv_name

READ TABLE gt_tab INTO gs_tab INDEX 1.

IF sy-subrc = 0.

gv_name = gs_tab-rqo1name.

ENDIF.

ENDIF.

CALL FUNCTION 'RSTS_GET_ATTRIBUTES'

EXPORTING

authority = 'SP01'

client = sy-mandt

name = gv_name

part = 1

IMPORTING

type = gv_type

objtype = gv_objtype

EXCEPTIONS

fb_error = 1

fb_rsts_other = 2

no_object = 3

no_permission = 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.

  • Check if temse object name type is 'OTF' or 'LIST'

IF gv_objtype(3) = 'OTF'.

PERFORM get_otf_spool_in_pdf.

ELSE.

PERFORM get_abap_spool_in_pdf.

ENDIF.

  • Generate F4 functionality from spool to pdf

PERFORM write_pdf_spool_to_pc.

ENDFORM. " sub_generate_spool_pdf

&----


*& Form get_abap_spool_in_pdf

&----


  • Generate the Spool number

----


FORM get_abap_spool_in_pdf .

REFRESH gt_pdf.

CALL FUNCTION 'CONVERT_ABAPSPOOLJOB_2_PDF'

EXPORTING

src_spoolid = gv_rqident

IMPORTING

pdf_bytecount = gv_bytecount

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.

IF sy-subrc NE 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

ENDFORM. " get_abap_spool_in_pdf

&----


*& Form get_otf_spool_in_pdf

&----


  • Generate OTF data from the Spool Number

----


FORM get_otf_spool_in_pdf .

REFRESH gt_pdf.

CALL FUNCTION 'CONVERT_OTFSPOOLJOB_2_PDF'

EXPORTING

src_spoolid = gv_rqident

IMPORTING

pdf_bytecount = gv_bytecount

TABLES

pdf = gt_pdf

EXCEPTIONS

err_no_otf_spooljob = 1

err_no_spooljob = 2

err_no_permission = 3

err_conv_not_possible = 4

err_bad_dstdevice = 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.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

ENDFORM. " get_otf_spool_in_pdf

&----


*& Form write_pdf_spool_to_pc

&----


  • Generate PDF format

----


FORM write_pdf_spool_to_pc .

CALL METHOD cl_gui_frontend_services=>file_save_dialog

CHANGING

filename = gv_file_name

path = gv_file_path

fullpath = gv_full_path

EXCEPTIONS

cntl_error = 1

error_no_gui = 2

not_supported_by_gui = 3

OTHERS = 4.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

----


DOWNLOADING THE PDF DATA***

CALL FUNCTION 'GUI_DOWNLOAD'

EXPORTING

bin_filesize = gv_binfilesize

filename = gv_full_path

filetype = 'BIN'

TABLES

data_tab = gt_pdf

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.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

ENDFORM. " write_pdf_spool_to_pc

Regards,

Minal

Former Member
0 Kudos

Hi,

Did you check the PDF fonts. Spool from SAP can handle korean fonts. May be the PDF fonts would be the problem.

Thanks,

Sam