SAPфорум.RU https://sapboard.ru/forum/ |
|
Ошибка при конвертации PDF со спула. https://sapboard.ru/forum/viewtopic.php?f=13&t=95459 |
Страница 1 из 1 |
Автор: | ИльнарСР [ Чт, сен 14 2017, 15:41 ] |
Заголовок сообщения: | Ошибка при конвертации PDF со спула. |
Добрый день! Столкнулся с такой проблемой: Кадровикам необходимо чтобы приказы автоматически сохранялись c названием определенного формата(ФИО_таб. ном. и т.д.). Приказы формируются в формате PDF. Был опыт перевода расчетный листов в PDF и передачи для хранения в архив(Все работает). Думал что здесь можно будет сделать по аналогии. В принципе все работает до этапа открывания файла: PDF формируется в спуле, при помощи ФМ'CONVERT_ABAPSPOOLJOB_2_PDF' и ФМ 'WS_DOWNLOAD' сохраняю файл с тем наименованием, как мне нужно. Но при попытке отрыть файл - ошибка: не удается открыть файл из-за отсутствия в нем страниц. Может кто сталкивался с такой проблемой или встречал на форуме(сам я не нашёл). Спасибо! P.S. Ответ "пусть ручками меняют" не прокатит. Сами предлагали. |
Автор: | dedzinatajs [ Пт, сен 15 2017, 13:32 ] |
Заголовок сообщения: | Re: Ошибка при конвертации PDF со спула. |
Добрый день, Ильнар! 1. Сначала выберите имя файла из спула: Code: CALL FUNCTION 'ADS_SR_READ_CONTENT_DIR' EXPORTING rqident = lv_spool TABLES file_list = file_list EXCEPTIONS wrong_doctype = 1 internal_error = 2 no_directory = 3 OTHERS = 4. 2. В принципе, большинство ПДФ-ов идут как сингл-парт документы, поэтому достаточно считать из этой таблицы первую запись. В зависимости от того, заканчивается имя file_list-name на .pdf/.pda или нет - вызываете функцию: Code: IF pdf_detected = 'X'. * Get content of PDF file directly CALL FUNCTION 'ADS_SR_READ_CONTENT_TAB' EXPORTING rqident = lv_spool partfilename = file_list-name IMPORTING filelength = infilelength TABLES content_tab = content_tab EXCEPTIONS OTHERS = 5. CONCATENATE LINES OF content_tab INTO pdf IN BYTE MODE. ELSE. CALL FUNCTION 'FPCOMP_CREATE_PDF_FROM_SPOOL' EXPORTING i_spoolid = lv_spool i_partnum = 1 IMPORTING e_pdf = pdf e_pdf_file = confile EXCEPTIONS OTHERS = 5. ENDIF. 3. Конвертируем из Х-стринга в бинари и сохраняем. В lv_file_name должен быть полное имя файла включая путь! Code: CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
EXPORTING buffer = pdf IMPORTING output_length = lv_length TABLES binary_tab = lt_data_tab. CALL METHOD cl_gui_frontend_services=>gui_download EXPORTING bin_filesize = lv_length filename = lv_file_name filetype = 'BIN' CHANGING data_tab = lt_data_tab[] EXCEPTIONS |
Автор: | ИльнарСР [ Вт, сен 19 2017, 08:49 ] |
Заголовок сообщения: | Re: Ошибка при конвертации PDF со спула. |
Олег, спасибо за помощь! От себя только добавил после конвертации из Х-стринга в бинари обратную конвертацию [code][/ CALL FUNCTION 'SCMS_BINARY_TO_XSTRING' EXPORTING input_length = lv_length IMPORTING buffer = pdf TABLES binary_tab = l_tab.] Все заработало. |
Автор: | ИльнарСР [ Вт, сен 19 2017, 08:50 ] |
Заголовок сообщения: | Re: Ошибка при конвертации PDF со спула. |
Олег, спасибо за помощь! От себя только добавил после конвертации из Х-стринга в бинари обратную конвертацию Code: CALL FUNCTION 'SCMS_BINARY_TO_XSTRING' EXPORTING input_length = lv_length IMPORTING buffer = pdf TABLES binary_tab = l_tab. Все заработало. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |