Как реализовать печать форм документов из браузера?

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

Кажется, что выбранное решение получается слишком сложным, победить в общем виде, чтобы все корректно рассчитывалось под А4 с нужными полями не получается. Нумерация и таблицы - отдельная боль.

Может уже есть какие-то решения и подходы, которые позволят решить задачу проще. Раньше сталкивались с документами только в разрезе заполнения Excel таблицы нужными значениями, конвертами в pdf и отправкой на печать уже pdf. Но здесь форма документа произвольная, поэтому нельзя заранее на сервере продумать шаблон.
На баке используем golang, поэтому если есть варианты библиотек, то лучше под go.

Дополнительно:

https://github.com/Mindinventory/Golang-HTML-TO-PD...

Для принтера существует отдельный медиа запрос, в котором вы пишете все свои хотелки по форматированию листа под печать, в том числе колонтитулы, размер страницы, нумерацию, так же описываете элементы в стандартных единицах печати - cm/pt. Все весьма просто гуглится и на том же хабре вроде даже пару толковых статей было (тыц тыц).

Ответы:

Буквально тысячами разных способов - от генерации любым шаблонизатором или даже фронтендом html-стринцы, пригодной для печати, до генерации на бэкенде pdf'ки и отправки клиенту, никаких принципиальных проблем с её формированием из произвольной формы нет.

 

Для решения данной проблемы вы можете воспользоваться услугами фрилансеров. Мы выполним необходимую работу быстро и качественно.

 

    • Как реализовать печать форм документов из браузера?Есть ответ
    • 07.04.2024
    Ответить

    Для реализации печати форм документов из браузера, вам понадобится использовать стандартные средства HTML, CSS и JavaScript. Вот пример того, как можно это сделать:

    1. Создайте HTML форму, которую вы хотите напечатать:

     
      <label for="name">Имя:</label>
      <br><br>
     
      <label for="email">Email:</label>
      <br><br>
     
      <button type="button">Печать</button>

    2. Добавьте CSS стили для печати:

     
    @media print {
      body * {
        visibility: hidden;
      }
     
      #myForm, #myForm * {
        visibility: visible;
      }
     
      #myForm {
        position: absolute;
        left: 0;
        top: 0;
      }
    }

    3. Напишите JavaScript функцию для печати:

    function printDocument() {
      window.print();
    }

    Теперь, когда пользователь заполнит форму и нажмет кнопку "Печать", форма будет отображаться на отдельной странице для печати. Вы также можете настроить CSS стили для печати, чтобы форма выглядела правильно на печати.

    Надеюсь, это поможет вам реализовать печать форм документов из браузера. Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать.

Оставить комментарий