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

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

Браузер делает PDF файл в 3 раза больше чем wkhtmltopdf.

Так и не понял что не понравилось заказчику по этой фразе

Отправляем заказчику и получаем ответ, что отображаемое заключение должно полностью совпадать с PDF один в один

Один в один в Хроме? Покажите в Firefox, будет один в один с wkhtmltopdf .

Браузер делает PDF файл в 3 раза больше чем wkhtmltopdf.

Спасибо за замечание, действительно так. Chrome выдал почти вдвое больше размер по сравнению с wkhtmltopdf.

Один в один в Хроме? Покажите в Firefox, будет один в один с wkhtmltopdf .

Отображение в chrome и firefox должно быть идентично, а результат в PDF должен полностью совпадать с отображением в chrome и firefox.

Так и не понял что не понравилось заказчику по этой фразе

С помощью wkhtmltopdf на основе шаблона для генерации PDF и данных получался отличный PDF, но он отличался внешним видом от того, что видел пользователь: немного цвет другой, сдвинулся текст, перенос в другом месте и т.п. Это оказалось критичным.

Во-первых, тогда пользователю придется ждать пока сгенерируется PDF на сервере.

Во-вторых, пользователю необходимо сразу видеть какой он получит результат

Так может вам с другой стороны надо было подойти и сделать просмотрщик HTML на основе QT webview и там же кнопку для сохранения в PDF, а не мучать попу с консольными утилитами. У нас html2pdf используется, чтобы генерить PDF в количестве 70К штук и рассылать клиентам. А у вас там пользователь ручками всё делает, так зачем вам вообще эти серверные решения?

// Create webview and load html source

QWebView webview;

webview.setHtml(htmlinput);

// Create PDF

webview.print(&printer);

Как именно? На сервере рендерить и отображать юзеру страницу для редактирования, или просто предпросмотр PDF сделать, или виджет какой-то? Мне непонятно, что именно предлагаете.

На ПК пользователя должен оставаться всё тот же фронт на React и Ant Design.

Ок, допустим откажемся от всех либ фронта, главное, чтобы отображалось как html,css, js в браузере и было возможно реализовать редактирование страницы меньшими затратами на разработку. как это сделать?

Так пускай у себя на компьютере и печатают из браузера. Посмотрел страницу и напечатал у себя на компьютере в PDF. Или им отключили кнопку печати из браузера? Где они смотрят свои html, css, js ?

  1. Да, им отключили кнопку. PDF открывается по ссылке на него. Ссылку предоставляет бэк.

  2. Потребовалась обязательная генерация PDF на сервере

Хранение сгенерированного PDF не требовалось и некоторое время это устраивало заказчика, до тех пор, пока не появилось требование генерировать PDF на стороне сервера. 

Смысл отключать кнопку, если весь тот же функционал предоставляется? Извращения какие-то описываете. Не дай бог заказчика с шизой.

Заказчик сам не всегда знает что он хочет и что он захочет через месяц.

У меня была похожая задача лет 7 назад. Клиенту понравился отчёт, который я рисовал на страничке в браузере и ему захотелось скачать его в pdf одной кнопкой. Ну ок, самое простое - через API печати браузера делаем на фронте pdf и даём скачать. Клиент доволен.

Через неделю приходит - хочет чтобы была кнопка "отправить этот pdf по email другому юзеру (начальнику)". Хмм, чтож ты сразу не сказал, старый хрен.. Ок, в принципе сделать pdf мы уже можем - пусть фронт отправляет этот pdf на бэк, а тот его в письмо цепляет. Клиент доволен.

Черзе неделю приходит, говорит - у тебя уже всё же для этого сделано - мне неохота кнопку самому жать, пусть этот отчёт отправляется автоматически в 2 часа ночи..

Понятно что в 2 часа ночи никакой браузер кнопку сам не нажмёт. Нормального headless-Chrome и puppeter в докере 7 лет назад не было.. Наорал на диван, и сел переписывать всё на бэкенде на питоне. А там почти вся страница генерировалась браузером, около 1к строк на жабьем скрипте, графики и таблицы, кастомный css.. В итоге всё переделал, за код мне стыдно до сих пор.

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

Публикации