В нашем веб-приложении клиенты могут создавать бухгалтерские документы: счёт на оплату, акт, накладную, счёт-фактуру и УПД.
И затем скачивать печатную форму в формате pdf или Excel.
Печатные формы готовим в
JasperSoft Studio и используем
библиотеку для генерации форм, они бесплатные.
У Jasper'a много функций:
- печать документов с логотипом, подписью и печатью
- поддерживаются многостраничные документы (можно задать условия когда и какие элементы переходят на следующую страницы, чтобы выглядело красиво)
- колонтитулы
- есть внутренние переменные и можно прописать условия (например, если это ИП, то заполняются такие-то поля и подпись ставится вот здесь, если ООО то другие поля)
- мы используем свой фирменный шрифт и он инлайнится в pdf-файлы
- печатаем pdf и xlsx файлы — Excel удобен тем, что клиент может его редактировать
- позволяет объединять в один файл сразу несколько печатных форм (к примеру, при печати pdf на первой странице идёт акт, а на второй счёт-фактура, а в Excel они на разных листах документа)
В результате получается сделать пиксель-пёрфект pdf файлы, и достойного уровня Excel.
Но скажу сразу, что это очень-очень долго. Чтобы сделать УПД, ушло 40 часов (замерял по трекеру). И там борьба идёт за каждый пиксель.
Больше всего проблем с Excel'ем:
- если элементы хотя бы на пиксель накладываются, они не попадают в файл (просто исчезают)
- нельзя сделать картинку печати организации поверх формы — пропадает часть формы (там где фио директора, черта и надпись «подпись»)
Также хочется дать возможность клиентам просто сделать свой документ, вставив в него токены (@name, @doc_date, @doc_number), и далее передать генератору файл шаблона и значения токенов (@name='Иванов Василий', @doc_date='26.07.2017', @doc_number='75'), а на выходе получить готовую ексельку?
Есть у кого-нибудь успешный опыт применения других систем, чтобы просто напечатать документ? С помощью чего вы печатаете документы?