Archivo no empieza por '%PDF-'

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • XJerickX
    Junior Member
    • oct
    • 29

    #1

    Archivo no empieza por '%PDF-'

    Buenos dias.

    Aqui solicitando su ayuda, estuve haciendo un debugg a un programa que convierte un smartform en un PDF y lo muestra el caso es que en el smartform hay una tabla y el PDF solo se muestra cuando hay un solo registro, por que cuando hay 2 o mas me manda un mensaje que dice:

    El archivo no empieza por '%PDF-'
    Y el PDF no muestra nada.
    Espero me puedan dar una mano y explicarme por que sale este mensaje.
  • rubendaga
    Junior Member
    • sep
    • 13

    #2
    Y que función estás utilizando para la conversión, yo lo he hecho con SX_OBJECT_CONVERT_OTF_PDF y me funciona muy bien independiente de lo que contenga el smartform, acá te pongo un pedazo de código de como lo utilizo, depronto te puede servir.

    Slds.

    *----------------------------------------------------------------------*
    *.Definición Estructuras Locales.
    *----------------------------------------------------------------------*
    DATA:
    ls_parameters TYPE ssfctrlop,
    ls_options TYPE ssfcompop,
    ls_pack TYPE sopcklsti1,
    ls_otfdata TYPE ssfcrescl,
    lc_body(255) TYPE c.
    *----------------------------------------------------------------------*
    **.Asignamos Constantes y Variables Impresión.
    *----------------------------------------------------------------------*
    CONSTANTS:
    l_cte_tdarmod(1) TYPE c VALUE '1',
    l_cte_tdnoprint(1) TYPE c VALUE 'X',
    l_cte_tddest(4) TYPE c VALUE 'ZPDG',
    l_cte_tdcopies(3) TYPE c VALUE '001',
    l_cte_device(7) TYPE c VALUE 'PRINTER',
    l_cte_no_dialog(1) TYPE c VALUE 'X',
    l_cte_getotf(1) TYPE c VALUE 'X',
    l_cte_langu(1) TYPE c VALUE 'S',
    l_ent TYPE c VALUE cl_abap_char_utilities=>newline.

    ls_options-tdarmod = l_cte_tdarmod.
    ls_options-tdnoprint = l_cte_tdnoprint.
    ls_options-tddest = l_cte_tddest.
    ls_options-tdreceiver = sy-uname.
    ls_options-tdcopies = l_cte_tdcopies.

    ls_parameters-device = l_cte_device.
    ls_parameters-no_dialog = l_cte_no_dialog.
    ls_parameters-getotf = l_cte_getotf.
    ls_parameters-langu = l_cte_langu.

    *----------------------------------------------------------------------*
    * Definición de variables locales
    *----------------------------------------------------------------------*
    DATA:
    func_module_name TYPE rs38l_fnam,
    pa_form TYPE ssfscreen-fname.
    * Parámetro del Smartform
    pa_form = 'ZFI..........'.
    *----------------------------------------------------------------------*
    *.Definición referencia a clases.
    *----------------------------------------------------------------------*
    DATA:
    lo_mail TYPE REF TO zcl_sub_send_mail.
    *----------------------------------------------------------------------*
    *.Definición Tablas Internas.
    *----------------------------------------------------------------------*
    DATA:
    lt_soli TYPE soli_tab,
    pti_body TYPE bcsy_text,
    pa_subject TYPE so_obj_des,
    pti_file TYPE solix_tab,
    pti_mail TYPE bcsy_smtpa,
    les_mail TYPE ad_smtpadr.

    * Determinar el nombre generado por el módulo de función del
    * Smartform
    CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
    EXPORTING
    formname = pa_form
    IMPORTING
    fm_name = func_module_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.

    * Llamar el módulo de función generado por el Smartform
    CALL FUNCTION func_module_name
    EXPORTING
    control_parameters = ls_parameters
    output_options = ls_options
    user_settings = SPACE
    ges_adrc = ges_adrc
    IMPORTING
    job_output_info = ls_otfdata
    TABLES
    gtt_bsik = gti_bsik
    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.
    **.Asignamos Valor OTF.
    lt_soli = ls_otfdata-otfdata.
    **.Convertir OTF a PDF.
    CALL FUNCTION 'SX_OBJECT_CONVERT_OTF_PDF'
    EXPORTING
    format_src = 'otf'
    format_dst = 'pdf'
    devtype = 'lp01'
    CHANGING
    transfer_bin = ls_pack-transf_bin
    content_txt = lt_soli
    content_bin = pti_file
    objhead = lt_soli
    len = ls_pack-doc_size
    EXCEPTIONS
    err_conv_failed = 1
    OTHERS = 2.

    IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.

    Comentario

    • XJerickX
      Junior Member
      • oct
      • 29

      #3
      Gracias.. pero el smartforms que visualizo se gestiona a travez de una pagina BSP en CRM y lo voy hacer es hacer un debugg desde la tx smartforms para localizar si el error se produce ahi, pero gracias..

      Comentario

      Trabajando...