Новые версии MS Office хранят файлы в формате docx и xlsx, которые представляют собой zip архив с описанием структуры файла в виде xml файла.
Приступим.
- Готовим печатную форму, в те места куда необходимо внести информацию отмечаем уникальными тегами.
- Загружаем печатную форму в макет как двоичные данные.
- При печати получаем макет как файл и распаковываем.
- В папке находим файл document.xml
- Обрабатываем его как строку (заменяем теги на данные)
- Сохраняем обратно в файл document.xml
- Упаковываем папку в zip архив и отдаем документ пользователю.
В результате получили 2 плюса:
- Форма выводится со всеми отступами и форматированием как в исходном шаблоне.
- Скорость формирования такой печатной формы намного выше.
Во вложении пример.
p.s. Теперь вообще неважно, какой текстовый редактор используется, и на какой ОС работает пользователь.