Code: Alles auswählen.
PROGRAM fp_pdf_test_01.
* Create PDF.
INCLUDE fp_utilities.
SELECTION-SCREEN BEGIN OF BLOCK s_conn WITH FRAME TITLE text-101.
PARAMETERS p_dest TYPE rfcdest OBLIGATORY.
SELECTION-SCREEN COMMENT /33(75) TEXT-104.
SELECTION-SCREEN END OF BLOCK s_conn.
SELECTION-SCREEN BEGIN OF BLOCK s_files WITH FRAME TITLE text-100.
PARAMETERS: p_xfd TYPE localfile VISIBLE LENGTH 64 OBLIGATORY,
p_xft TYPE localfile VISIBLE LENGTH 64 OBLIGATORY,
p_jobp TYPE FPJOBPROFILE VISIBLE Length 64 MODIF ID jpr.
SELECTION-SCREEN END OF BLOCK s_files.
SELECTION-SCREEN BEGIN OF BLOCK pri_pro WITH FRAME TITLE text-105.
PARAMETERS: p_pdf RADIOBUTTON GROUP rad1 USER-COMMAND XXX,
p_pri RADIOBUTTON GROUP rad1,
p_pdl TYPE localfile VISIBLE LENGTH 64 OBLIGATORY DEFAULT 'C:\tmp\PDLOut' MODIF ID pri,
p_ext TYPE FILE_EXT OBLIGATORY DEFAULT 'PCL' MODIF ID pri,
p_xdc TYPE ADSXDCNAME MODIF ID xdc.
SELECTION-SCREEN END OF BLOCK pri_pro.
SELECTION-SCREEN BEGIN OF BLOCK s_loc WITH FRAME TITLE text-102.
PARAMETERS p_loc TYPE cplocale.
SELECTION-SCREEN END OF BLOCK s_loc.
SELECTION-SCREEN BEGIN OF BLOCK s_opt WITH FRAME TITLE text-103.
PARAMETERS: p_norm TYPE fppdfnorm DEFAULT if_fp_pdf_norm=>default MODIF ID nrm,
p_fill TYPE fpinteractive,
p_tagged TYPE abap_bool AS CHECKBOX,
p_dynami TYPE fpdynamic,
p_print TYPE fpboolean DEFAULT abap_true,
p_change TYPE fpchangesrestricted.
SELECTION-SCREEN END OF BLOCK s_opt.
DATA: l_fp TYPE REF TO if_fp,
l_pdfobj TYPE REF TO if_fp_pdf_object,
l_xft TYPE fpcontent,
l_xfd TYPE fpcontent,
pdfresult TYPE fpcontent,
l_fpex TYPE REF TO cx_fp_runtime,
pdf_html_control TYPE REF TO cl_gui_html_viewer,
pdf_my_container TYPE REF TO cl_gui_custom_container,
pdf_alignment TYPE i,
pdf_size TYPE i,
fcode TYPE syucomm,
l_locale TYPE string,
l_ext TYPE string,
pdlresult TYPE fpcontent,
l_pdlfile TYPE string,
l_xdcname TYPE string.
DATA go_fp TYPE REF TO if_fp.
DATA go_pdf_obj TYPE REF TO if_fp_pdf_object.
DATA gt_profiles TYPE tfpjobprofile.
DATA gv_version TYPE string.
INITIALIZATION.
MOVE cl_fp=>get_ads_connection( ) TO p_dest.
AT SELECTION-SCREEN.
PERFORM load_file USING p_xfd CHANGING l_xfd.
PERFORM load_file USING p_xft CHANGING l_xft.
*AT SELECTION-SCREEN OUTPUT.
**********test destination available
TRY.
* Get version information.
gv_version = cl_fp=>get_reference(
)->create_pdf_object( connection = p_dest
)->get_version_info( ).
* Output result.
IF gv_version IS INITIAL.
MESSAGE 'Keine Versioninformationen verfügbar'(002) TYPE 'W'.
ENDIF.
CATCH cx_fp_runtime INTO l_fpex.
PERFORM error USING l_fpex.
ENDTRY.
******** test destination available
AT SELECTION-SCREEN OUTPUT.
***** call Screen variants dependant on ADS version and Printoutfunction
LOOP AT SCREEN.
IF screen-group1 = 'PRI'.
If p_pri = ' '.
screen-active = 0.
MODIFY SCREEN.
* CLEAR P_EXT.
endif.
ENDIF.
IF screen-group1 = 'XDC'.
IF p_pri = 'X'.
TRY.
IF cl_fp_feature_test=>is_available(
iv_connection = p_dest
iv_feature = cl_fp_feature_test=>GC_XDC_API )
= abap_true.
CONTINUE.
ENDIF.
CATCH cx_fp_runtime_internal
cx_fp_runtime_system
cx_fp_runtime_usage. "#EC NO_HANDLER
ENDTRY.
ENDIF.
screen-active = 0.
MODIFY SCREEN.
CLEAR p_xdc.
ENDIF.
IF screen-group1 = 'JPR'.
TRY.
IF cl_fp_feature_test=>is_available(
iv_connection = p_dest
iv_feature = cl_fp_feature_test=>gc_job_profiles )
= abap_true.
CONTINUE.
ENDIF.
CATCH cx_fp_runtime_internal
cx_fp_runtime_system
cx_fp_runtime_usage. "#EC NO_HANDLER
ENDTRY.
screen-active = 0.
MODIFY SCREEN.
CLEAR p_jobp.
ENDIF.
IF screen-group1 = 'NRM'.
* TRY.
* IF cl_fp_feature_test=>is_available(
* iv_connection = p_dest
* iv_feature = cl_fp_feature_test=>gc_render_pdfa1 )
* = abap_true.
* CONTINUE.
* ENDIF.
* CATCH cx_fp_runtime_internal
* cx_fp_runtime_system
* cx_fp_runtime_usage. "#EC NO_HANDLER
* ENDTRY.
* screen-active = 0.
* MODIFY SCREEN.
* CLEAR p_norm.
ENDIF.
ENDLOOP.
* end call Screen variants dependant on ADS version and Printoutfunction
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_xfd.
PERFORM value_help_for_file USING 'XML' CHANGING p_xfd.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_xft.
PERFORM value_help_for_file USING 'XDP' CHANGING p_xft.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_pdl.
PERFORM value_help_for_file USING '' CHANGING p_pdl. "no extension for printout file
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_ext.
PERFORM value_help_for_extension USING 'P_EXT'.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_xdc.
PERFORM value_help_for_XDC USING 'P_XDC'.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_norm.
PERFORM value_help_for_pdfnorm USING 'P_NORM'.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_dest.
PERFORM value_help_for_destination USING 'P_DEST'.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_jobp.
PERFORM value_help_for_jobprofile USING 'P_JOBP'.
START-OF-SELECTION.
* PERFORM load_file USING p_xfd CHANGING l_xfd. ==> called in at selection-screen
* PERFORM load_file USING p_xft CHANGING l_xft. ==> called in at selection-screen
* Get FP reference.
l_fp = cl_fp=>get_reference( ).
******************************************************************
* PDL Printfile
******************************************************************
IF p_ext ne ' ' and P_PRI ne ' '.
TRY.
* Create PDF Object.
l_pdfobj = l_fp->create_pdf_object( connection = p_dest ).
* Set template.
l_locale = p_loc.
l_pdfobj->set_template( xftdata = l_xft
fillable = p_fill
locale = l_locale ).
* Set jobprofile
If p_jobp is not initial.
data: p_job_x type fpjobprofile.
p_job_x = p_jobp.
l_pdfobj->set_job_profile( job_profile = p_job_x ).
endif.
* Set data.
l_pdfobj->set_data( formdata = l_xfd ).
* Set PDL Output paramter
perform pdl_para using p_ext.
l_pdfobj->set_task_renderpdl( pdltype = l_ext
pdlfile = l_pdlfile
xdcname = l_xdcname ).
* Execute, call ADS.
l_pdfobj->execute( ).
* Get result PDL.
l_pdfobj->get_pdl( IMPORTING pdldata = pdlresult ).
pdf_size = XSTRLEN( pdlresult ).
CATCH cx_fp_runtime_internal
cx_fp_runtime_system
cx_fp_runtime_usage INTO l_fpex.
PERFORM error USING l_fpex.
ENDTRY.
IF pdlresult IS INITIAL.
MESSAGE 'Fehler: keine PDL Daten erzeugt'(003) TYPE 'E'.
ELSE.
PERFORM download_file USING pdlresult p_pdl.
ENDIF.
ENDIF. "no PDF
******************************************************************
* PDF preview
******************************************************************
TRY.
* Create PDF Object.
l_pdfobj = l_fp->create_pdf_object( connection = p_dest ).
* Set template.
l_locale = p_loc.
l_pdfobj->set_template( xftdata = l_xft
fillable = p_fill
locale = l_locale ).
* Set jobprofile
If p_jobp is not initial.
data: p_job_y type fpjobprofile.
p_job_y = p_jobp.
l_pdfobj->set_job_profile( job_profile = p_job_y ).
endif.
* Set usage rights to none if requested.
IF p_fill = 'N'.
l_pdfobj->set_usagerights( default_rights = abap_false ).
ENDIF.
* Set data.
l_pdfobj->set_data( formdata = l_xfd ).
* Set PDL Output parameter
IF p_ext ne ' ' and P_PRI ne ' '.
perform pdl_para using p_ext.
l_pdfobj->set_task_renderpdl( pdltype = l_ext
pdlfile = l_pdlfile
xdcname = l_xdcname ).
ENDIF.
* Tell PDF object to create PDF.
* _pdffileout = pdffile.
l_pdfobj->set_task_renderpdf( tagged = p_tagged
dynamic = p_dynami
printable = p_print
changesrestricted = p_change
pdfnorm = p_norm ).
* Execute, call ADS.
l_pdfobj->execute( ).
* Get result PDF.
l_pdfobj->get_pdf( IMPORTING pdfdata = pdfresult ).
pdf_size = XSTRLEN( pdfresult ).
CATCH cx_fp_runtime_internal
cx_fp_runtime_system
cx_fp_runtime_usage INTO l_fpex.
PERFORM error USING l_fpex.
ENDTRY.
IF pdfresult IS INITIAL.
MESSAGE 'Fehler: keine PDF Daten erzeugt'(001) TYPE 'E'.
ELSE.
* if p_ext =' '. Kein Download der PDF Daten gefordert !
* PERFORM download_file USING pdfresult p_pdl. " Download PDF file
* endif.
CALL SCREEN 0300 STARTING AT 1 1.
ENDIF.
*---------------------------------------------------------------------*
* MODULE html_control OUTPUT
*---------------------------------------------------------------------*
MODULE html_control OUTPUT.
PERFORM pbo_html_control.
ENDMODULE. "html_control OUTPUT
*---------------------------------------------------------------------*
* MODULE html_control INPUT
*---------------------------------------------------------------------*
MODULE html_control INPUT.
PERFORM pai_html_control.
ENDMODULE. "html_control INPUT
*&--------------------------------------------------------------------*
*& Form pbo_html_control
*&--------------------------------------------------------------------*
FORM pbo_html_control.
SET PF-STATUS 'HTML'.
SET TITLEBAR 'HTML'.
* Container
IF pdf_my_container IS INITIAL.
CREATE OBJECT pdf_my_container
EXPORTING
container_name = 'HTML'
EXCEPTIONS
OTHERS = 1.
IF sy-subrc IS NOT INITIAL.
MESSAGE 'CONTROL ERROR' TYPE 'E'.
ENDIF.
ENDIF.
* HTML control
IF pdf_html_control IS INITIAL.
CREATE OBJECT pdf_html_control
EXPORTING
parent = pdf_my_container
EXCEPTIONS
OTHERS = 1.
IF sy-subrc IS NOT INITIAL.
MESSAGE 'CONTROL ERROR' TYPE 'E'.
ENDIF.
* Alignment
pdf_alignment = pdf_html_control->align_at_left +
pdf_html_control->align_at_right +
pdf_html_control->align_at_top +
pdf_html_control->align_at_bottom.
CALL METHOD pdf_html_control->set_alignment
EXPORTING
alignment = pdf_alignment
EXCEPTIONS
OTHERS = 1.
IF sy-subrc IS NOT INITIAL.
MESSAGE 'CONTROL ERROR' TYPE 'E'.
ENDIF.
PERFORM pdf_show.
ENDIF.
ENDFORM. "pbo_html_control
*&--------------------------------------------------------------------*
*& Form pai_html_control
*&--------------------------------------------------------------------*
FORM pai_html_control.
CASE fcode.
WHEN 'GOON' OR 'CANC'.
IF NOT pdf_html_control IS INITIAL.
pdf_html_control->free( ).
IF sy-subrc IS NOT INITIAL.
MESSAGE 'CONTROL ERROR' TYPE 'E'.
ENDIF.
FREE pdf_html_control.
ENDIF.
IF NOT pdf_my_container IS INITIAL.
pdf_my_container->free( ).
IF sy-subrc IS NOT INITIAL.
MESSAGE 'CONTROL ERROR' TYPE 'E'.
ENDIF.
FREE pdf_my_container.
ENDIF.
LEAVE TO SCREEN 0.
WHEN OTHERS.
cl_gui_cfw=>dispatch( ).
IF sy-subrc IS NOT INITIAL.
MESSAGE 'CONTROL ERROR' TYPE 'E'.
ENDIF.
ENDCASE.
CLEAR fcode.
ENDFORM. "pai_html_control
*&--------------------------------------------------------------------*
*& Form pdf_show
*&--------------------------------------------------------------------*
FORM pdf_show.
DATA: l_url TYPE char80,
l_pdf_data TYPE tsfixml.
CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
EXPORTING
buffer = pdfresult
TABLES
binary_tab = l_pdf_data.
CALL METHOD pdf_html_control->load_data
EXPORTING
url = 'smart.pdf' "#EC NOTEXT
size = pdf_size
type = 'application' "#EC NOTEXT
subtype = 'pdf'
IMPORTING
assigned_url = l_url
CHANGING
data_table = l_pdf_data
EXCEPTIONS
OTHERS = 1.
IF sy-subrc IS NOT INITIAL.
MESSAGE 'ERROR: CONTROL->LOAD_DATA' TYPE 'E'.
ENDIF.
* Show data.
CALL METHOD pdf_html_control->show_data
EXPORTING
url = l_url
EXCEPTIONS
OTHERS = 1.
IF sy-subrc IS NOT INITIAL.
MESSAGE 'ERROR: CONTROL->SHOW_DATA' TYPE 'E'.
ENDIF.
ENDFORM. "pdf_show
*&---------------------------------------------------------------------*
*& Form value_help_for_extension
*&---------------------------------------------------------------------*
* Get an file extension for output PDL.
*----------------------------------------------------------------------*
* <--P_EXT extension
*----------------------------------------------------------------------*
FORM value_help_for_extension USING p_fieldname TYPE dynfnam.
TYPES: BEGIN OF lty_ext,
extension type file_ext,
extname type char20,
END OF lty_ext.
STATICS st_ext TYPE STANDARD TABLE OF lty_ext WITH KEY extension.
* fill internal table st_ext with PDL types / extension
data wa like line of st_ext.
clear st_ext.
* wa-extension = ' '. wa-extname = 'PDF '. append wa to st_ext.
wa-extension = 'PCL'. wa-extname = 'PCL Format' ##no_text. append wa to st_ext.
wa-extension = 'PS'. wa-extname = 'Postscript Format' ##no_text. append wa to st_ext.
wa-extension = 'ZPL'. wa-extname = 'Zebra Print Format' ##no_text. append wa to st_ext.
wa-extension = 'DPL'. wa-extname = 'DPL Print Format' ##no_text. append wa to st_ext. "P5B NW720 SP-3 and higher
wa-extension = 'IPL'. wa-extname = 'IPL Print Format' ##no_text. append wa to st_ext. "P5B NW720 SP-3 and higher
wa-extension = 'TPCL'. wa-extname = 'TPCL Print Format' ##no_text. append wa to st_ext. "P5B NW720 SP-3 and higher
TRY.
IF cl_fp_feature_test=>is_available(
iv_connection = p_dest
iv_feature = cl_fp_feature_test=>gc_cab )
= abap_true.
wa-extension = 'CAB'. wa-extname = 'CAB Print Format' ##no_text. append wa to st_ext. "P9B Drop 18_2 NW750 and higher
ENDIF.
CATCH cx_fp_runtime_internal
cx_fp_runtime_system
cx_fp_runtime_usage. "#EC NO_HANDLER
ENDTRY.
* Show the value-help popup.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'EXTENSION'
dynpprog = sy-repid
dynpnr = sy-dynnr
dynprofield = p_fieldname
value_org = 'S'
TABLES
value_tab = st_ext.
ENDFORM. "value_help_for_extension
*&---------------------------------------------------------------------*
*& Form pdl_para
*&---------------------------------------------------------------------*
* Set PDL Output parameter
*----------------------------------------------------------------------*
* --> p_ext extension (pcl, ps, zpl)
*---------------------------------------------------------------------*
FORM pdl_para USING p_ext.
case p_ext.
* when 'PDF'.
* l_ext = 'pdf'.
* l_xdcname = ''. " xdcname will be assign automatically
* l_xdcname = 'acrobat6.xdc'.
when 'PCL'.
l_ext = 'pcl'.
if p_xdc is initial.
l_xdcname = 'hppcl5e.xdc'.
else.
l_xdcname = p_xdc.
endif.
when 'PS'.
l_ext = 'ps'.
if p_xdc is initial.
l_xdcname = 'ps_plain.xdc'.
else.
l_xdcname = p_xdc.
endif.
when 'ZPL'.
l_ext = 'zpl'.
if p_xdc is initial.
l_xdcname = 'zpl300.xdc'.
else.
l_xdcname = p_xdc.
endif.
when 'IPL'.
l_ext = 'ipl'.
if p_xdc is initial.
l_xdcname = 'ipl203.xdc'.
else.
l_xdcname = p_xdc.
endif.
when 'DPL'.
l_ext = 'dpl'.
if p_xdc is initial.
l_xdcname = 'dpl300.xdc'.
else.
l_xdcname = p_xdc.
endif.
when 'TPCL'.
l_ext = 'tpcl'.
if p_xdc is initial.
l_xdcname = 'tpcl203.xdc'.
else.
l_xdcname = p_xdc.
endif.
when 'CAB'.
l_ext = 'cab'.
if p_xdc is initial.
l_xdcname = 'cab300.xdc'.
else.
l_xdcname = p_xdc.
endif.
endcase.
endform. "pdl_para
*&---------------------------------------------------------------------*
*& Form value_help_for_jobprofile
*&---------------------------------------------------------------------*
* Get a Jobprofile
*----------------------------------------------------------------------*
* <--P_JOBP jobname
*----------------------------------------------------------------------*
FORM value_help_for_jobprofile USING p_fieldname TYPE dynfnam.
data: dynpfields type STANDARD TABLE OF dynpread.
FIELD-SYMBOLS: <f_dest> type dynpread.
perform value_read_for_destination tables dynpfields using 'P_DEST'.
READ TABLE dynpfields ASSIGNING <f_dest> index 1.
p_DEST = <f_dest>-fieldvalue.
TRY.
IF cl_fp_feature_test=>is_available(
iv_connection = p_dest
iv_feature = cl_fp_feature_test=>gc_job_profiles )
= abap_true.
* Get job-profiles list from the ADS.
go_fp = cl_fp=>get_reference( ).
go_pdf_obj = go_fp->create_pdf_object( connection = p_dest ).
gt_profiles = go_pdf_obj->get_job_profiles( ).
ENDIF.
CATCH cx_fp_runtime_internal
cx_fp_runtime_system
cx_fp_runtime_usage. "#EC NO_HANDLER
ENDTRY.
* Show the value-help popup.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'NAME'
dynpprog = sy-repid
dynpnr = sy-dynnr
dynprofield = p_fieldname
value_org = 'S'
TABLES
value_tab = gt_profiles.
ENDFORM. "value_help_for_jobrofile
*&---------------------------------------------------------------------*
*& Form value_help_for_xdc
*&---------------------------------------------------------------------*
* Get XDC name
*----------------------------------------------------------------------*
* <--P_XDC xdc
*----------------------------------------------------------------------*
FORM value_help_for_xdc USING p_fieldname TYPE dynfnam.
data l_xdc_list type TFPXDCINFO.
data l_xdc_line type SFPXDCINFO.
TYPES: BEGIN OF lty_xdc,
* name type FPXDCNAME,
name type ADSXDCNAME,
owner type FPOWNER,
END OF lty_xdc.
data: st_xdc TYPE STANDARD TABLE OF lty_xdc WITH KEY name,
dynpfields TYPE STANDARD TABLE OF dynpread,
st_xdc_line TYPE lty_xdc.
FIELD-SYMBOLS: <f_dest> type dynpread.
perform value_read_for_destination tables dynpfields using 'P_DEST'.
READ TABLE dynpfields ASSIGNING <f_dest> index 1.
P_DEST = <f_dest>-fieldvalue.
* feature test für GC_XDC_API einbauen!
TRY.
l_xdc_list = CL_FP_PRINTER_SERVICES=>GET_PRINTER_TYPE_CONFIGS( CONNECTION = p_dest ).
CATCH cx_fp_runtime_internal
cx_fp_runtime_system
cx_fp_runtime_usage INTO l_fpex. "#EC NO_HANDLER
* Fehlermeldung!!!
* PERFORM error USING l_fpex.
ENDTRY.
* MOVE-CORRESPONDING l_xdc_list to st_xdc.
loop at l_xdc_list into l_xdc_line.
IF l_xdc_line-owner = 'C'.
CONCATENATE 'XDC/Customer/' l_xdc_line-name INTO l_xdc_line-name.
ENDIF.
MOVE-CORRESPONDING l_xdc_line to st_xdc_line.
append st_xdc_line to st_xdc.
endloop.
* Show the value-help popup.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'NAME'
dynpprog = sy-repid
dynpnr = sy-dynnr
dynprofield = p_fieldname
value_org = 'S'
TABLES
value_tab = st_xdc.
ENDFORM. "value_help_for_xdc
form value_read_for_destination tables dynpfields structure dynpread using p_fieldname TYPE dynfnam.
data: line type dynpread.
line-fieldname = p_fieldname.
append line to dynpfields.
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
dyname = sy-repid
dynumb = sy-dynnr
* translate_to_upper = 'X'
TABLES
dynpfields = dynpfields.
endform.
*&---------------------------------------------------------------------*
*& Form value_help_for_pdfnorm
*&---------------------------------------------------------------------*
* Get PDFNorm.
*----------------------------------------------------------------------*
* <--P_NORM
*----------------------------------------------------------------------*
FORM value_help_for_pdfnorm USING p_norm TYPE dynfnam.
TYPES: BEGIN OF lty_norm,
pdfnorm type FPPDFNORM,
END OF lty_norm.
STATICS st_norm TYPE STANDARD TABLE OF lty_norm WITH KEY pdfnorm.
*
* fill internal table st_norm with PDFnormion
data wa like line of st_norm.
clear st_norm.
TRY.
IF cl_fp_feature_test=>is_available(
iv_connection = p_dest
iv_feature = cl_fp_feature_test=>gc_pdfa_ext )
= abap_true.
wa-pdfnorm = '' ##no_text. append wa to st_norm.
wa-pdfnorm = 'PDF' ##no_text. append wa to st_norm.
wa-pdfnorm = 'PDF/A-1' ##no_text. append wa to st_norm.
wa-pdfnorm = 'PDF/A-1B' ##no_text. append wa to st_norm.
wa-pdfnorm = 'PDF/A-2B' ##no_text. append wa to st_norm.
wa-pdfnorm = 'PDF/A-3B' ##no_text. append wa to st_norm.
elseif cl_fp_feature_test=>is_available(
iv_connection = p_dest
iv_feature = cl_fp_feature_test=>gc_render_pdfa1 )
= abap_true.
wa-pdfnorm = '' ##no_text. append wa to st_norm.
wa-pdfnorm = 'PDF' ##no_text. append wa to st_norm.
wa-pdfnorm = 'PDF/A-1' ##no_text. append wa to st_norm.
else.
wa-pdfnorm = '' ##no_text. append wa to st_norm.
wa-pdfnorm = 'PDF' ##no_text. append wa to st_norm.
endif.
CATCH cx_fp_runtime_internal
cx_fp_runtime_system
cx_fp_runtime_usage. "#EC NO_HANDLER
ENDTRY.
* Show the value-help popup.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'EXTENSION'
dynpprog = sy-repid
dynpnr = sy-dynnr
dynprofield = p_norm
value_org = 'S'
TABLES
value_tab = st_norm.
ENDFORM. "value_help_for_pdfnorm
Genaualso, wenn ich dich richtig verstanden habe, gibt es das Adobe Formular schon in SAP. Das heißt das ist auch schon in der Größe etc. auf die Zebra Drucker angepasst. Du willst es lediglich mit Daten befüllen. Der Druck auf dem Zebra klappt anscheinend auch. Das heißt, dass Interface existiert und es geht dir nur um den Drucker, richtig?