Как стать автором
Обновить

Комментарии 5

Честно говоря несколько странное решение. Вы приводите выгоды, но... Сотрудник также не может отправить пдф без интернета, где тут выгода? Сервер также может не работать, где тут выгода?

Вы переложили генерацию из одного места, которое можете контролировать, на множество мест, которые не можете контролировать)

Спасибо за комментарий!

Наверное, стоит уточнить суть задачи в статье. Получение pdf без доступа к интернету это главная просьба клиента. Поэтому функционал перенесен на телефон.

Сервер действительно может не отработать корректно запросы даже так. Поэтому мы храним отчеты в приложении и отправляем их при появлении интернета в фоне. В случае, если какой-то отчет не дошел, задача планируется заново. И так до тех пор, пока все отчеты не будут отправлены или не сработает ограничение. А до тех пор пользователь сможет самостоятельно поделиться файлом PDF физически или отправить по Интернету (если он есть).

Надеюсь, получилось объяснить

Видимо, клиент может отправить PDF по почте, соцсетям и другим каналам

А вот наш выбор пал на более костыльное (возможно), но максимально простое и быстрое в реализации решение. А именно, по кускам темплейтов создаем HTML документ, прогоняем через WebView для печати и сохраняем, полученный PDF.

Всё правильно сделали. Только я бы сказал, это очевидное решение. Я подобное делал давным-давно. Лет десять назад, так точно. И куски шаблонов — всё это тоже само напрашивается. Только тогда ещё были актуальны MS Office'ные форматы.

Если посмотреть глобально, всё, что связано с бумажной печатью — пережиток прошлого. Чем дальше в будущее, тем меньше с этим сталкиваться. А уж инвестировать в технологии, заточенные под печать — а pdf с привязкой к геометрии страницы А4 именно такая технология — тем более глупо. Поддерживается pdf в виртуальной печати в webView — ну и чудненько. Пусть у его разработчиков голова болит. А вы в нужный момент сможете остаться с документом на изначальном HTML, он-то в будущем уж точно будет везде поддерживаться.

Спасибо за ваш опыт, который вы выразили в тексте. Ваш подход имеет право на существование, но неизвестно, как он будет работать, если устройство старое или слабое, или если открыты другие приложения, которые используют оперативную память.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории