Перейти к основному содержанию

Вопросы

Можно ли распечатать документ из моего приложения?

Да, и ничего устанавливать не нужно. Каждое сгенерированное приложение включает стили печати: комбинация Ctrl+P или выбор опции «Сохранить как PDF» создаёт чистую страницу формата А4 без элементов навигации, в чёрно-белом варианте — вне зависимости от выбранной темы интерфейса. Раздел «Сводка» идёт дальше: в нём присутствует детерминированная кнопка «Печать», сплошные цветовые заливки воспроизводятся точно так же, как на экране, а переносы страниц никогда не разрывают строку с суммой пополам. Но важно понимать: PDF генерируется самим браузером, а не встроенной библиотекой — значит, нет ни шаблона счёт-фактуры под ваш фирменный бланк, ни автоматической отправки по электронной почте. Эта страница чётко указывает, что именно выйдет из принтера — и что не выйдет.

Что есть во всех приложениях: чистая страница А4

Стили печати — не опция, которую нужно включать: они встроены в CSS-файл каждого сгенерированного приложения и применяются исключительно при печати — отображение на экране остаётся неизменным до последнего символа. Их работа сводится к четырём ключевым действиям. Во-первых, задаётся формат А4 с удобными для принтера полями. Во-вторых, с листа удаляются все элементы, не предназначенные для печати: боковая панель навигации, верхняя панель, нижний колонтитул сессии, значок Blueprint и любые другие элементы, помеченные как «не для печати» — в том числе сама кнопка «Печать», поэтому она никогда не появится в итоговом документе.

В-третьих, фон принудительно устанавливается белым, а текст — чёрным, независимо от активной темы: приложение в тёмном режиме не распечатается чёрной страницей, а контраст гарантируется без лишнего расхода чернил. Наконец — это самый незаметный, но важнейший момент — оболочка получает поведение обычного документа. На экране приложение занимает всю высоту окна и прокручивает содержимое внутри; при печати такой подход привёл бы к обрезанию страницы на первой видимой высоте. Правила отключают эту механику: высота теперь зависит от объёма содержимого, и список из сорока строк займёт ровно столько страниц, сколько потребуется.

Раздел «Сводка»: готовый к печати документ со своей кнопкой

Раздел «Сводка» — будь то количественный сводный отчёт или документ по рубрикам — по своей сути предназначен для печати или экспорта в PDF. Поэтому генератор размещает в нём детерминированную кнопку «Печать» без внешних зависимостей и сетевых запросов: она вызывает стандартную функцию печати браузера и автоматически скрывается при выводе. Сам документ адаптируется соответствующим образом: тени исчезают, закруглённые углы становятся прямыми, ширина растягивается на всю страницу, а внутренняя горизонтальная прокрутка отключается — чтобы ничего не осталось за пределами листа.

Два нюанса отличают настоящий документ от простого скриншота. Во-первых, цветные блоки — заголовочная полоса, строка итога, промежуточные суммы — воспроизводятся точно так же, как на экране. По умолчанию браузеры обесцвечивают такие элементы при печати, и без этого правила строка итога потеряла бы именно то, что делает её заметной среди других. Во-вторых, переносы страниц строго контролируются: строка с суммой никогда не разрывается между двумя листами, а заголовок раздела не остаётся одиноко внизу страницы — он перемещается вместе со строками, которые он озаглавляет.

PDF создаётся браузером — и это осознанный выбор

В поставляемом приложении не встроена никакая библиотека генерации PDF: PDF-файл создаётся через стандартное диалоговое окно печати браузера — опцией «Сохранить как PDF». Такой выбор имеет как преимущества, так и ограничения — и лучше заранее их понимать. С одной стороны: работает автономно, бесплатно, не добавляет зависимостей для поддержки и одинаково хорошо функционирует как на смартфоне, так и на компьютере. С другой стороны: это ручная операция — кнопки «Отправить PDF клиенту» не существует, а колонтитулы и имя файла берутся из настроек браузера, а не из приложения.

Для документов со строками — например, сводки заказа или детализированного отчёта — генератор умеет создавать соответствующую верстку, если структура ваших данных это позволяет: родительская запись, связанные строки и сумма по строке, которая ПЕРЕСЧИТЫВАЕТСЯ на основе полей этой строки. Последний момент — не дань эстетике: сумма, пересчитываемая при каждом отображении, не может расходиться с составляющими её данными, тогда как сохранённая сумма не проверяется ни с чем. При неоднозначной структуре генератор предпочитает отказаться от создания документа, чем выдать ошибочный — отсутствие документа предпочтительнее ложного документа.

Что это НЕ заменяет

Скажем прямо: это не модуль выставления счётов. Здесь нет шаблона счёт-фактуры под ваш фирменный бланк, нет юридически обязательной нумерации, нет автоматического добавления обязательных реквизитов и нет отправки клиенту. Кроме того, электронный счёт-фактура в смысле регуляторных требований — это вовсе не PDF, а структурированный формат, передаваемый через аккредитованную платформу (этот вопрос рассмотрен отдельно). То, что решает печать, это повседневная задача: получить читаемый лист, который можно передать в руки, прикрепить к стенду в мастерской, взять на объект или положить в дело.

Чтобы передавать данные, а не бумагу, каждая таблица дополнительно оснащена кнопкой экспорта в CSV: она экспортирует именно те строки, которые вы видите на экране, а количество строк отображается прямо на кнопке. А если вам действительно нужен полноценный генератор PDF — с вашим фирменным стилем, нумерацией и автоматической отправкой — его можно добавить: поставляемый код — это обычный проект на Next.js и Prisma, полностью принадлежащий вам, и разработчик легко интегрирует необходимые компоненты. Готового решения «из коробки» нет — но техническая возможность есть, чего нельзя сказать о закрытых системах.

Узнать больше

Похожие вопросы

Создать приложение, которое корректно печатается