Печать документа с сайта - генерация документа под печать (или в PDF) из HTML шаблона
В данном примере мы используем шаблон документа в HTML, подменяем параметры и даем возможность распечатать документ на принтере.
Используя возможность сохранять документ в PDF (вместо принтера), можно таким образом организовать экспорт документов в PDF.
Плюсы данного подхода:
- Гибкое и простое управление шаблоном и его стилями (по сранению с генерацией документа через Word)
- Возможность встраивать сложные визуализации в выходной документ
Минусы:
- Возможны отличия в печати для разных устройств (разные браузеры)
- Нет возможности сохранить как документ Word для последующей правки документа
Как реализовать подготовку документа на печать:
1. Создаем шаблон в виде HTML блока (просто разметка):
<div class="text-muted mb-2">
Подрядчик: {p1}
</div>
<div class="text-muted mb-2">
Заказчик: {p2}
</div>
<h1 class="text-center my-5">{p3}</h1>
<p class="text-right">{p4}</p>
<p>
Работы согласно: {p5}
включающие:
</p>
{p6}
<table class="table table-striped my-5">
<thead>
<tr><th>Работы</th><th>Кол-во</th><th>Ед.</th><th>Стоимость</th></tr>
</thead></table>
<p>
выполнены полностью и с надлежащим качеством. Претензий у заказчика к выполненным работам нет.
</p>
<p>Стоимость работ составила:
<b>{p7}</b>. В том числе НДС: Ноль рублей 00 копеек
</p>
<div class="row mt-5">
<div class="col-12 col-sm-6">
ПОДРЯДЧИК:<br><br>
_____________________ {p8}<br><br>
"____" __________ {year}г.
</div>
<div class="col-12 col-sm-6">
ЗАКАЗЧИК:<br><br>
_____________________ {p9}<br><br>
"____" __________ {year}г.
</div>
</div>
2. Создаем форму, где извлекаем шаблон и заменяем параметры данными. GetItem:
CREATE PROCEDURE [dbo].[fm_watch_docFromHTML_getItem]
@itemID int,
@username nvarchar(256)
AS
BEGIN
declare @s nvarchar(max) = dbo.as_htmlBlock('printAct', 1)
declare @g uniqueidentifier = newid()
set @s = replace(@s, '{p1}', 'Индивидуальный предприниматель Сухоруков И.И.')
set @s = replace(@s, '{p2}', 'ООО Матильда')
set @s = replace(@s, '{p3}', 'Акт №65 Сдачи-приемки выполненных работ')
set @s = replace(@s, '{p4}', '10 октября 2022 года')
set @s = replace(@s, '{p5}', 'Дополнительное соглашение №6 от 5 ноября 2019г.')
set @s = replace(@s, '{p6}', 'Работа №11шт.200
Работа №21шт.350')
set @s = replace(@s, '{p7}', '550 ('+dbo.as_numPropis(550, 1)+') рублей ')
set @s = replace(@s, '{p8}', 'Петров И.И.')
set @s = replace(@s, '{p9}', 'Иванов И.В.')
set @s = replace(@s, '{year}', year(getdate()))
select @s info, @g g
select 'h3' headerTag
END
3. Добавляем кнопку as-print для печати содержимого контейнера с id = @g. Разметка формы:
<a href="#" class="btn btn-primary as-print float-right" data-cont="#{colview-g}"><i class="fa fa-print"></i> Print</a>
{form-title}
<div id="{colview-g}">
{colview-info}
</div>
Другие демостенды
— Форма с проверкой действия на сайте. Подтверждение действия на форме (confirm)— Генерация Excel документа по шаблону в личном кабинете на сайте
— Создание Word документа по шаблону на сайте
Что есть в базе знаний по этой теме
— Генерация документов Docx и Xlsx. Выгрузка Excel, Word по шаблону— Как сделать зависимые поля в форме (Страна, Город)
— Попап (popup) окна - показ модальной формы по событию или таймауту
— Настройки и стилизация Excel таблицы при экспорте компонента Таблица в xlsx
— Настройка конвертации в PDF генерируемых по шаблону документов docx, xlsx
Последние обновления
Интеграции 24.11.2025
Разное 24.11.2025
Форма 15.11.2025
Визуализация 02.11.2025
Таблица 08.10.2025
Форма 26.09.2025
Таблица 23.09.2025
Разное 23.08.2025
Таблица 21.08.2025
Форма 20.08.2025
Таблица 18.08.2025
Таблица 21.06.2025
Форма 07.06.2025
Форма 29.03.2025
Форма 17.02.2025
Файлы и документы 10.01.2025
Форма 01.11.2024
Форма 23.10.2024
SQL-инструмент для создания личных кабинетов на сайте
Платформа Falcon Space
Это снижение стоимости владения
за счет меньшего количества людей для поддержки
Это быстрое внесение изменений
по ходу эксплуатации программы
Это современный интерфейс
полная адаптация под мобильные устройства