Skip to Content
author's profile photo Former Member
Former Member

Problems with PDF display...

Hi @ all,

I have a stupid problem that makes me confused.

I have stored some file attachments in SAP System via GOS

that works fine (some ppt, some pdf and so on) and I can see the attachments their and can also open them.

Now I would like to display them in my webside this works like following:

DATA l_filesize TYPE i.

DATA l_filesize_string TYPE string.

DATA l_mimetype_string TYPE string.

DATA ls_phio TYPE sdokobject.

DATA ls_file_info TYPE sdokfilaci.

DATA ls_xdata TYPE xstring.

DATA lt_file_info TYPE TABLE OF sdokfilaci.

DATA lt_content_binary TYPE sdokcntbins.

DATA lt_content_ascii TYPE sdokcntascs.

data lf_filename type string .

ls_phio = request->get_form_field( name = 'phio' ).

CALL FUNCTION 'SDOK_PHIO_LOAD_CONTENT'

EXPORTING

object_id = ls_phio

TABLES

file_access_info = lt_file_info[]

file_content_ascii = lt_content_ascii[]

file_content_binary = lt_content_binary[]

EXCEPTIONS

not_existing = 1

not_authorized = 2

no_content = 3

bad_storage_type = 4

OTHERS = 5.

CHECK sy-subrc EQ 0.

READ TABLE lt_file_info INTO ls_file_info INDEX 1.

CHECK sy-subrc EQ 0.

l_filesize = ls_file_info-file_size.

l_mimetype_string = request->get_form_field( name

= 'mimetype' ).

  • set file size

l_filesize_string = l_filesize.

response->set_header_field( name = 'Content-Length'

value = l_filesize_string ).

  • set MIME-type

response->set_header_field( name = 'Content-Type'

value = l_mimetype_string ).

response->set_header_field( name = 'Cache-Control'

value = 'max-age=0' ).

lf_filename = ls_file_info-file_name.

response->set_header_field( name = 'Content-

disposition'

value = lf_filename ).

IF NOT ls_file_info-binary_flg IS INITIAL.

CALL FUNCTION 'SCMS_BINARY_TO_XSTRING'

EXPORTING

input_length = l_filesize

IMPORTING

buffer = ls_xdata

TABLES

binary_tab = lt_content_binary[]

EXCEPTIONS

failed = 1

OTHERS = 2.

CHECK sy-subrc EQ 0.

response->delete_header_field( 'Cache-Control' ).

response->delete_header_field( 'Expires' ).

response->delete_header_field( 'Pragma' ).

  • send content data in the xstring to response object:

response->set_data( ls_xdata ).

ENDIF.

navigation->response_complete( ).

--> It works wih any kind of file (Office, Pictures...) just when I have pdf it brings me back a initial web side... anyone a idea whats wrong??

Thanks Matthias

Add a comment
10|10000 characters needed characters exceeded

Related questions

3 Answers

  • author's profile photo Former Member
    Former Member
    Posted on Mar 11, 2004 at 04:01 PM

    Hello Matthias,

    check out if you use HTML-code compression on your html-page/view.

    This raises often problems with PDF.

    Regards, Bernd

    Add a comment
    10|10000 characters needed characters exceeded

    • Former Member Former Member

      *Positionsdaten

      LOOP AT t_excel INTO ls_excel.

      DO .

      ASSIGN COMPONENT sy-index OF STRUCTURE ls_excel TO <ls_field>.

      IF NOT sy-subrc IS INITIAL.

      EXIT.

      ENDIF.

      CALL METHOD z_convert_string_to_excel

      EXPORTING

      data = <ls_field>

      IMPORTING

      stringline = stringline

      linesize = linesize.

      ENDDO.

      CONCATENATE stringline cl_abap_char_utilities=>cr_lf

      INTO stringline.

      linesize = linesize + 2.

      ENDLOOP.

      --> Methodenparameter

      DATA Importing Type ANY

      STRINGLINE Exporting Type STRING

      LINESIZE Exporting Type I

      --> Methodencoding

      METHOD z_convert_string_to_excel.

      DATA: prc_field_char(8096) TYPE c,

      prc_data_type TYPE c,

      prc_blanks_length TYPE c,

      prc_field_string TYPE string,

      prc_line_string TYPE string,

      prc_tab_string TYPE string,

      prc_blanks TYPE string.

      DATA: par_write_field_seperator(1) VALUE ';'.

      FIELD-SYMBOLS: <f> TYPE ANY.

      class cl_abap_char_utilities definition load.

      prc_tab_string = cl_abap_char_utilities=>horizontal_tab.

      ASSIGN data TO <f>.

      DESCRIBE FIELD <f> TYPE prc_data_type.

      MOVE <f> TO prc_field_char.

      *Condense for type <> Char and String

      IF prc_data_type <> 'C' AND prc_data_type <> 'g'.

      CONDENSE prc_field_char.

      ENDIF.

      prc_field_string = prc_field_char.

      *Add tab character between fields

      CONCATENATE prc_line_string prc_field_string prc_tab_string

      INTO prc_line_string.

      linesize = linesize + STRLEN( prc_line_string ).

      CONCATENATE stringline prc_line_string INTO stringline.

      ENDMETHOD.

      ---> das ganze als Xstring

      *XSTRING erzeugen

      CALL FUNCTION 'SCMS_STRING_TO_XSTRING'

      EXPORTING

      text = stringline

      IMPORTING

      buffer = xstring

      EXCEPTIONS

      failed = 1

      OTHERS = 2.

      und ausgeben...

      CREATE OBJECT ref_bsp_utility.

      CONCATENATE 'attachment; filename=' survey '.xls' INTO lf_filename.

      • xstring downloaden

      CALL METHOD ref_bsp_utility->download

      EXPORTING

      object_s = xfeld

      content_type = 'application/download'

      content_disposition = lf_filename

      response = response

      navigation = navigation.

      • Seite aufrufen

      navigation->response_complete( ).

  • author's profile photo Former Member
    Former Member
    Posted on Mar 23, 2004 at 06:20 PM

    you said it works with everything EXCEPT pdf... have you checked your Adobe Acrobat settings?

    I had a similar problem, in Acrobat Reader use Edit->Preferences, then Internet, uncheck 'Display PDF in Browser.' You must be an administrator to do this. Also check Help->Online Support which has a lot of good information.

    Now Acrobat Reader should launch automatically...

    Add a comment
    10|10000 characters needed characters exceeded

  • author's profile photo Former Member
    Former Member
    Posted on Apr 08, 2004 at 08:19 AM

    Hi all,

    I got some trouble with PDF or EXCEL file when I want to display them. To solve this I store the file in the ICM cache , generate a dynamic URL then launch the generated's url. With this method you won't get problem links with version of I.E or Acrobat or EXCEL ......

    Perhaps that will solve your problem .

    Regards.

    Bertrand.

    Add a comment
    10|10000 characters needed characters exceeded

Before answering

You should only submit an answer when you are proposing a solution to the poster's problem. If you want the poster to clarify the question or provide more information, please leave a comment instead, requesting additional details. When answering, please include specifics, such as step-by-step instructions, context for the solution, and links to useful resources. Also, please make sure that you answer complies with our Rules of Engagement.
You must be Logged in to submit an answer.

Up to 10 attachments (including images) can be used with a maximum of 1.0 MB each and 10.5 MB total.