IE2017

Формирование внешних печатных форм на LINUX

Печать - Печатные формы документов

В связи со все большим использованием LINUX как основной ОС для сервера приложения и для клиента, вопрос формирования печатных форм приказов и т.п. с учетом всех требований по оформлению встал очень остро. Ранее для этого использовали макеты в формате doc и обрабатывали, запуская word или writer в фоне как com приложение. Пользователи очень требовали работы под Cent OS и "родилось" решение без использования com.

Новые версии MS Office хранят файлы в формате docx и xlsx, которые представляют собой zip архив с описанием структуры файла в виде xml файла.

Приступим.

  1. Готовим печатную форму, в те места куда необходимо внести информацию отмечаем уникальными тегами.
  2. Загружаем печатную форму в макет как двоичные данные.
  3. При печати получаем макет как файл и распаковываем.
  4. В папке находим файл document.xml
  5. Обрабатываем его как строку (заменяем теги на данные)
  6. Сохраняем обратно в файл document.xml
  7. Упаковываем папку в zip архив и отдаем документ пользователю.

В результате получили 2 плюса:

  • Форма выводится со всеми отступами и форматированием как в исходном шаблоне.
  • Скорость формирования такой печатной формы намного выше.

Во вложении пример.

p.s. Теперь вообще неважно, какой текстовый редактор используется, и на какой ОС работает пользователь.

Скачать файлы

Наименование Файл Версия Размер
Пример формы договора
.epf 21,28Kb
22.12.16
9
.epf 21,28Kb 9 Скачать

См. также

Комментарии
1. Олег Молочников (milkers) 1647 23.12.16 13:27 Сейчас в теме
Что насчет формирования таблиц с переменным количеством строк?
2. Павел Олейников (OPM) 19 23.12.16 13:57 Сейчас в теме
Надо копать глубже структуру xml, пока не было необходимости.
3. Артём Андриянов (CSiER) 28.12.16 19:07 Сейчас в теме
Формат называется Office Open XML - реализаций на 1С не встречал - может быть кто-то в комментариях ниже поделится ссылками.
4. Sergey Andreev (starik-2005) 1008 28.12.16 21:58 Сейчас в теме
(1) а в чем трудность? Сделай таблицу с тремя строками, в каждую строку напиши "Строка_1(2,3)" и погляди, что там в XML получилось. Думаю минут 10 надо от силы, чтобы разобраться, как и что с таблицами делать.

ЗЫ: Совсем программисты любопытство потеряли. Или это только 1С-неги таковы? )))
5. Евгений Мартыненков (JohnyDeath) 290 11.01.17 10:00 Сейчас в теме
6. Павел Олейников (OPM) 19 12.01.17 15:09 Сейчас в теме
(5)спасибо хорошая обработка, но это универсальное решение для создания документа. Основная мысль моего решения, что заказчики сами готовят документ в том виде, и форматировании в котором хотят получить, работа программиста в этом случае только заменить слова на теги.
Возьму ознакомиться с генерацией Office Open XML. Спасибо.
7. probot (Probot1c) 04.02.17 06:41 Сейчас в теме
Не совсем авоматизированная обработка, все равно нужно вручную исправлять
8. Sergey Andreev (starik-2005) 1008 04.02.17 10:23 Сейчас в теме
(7) исправь обработку - и не парься.
9. Павел Олейников (OPM) 19 05.02.17 16:00 Сейчас в теме
Пользователю нужна не обработка с кучей настроек, а кнопка формирующая нужный ему документ (печатную форму), а это идея как упростить труд программиста по созданию такой кнопки. Можно дальше развивать, до хранения в отдельном справочнике реестра заменяемых полей и алгоритма как их заполнять по каждой печатной форме и т.д. Надо просто посчитать что выгоднее по времени и дальнейшему сопровождению, сделать печатные формы отдельными обработками или делать делать универсальный механизм?
Оставьте свое сообщение