Данная обработка демонстрирует лишь одну возможность, но благодаря Python-UNO bridge можно, например, организовать web сервис для работы с xls документами.
Демонстрационная обработка по конвертации табличного документа в PDF
Краткий алгоритм работы:
Табличный документ созраняется во временный xls файл.
Опен офис открывает этот файл и сохраняет в виде PDF.
1С возвращает полученный PDF пользователю.
Конвертация выполняется на сервере 1С с помощью OpenOffice. Для конывертации табличного документа достаточно передать ТабличныйДокумент функции ПреобразоватьТабличныйДокументВPDF. Функция вернёт ссылку во временном хранилище, по которой можно получить PDF файл. Данная обработка работает на всех клиентах и серверах и под виндовсом и под линуксом.
Windows
При работе под виндовсом используется COM соединение с OpenOffice.
Если опен офис установлен и не работает, значит он открывает мастер регистрации и ждёт что пользователь понажимает кнопки. Для того чтобы победить это нужно 1С запускать с системной учётной записью, в свойствах процесса поставить галку «Разрешить взаимодействие с рабочим столом», один раз исполнить этот код и прощёлкать диалог опена офиса. Кривое решение, но как решить прямо не знаю.
Linux
При работе под линуксом используется Python OpenDocument Converter. При этом на сервере дожен быть установлен Опен офис и Питон. Опен офис работает в качестве сервера, слушает порт 8100.
Назначение файлов
start_soffice_server.sh — скрипт запуска OpenOffice в режиме сервера
DocumentConverter.py — собственно преобразователь (конвертор), который передаёт Опену офису имена входного и выходного файлов
convetr2pdf.sh — скрипт запуска преобразователя (конвертора).
Для настройки под линуксом необходимо
1. В скрипте start_soffice_server.sh прописать путь к папке установки Опена офиса.
2. Скрипт start_soffice_server.sh поставить в автозагрузку ОС для того чтобы сервер Опена офиса запускался сразу.
3. В скрипте convetr2pdf.sh прописать путь к опену офису, питону и скрипту DocumentConverter.py
4. В модуле обработки поправить путь к скрипту convetr2pdf.sh. По умолчанию путь /home/usr1cv82/converter2pdf
Ощутил прелести премодерации?
Ссылка хороша…
(1) Ощутил 🙂
Я так понимаю что это Alraune быстро отработала. Буквально в 15 минут. Однако на это публикацию я ушатал почти весь день. При том что все скрипты рабочие и отлажены.
Сам не пользуюсь Линуксом, но ведь ОпенОфис на нем работает. Уточните, получается при этом не работает конфертация в PDF?
(4) CaSH_2004, опен офис работает, только вызвать его из 1С до недавнего времени было непросто. Нужна была внешняя компонента. Эта публикация показывает как без внешних компонент обратиться к опену офису.
В принципе можно обойтись без Питона. Написать скрипт на языке опена офиса и вызывать его из 1С. Но Питон даёт гораздо больше возможностей. Он позволяет использовать другим приложениям сервер опена офиса. Можешь сказать серверу «открой этот файл», «дай содержимое этой ячейки», «сюда впиши то-то», «сохрани в другом формате».
Меня расстраивала ограниченность вебклиента. Разобрать экселёвый файл на нём невозможно. На сервере под линуксом тоже ничего не получалось сделать. Puno brige даёт возможность импортировать экселёвские файлы.
Хорошая тема новой разработки «Универасльный разбор экселёвых файлов на виндовом и линуксовом сервере«. Может быть выполнена как обработка с набором методов, не зависящих от ОС и офисного пакета и позволяющих читать и писАть экселёвые и опен офисные файлы.
Я в PDF и прочих линуксах ничего не понимаю.
Кургиняна по ссылке не читал. Но осуждаю.
И тебя : ссылка здесь ни к селу , ни к городу.
И Кургиняна : популярен и неглубок.
…
Версия 8.2.15
…
Новые возможности и изменения
…
Реализована возможность сохранения табличного документа в файл формата PDF.
…
Изменения, влияющие на поведение системы
…
Реализована возможность выполнять печать табличных документов в веб-клиенте с помощью документов формата PDF. Реализована настройка «Способ печати» в диалоге настройки параметров веб-клиента.
Кстати, там еще и толстого клиента в файловом режиме работы в Linux добавили.
там еще и толстого клиента в файловом режиме работы в Linux добавили(7) Что-то дистрибутив не наблюдаю
(7)
Версия 8.2.15
Кстати, там еще и толстого клиента в файловом режиме работы в Linux добавили.
И это радует 🙂
Python-UNO bridge может быть полезен не только для получения PDF, а, ещё, например, для разбора МСофисных или Опен офисных документов.
(9) Версия 8.2.15 ознакомительная, вышла 9 декабря.http://users.v8.1c.ru/version.jsp?id=Platform82&ver=8.2.15.273
(10) Это я в курсе, речь именно
Кстати, там еще и толстого клиента в файловом режиме работы в Linux добавили
А вот дистрибутив толстого клиента где лежит?
(11) в 8 написано что «лишнее, удалить бы»
Версия 8.2.15
…
Новые возможности и изменения
…
Реализована возможность сохранения табличного документа в файл формата PDF.
А это очень интересно, не надо лишних заморочек, будем ждать официального релиза.
(1) (3) А вот теперь ощутил по полной. Halaha спамит меня, а я отписаться не могу. Раньше мог.
(34) Это другое. Комментарии закрыты были сразу, вместе с их автором, поэтому по ним не ответить ничего. Могу открыть, но оно Вам надо?
(35) Благодарю за оперативность.
На самом деле связка openoffice и python достаточно кривоватая и требует каких-то открытых портов и запущенных инстансов. Гораздо проще использовать ssconvert из пакета gnumeric.
Статья давняя, понимаю. Почему для конвертации документа под Linux нельзя использовать печать документа на CUPS-PDF принтер?
(38) можно, наверное, но интересовали не только возможности получения pdf, а и заделы для обработки табличных документов под линуксом. Развивать эту разработку в данном направлении не стал.