Application Development and Automation 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: 
Read only

PDF resize

former_member209696
Participant
0 Likes
1,878

Hai guyz,

I have one requirement to download the alv report as PDF. Am using CONVERT_ABAPSPOOLJOB_2_PDF function module to convet to pdf and GUI_DOWNLOAD to download. My ALV consist of 36 fields. When am trying to download its going to runtime error. When am trying with least alv fields (10-15 fields ) its downloading perfectly. I think I want to increase the width of the pdf

is there any solution for this? kindly help me...

am passing following parameters in CONVERT_ABAPSPOOLJOB_2_PDF

call function 'CONVERT_ABAPSPOOLJOB_2_PDF'

exporting

src_spoolid = w_spno -


spool no

tables

pdf = it_pdf.----


internal table

.

thanks in advance..

Riyas

1 ACCEPTED SOLUTION
Read only

koolspy_ultimate
Active Contributor
0 Likes
1,213

Hi riyas,

After converting the ALV output to PDF you must change the width of the PDF generated from spool by using SX_TABLE_LINE_WIDTH_CHANGE function module.

[Reference|;


CALL FUNCTION 'CONVERT_ABAPSPOOLJOB_2_PDF'
      EXPORTING
        src_spoolid              = g_spool_no
        no_dialog                = ' '
      IMPORTING
        pdf_bytecount            = l_no_of_bytes
        pdf_spoolid              = l_pdf_spoolid
        btc_jobname              = l_jobname
        btc_jobcount             = l_jobcount
      TABLES
        pdf                      = i_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.
 
    CASE sy-subrc.
      WHEN 0.
      WHEN 1.
        MESSAGE s000(0k) WITH 'No ABAP Spool Job'.
        EXIT.
      WHEN 2.
        MESSAGE s000(0k) WITH 'Spool Number does not exist'.
        EXIT.
      WHEN 3.
        MESSAGE s000(0k) WITH 'No permission for spool'.
        EXIT.
      WHEN OTHERS.
        MESSAGE s000(0k)
           WITH 'Error in Function CONVERT_ABAPSPOOLJOB_2_PDF'.
        EXIT.
    ENDCASE.
    CALL FUNCTION 'SX_TABLE_LINE_WIDTH_CHANGE'
      EXPORTING
        line_width_src              = 134
        line_width_dst              = 255
      TABLES
        content_in                  = i_pdf
        content_out                 = l_attachment
      EXCEPTIONS
        err_line_width_src_too_long = 1
        err_line_width_dst_too_long = 2
        err_conv_failed             = 3
        OTHERS                      = 4.
    IF sy-subrc NE 0.
      MESSAGE s000(0k) WITH 'Conversion Failed'.
      EXIT.
    ENDIF.

Regards,

koolspy.

4 REPLIES 4
Read only

koolspy_ultimate
Active Contributor
0 Likes
1,214

Hi riyas,

After converting the ALV output to PDF you must change the width of the PDF generated from spool by using SX_TABLE_LINE_WIDTH_CHANGE function module.

[Reference|;


CALL FUNCTION 'CONVERT_ABAPSPOOLJOB_2_PDF'
      EXPORTING
        src_spoolid              = g_spool_no
        no_dialog                = ' '
      IMPORTING
        pdf_bytecount            = l_no_of_bytes
        pdf_spoolid              = l_pdf_spoolid
        btc_jobname              = l_jobname
        btc_jobcount             = l_jobcount
      TABLES
        pdf                      = i_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.
 
    CASE sy-subrc.
      WHEN 0.
      WHEN 1.
        MESSAGE s000(0k) WITH 'No ABAP Spool Job'.
        EXIT.
      WHEN 2.
        MESSAGE s000(0k) WITH 'Spool Number does not exist'.
        EXIT.
      WHEN 3.
        MESSAGE s000(0k) WITH 'No permission for spool'.
        EXIT.
      WHEN OTHERS.
        MESSAGE s000(0k)
           WITH 'Error in Function CONVERT_ABAPSPOOLJOB_2_PDF'.
        EXIT.
    ENDCASE.
    CALL FUNCTION 'SX_TABLE_LINE_WIDTH_CHANGE'
      EXPORTING
        line_width_src              = 134
        line_width_dst              = 255
      TABLES
        content_in                  = i_pdf
        content_out                 = l_attachment
      EXCEPTIONS
        err_line_width_src_too_long = 1
        err_line_width_dst_too_long = 2
        err_conv_failed             = 3
        OTHERS                      = 4.
    IF sy-subrc NE 0.
      MESSAGE s000(0k) WITH 'Conversion Failed'.
      EXIT.
    ENDIF.

Regards,

koolspy.

Read only

Former Member
0 Likes
1,213

Hi,

as mentioned in a link,follow the code may help u:

report zabap_2_pdf.

*-- Enhancements: only allow to be run with variant. Then called

*-- program will be transparent to users

*-- TABLES

tables:

tsp01.

*-- STRUCTURES

data:

mstr_print_parms like pri_params,

mc_valid(1) type c,

mi_bytecount type i,

mi_length type i,

mi_rqident like tsp01-rqident.

*-- INTERNAL TABLES

data:

mtab_pdf like tline occurs 0 with header line,

mc_filename like rlgrap-filename.

*-- SELECTION SCREEN

parameters:

p_repid like sy-repid, " Report to execute

p_linsz like sy-linsz default 132, " Line size

p_paart like sy-paart default 'X_65_132'. " Paper Format

start-of-selection.

concatenate 'c:\'

p_repid

'.pdf'

into mc_filename.

*-- Setup the Print Parmaters

call function 'GET_PRINT_PARAMETERS'

exporting

authority= space

copies = '1'

cover_page = space

data_set = space

department = space

destination = space

expiration = '1'

immediately = space

in_archive_parameters = space

in_parameters = space

layout = space

mode = space

new_list_id = 'X'

no_dialog= 'X'

user = sy-uname

importing

out_parameters = mstr_print_parms

valid = mc_valid

exceptions

archive_info_not_found = 1

invalid_print_params = 2

invalid_archive_params = 3

others = 4.

*-- Make sure that a printer destination has been set up

*-- If this is not done the PDF function module ABENDS

if mstr_print_parms-pdest = space.

mstr_print_parms-pdest = 'LOCL'.

endif.

*-- Explicitly set line width, and output format so that

*-- the PDF conversion comes out OK

mstr_print_parms-linsz = p_linsz.

mstr_print_parms-paart = p_paart.

submit (p_repid) to sap-spool without spool dynpro

spool parameters mstr_print_parms

via selection-screen

and return.

*-- Find out what the spool number is that was just created

perform get_spool_number using sy-repid

sy-uname

changing mi_rqident.

*-- Convert Spool to PDF

call function 'CONVERT_ABAPSPOOLJOB_2_PDF'

exporting

src_spoolid= mi_rqident

no_dialog = space

dst_device = mstr_print_parms-pdest

importing

pdf_bytecount = mi_bytecount

tables

pdf = mtab_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 function 'DOWNLOAD'

exporting

bin_filesize = mi_bytecount

filename = mc_filename

filetype = 'BIN'

importing

act_filename = mc_filename

tables

data_tab = mtab_pdf.

-


  • FORM get_spool_number *

-


  • Get the most recent spool created by user/report *

-


  • --> F_REPID *

  • --> F_UNAME *

  • --> F_RQIDENT *

-


form get_spool_number using f_repid

f_uname

changing f_rqident.

data:

lc_rq2name like tsp01-rq2name.

concatenate f_repid+0(8)

f_uname+0(3)

into lc_rq2name separated by '_'.

select * from tsp01 where rq2name = lc_rq2name

order by rqcretime descending.

f_rqident = tsp01-rqident.

exit.

endselect.

if sy-subrc ne 0.

clear f_rqident.

endif.

endform." get_spool_number

OR

u can use other method:

First convert the output internal table data to OTF using FM 'CONVERT_OTF' and then download it using 'GUI_DOWNLOAD'.

AND CHECK Sample programs:

RSTXPDFT4

RSTXPDFT5

Thanks & regards.

Edited by: anusha25 on Oct 28, 2011 10:17 AM

Read only

Former Member
0 Likes
1,213

Hi Riyas ,

Spool length is defined by sap of length 255 char only , so it will dispaly only limited field .

would like to suggest you to use gui_download just after the 'reusee_alv_list_display' and download it into pdf format .

regards

ranjan

Read only

0 Likes
1,213

Thank You friends,

My pblm solved.....