Memory Problem beim Zippen von PDFs

Die Objektorientierung mit ABAP®: Vererbung, Dynamische Programmierung, GUI Controls (u.a. ALV im OO).

Memory Problem beim Zippen von PDFs

Postby Ela3405 » Thu Nov 21, 2013 11:08 am

Hallo Zusammen,

ich habe ein Webdynpro, indem der User verschiedene Datensätze auswerten kann.
Diese können in Excel oder als PDF exportiert werden.

Wenn das Ganze als PDF exportiert wird, wird pro Datensatz ein extra PDF erstellt. Dieses besteht aus mehreren Informationen und zum Teil auch aus mehreren Seiten (meistens zwischen einer und drei Seiten).

Aus allen PDFs generiere ich eine ZIP-Datei, damit der User per Popup entscheiden kann, wo er die Zip Datei speichern möchte. Bisher klappt das Ganze auch wunderbar.
Wir haben heute aber einne Test mit mehreren hundert Datensätzen gemacht, und ich bekomme folgenden Fehler:
"Unable to fulfil request for 1522663510 bytes of memory space".

Das Problem jetzt ist, dass auf dem P-System bis zu 1500 Datensätze vorhanden sind, die alle automatisiert in einer Zip Datei zur archivierung abgelegt werden sollen.

Gibt es eine Möglichkeit das Ganze zu komprimieren, oder auszulagern? Oder muss ich mehrere Zip-Files erstellen?

Anbei der Code:
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1.   LOOP AT lt_report_data INTO ls_report_data.
  2.     CLEAR lt_report_data_tmp.
  3.       APPEND ls_report_data TO lt_report_data_tmp.
  4.  
  5.     " Call smartforms
  6.     CALL FUNCTION lv_fnam
  7.       EXPORTING
  8.         control_parameters = ls_ssfctrlop
  9.         output_options     = ls_output_options
  10.       IMPORTING
  11.         job_output_info    = ls_job_output_info
  12.         job_output_options = ls_job_output_options
  13.       TABLES
  14.      rep_changedoc_cplx = lt_report_data_tmp
  15.       EXCEPTIONS
  16.         formatting_error   = 1
  17.         internal_error     = 2
  18.         send_error         = 3
  19.         user_canceled      = 4
  20.         OTHERS             = 5.
  21.  
  22.     " Convert to PDF
  23.     CALL FUNCTION 'CONVERT_OTF'
  24.       EXPORTING
  25.         format                = 'PDF'
  26.       IMPORTING
  27.         bin_filesize          = lv_bytecount
  28.       TABLES
  29.         otf                   = ls_job_output_info-otfdata
  30.         lines                 = lt_lines
  31.       EXCEPTIONS
  32.         err_conv_not_possible = 1
  33.         err_bad_otf           = 2.
  34.     LOOP AT lt_lines INTO ls_line. "into l_line.
  35.       lv_string = ls_line.
  36.       EXPORT my_data = lv_string TO DATA BUFFER lv_buffer.
  37.       IMPORT my_data TO l_xline FROM DATA BUFFER lv_buffer IN CHAR-TO-HEX MODE.
  38.       CONCATENATE l_pdfstring l_xline INTO l_pdfstring IN BYTE MODE.
  39.     ENDLOOP.
  40.  
  41.     "Add file
  42.     lr_zip->add(
  43.       EXPORTING name = lv_filename
  44.              content = l_pdfstring ).
  45.  
  46.     lr_zip->save( RECEIVING zip = lv_zip_xstring ).
  47.  
  48.  
  49.   "Attach zip file to response
  50.   cl_wd_runtime_services=>attach_file_to_response(
  51.     EXPORTING i_filename      = lv_zip_name
  52.               i_mime_type     = 'application/x-zip-compressed'
  53.               i_content       = lv_zip_xstring
  54.               i_in_new_window = abap_true ).
  55.  
GeSHi ©
Ela3405
.
.
 
Posts: 3
Joined: Thu Nov 21, 2013 10:55 am

Return to ABAP Objects®

Who is online

Users browsing this forum: No registered users and 3 guests