Добавить печать, подписи, логотип и QR-код для оплаты в шаблон счёта
Чтобы кастомизировать внешний вид счетов на оплату и предоплату, добавьте в них логотип вашей компании, печати и подписи. Также можно добавить QR-код, по которому ваши клиенты смогут быстро оплачивать счета.
Пример счёта с QR-кодом, логотипом, подписью и печатью
Чтобы настроить отображение этих элементов, отредактируйте шаблон. Можно изменять:
Каждый шаблон счёта состоит из нескольких файлов. Вам понадобятся файлы с расширением .post — они отвечают за внешний вид документа. Например, в предустановленных шаблонах это файлы:
inv.post
— для счёта на оплату,
inv_prepay.post
— для счёта на предоплату.
Названия post-файлов у шаблонов, которые вы добавляли в систему, могут быть другими.
Открыть post-файл шаблона
Шаблоны хранятся в директории /usr/local/billing/templates
.
Откройте post-файл нужного шаблона. Пример:
nano /usr/local/billing/templates/inv.post
Отредактируйте в файле параметры в зависимости от того, какие элементы вам нужны.
Настроить отображение QR-кода
Настройте параметр $useqr
:
0
— не печатать QR-код,
1
— печатать QR-код.
Пример:
$useqr = 1; // Печатать QR-код
Добавить логотип
Логотип будет печататься в верхнем левом углу первой страницы счёта. Предварительно подготовьте файл с логотипом. Требования:
- формат — png, jpg, jpeg,
- максимальный размер — высота 100 px, ширина 200 px.
Сохраните логотип в директорию, из которой система сможет загрузить его для печати.
В post-файле настройте параметр $logo
— укажите путь к изображению. Пример настройки:
$logo = "/usr/local/billing/templates/logo.png";
Добавить подписи и печать
Предварительно подготовьте файлы с подписями и печатью. Требования:
- формат — png,
- изображение должно быть без фона, т.е. иметь прозрачный альфа-канал,
- максимальная ширина — 100 px.
Сохраните файлы в директорию, из которой система сможет загрузить их для печати.
В post-файле укажите путь к изображениям в параметрах:
$sign
— первая подпись (в примере — подпись директора в нижней части документа слева).
$sign2
— вторая подпись (в примере — бухгалтера в нижней части документа справа).
$stamp
— печать организации.
Пример:
$sign = "/usr/local/billing/templates/signature.png";
$sign2 = "/usr/local/billing/templates/accountant_signature.png";
$stamp = "/usr/local/billing/templates/stamp.png";
Дополнительные настройки отображения подписей и печати
За вывод подписей и печати в счёте отвечает метод TCPDF::Image()
. Вы можете отредактировать в post-файле аргументы этого метода, чтобы задать дополнительные свойства изображений: например, сдвинуть их на листе или изменить размер.
Описание аргументов метода TCPDF::Image()
Аргумент |
Описание |
Тип данных |
Обязательный |
Значение по умолчанию |
filename |
Название файла |
string |
Обязательный |
|
left |
Положение изображения по горизонтали. Отсчитывается от верхнего левого угла страницы |
float |
- |
|
top |
Положение изображения по вертикали. Отсчитывается от верхнего левого угла страницы |
float |
- |
|
width |
Ширина изображения в пикселях. Чтобы указанное значение применилось, далее задайте в resize значение true. Если не задано или указано 0, используется оригинальная ширина файла |
float |
Обязательный |
|
height |
Высота изображения. Чтобы указанное значение применилось, далее задайте в resize значение true. Если не задано или указано 0, используется оригинальная высота файла |
float |
Обязательный |
|
type |
Формат изображения. Допустимые значения: JPG/JPEG/PNG. Если значение не задано, система попытается определить формат по расширению файла |
string |
- |
|
link |
URL или текст, который будет отображаться при клике на изображение в pdf-документе |
string |
- |
|
align |
Выравнивание изображения по вертикали относительно текущего положения. T — выровнять по верхнему краю, M — по центру, B — по нижнему краю, N — перенести на следующаю строку |
string |
- |
|
resize |
Масштабирование. true — размер изображения будет соответствовать значениям, заданным в width и height ; false — будут использоваться исходные параметры файла. Обратите внимание: масштабирование изображения может привести к ухудшению качества |
mixed |
- |
false |
dpi |
Разрешение изображения. Рекомендуется устанавливать 300 |
int |
- |
300 |
palign |
Выравнивание по горизонтали относительно текущего положения. L — выровнять по левому краю, C — по центру, R — по правому краю |
string |
- |
|
ismask |
Указывает, является ли изображение маской прозрачности. true — изображение будет обрабатываться как маска, что позволяет использовать его для создания эффектов прозрачности в pdf-документе. false — изображение будет обрабатываться как обычное |
boolean |
- |
false |
imgmask |
Объект изображения, возвращаемый функцией, который может быть использован для дальнейшей обработки или манипуляций. Если не используете маски, укажите false |
mixed |
- |
false |
border |
Граница изображения (обводка): 0 — без границы, 1 — отображать границу. Также можно указать строку с несколькими символами, чтобы отображать границу только на выбранных сторонах (в любом порядке): L — слева, T — сверху, R — справа, B — снизу |
mixed |
Обязательный |
0 |
fitbox |
Если установлено true, то размеры изображения пропорционально масштабируются, чтобы оно поместилось в поле, заданное в width и height |
mixed |
- |
false |
hidden |
Скрыть изображение. true — скрыть, false — не скрывать |
boolean |
- |
false |
fitonpage |
Если true, размер изображения изменяется так, чтобы не превышать размеры страницы |
boolean |
- |
false |
Пример:
if (file_exists($sign)){
$pdf->Image($sign, $currX + 100, $currY - 75, 100, '', 'PNG', 'ceo_sign', '', false, 300, '0');
}
if (file_exists($sign2)){
$pdf->Image($sign2, $currX + 400, $currY - 75, 100, '', 'PNG', 'accountant_sign', '', false, 300, '0');
}
if (file_exists($stamp)){
$pdf->Image($stamp, $currX + 100, $currY - 75, 100, '', 'PNG', 'romashka_stamp', '', false, 300, '0');