Как печатать визитки из приложения Delphi

24.08.2020

Приложения написанные на Delphi встречают не так часто, как, например на C#. Эти языки из разных времен. Тем не менее, и в настоящее время Delphi и библиотека VCL способны решать современные задачи. Существует множество бесплатных и коммерческих библиотек, способных “осовременить” даже старые приложения. Например, генератор отчетов FastReport 6 VCL позволяет создавать современные отчеты и экспортировать их во множество форматов электронных документов и изображений. Иногда, генераторы отчетов применяют для решения нетривиальных задач, таких как печать визитных карточек.

Визитная карточка, или визитка - это весьма находчивое изобретение. Небольшая картонная карточка, которая содержит необходимые контактные данные о бизнес представителе позволила мгновенно передавать эти данные человеку. Что избавило от проблемы записывания контактов при короткой встрече с бизнес-партнером, клиентом. Со временем визитная карточка стала правилом хорошего тона для любого делового человека. И даже социальные сети и мессенджеры не могу вытеснить их из обихода. Как правило, у человека в бумажнике находится множество визиток от разных людей. И чтобы как-то выделиться из их многообразия, уделяют немало времени дизайну. Хороший дизайн привлекает внимание и делает информацию легко читаемой. Крупные фирмы заказывают уникальный дизайн визиток за большие деньги и печатают их на
дорогой перфорированной бумаге. Что поделать – имидж.

Форм-фактор и размер визиток в целом устоялся во всем мире, но все же есть небольшие различия в разных странах. Так, например в США стандартная визитка имеет размеры 3,2”×2”, что соответствует 88,9×50,8 мм. А в Германии и Франции визитки выше и уже - 85×55 мм.

В этой статье мы рассмотрим, как с помощью генератора отчетов FastReport VCL легко и быстро вывести на печать визитки.

Пользовательское приложение будет создано на платформе VCL. При установке генератора отчетов FastReport VCL, в вашей среде разработке уже добавились вкладки с компонентами FastReport на палитру компонентов. Поэтому, прежде всего добавим на форму компонент frxReport, который позволит нам запустить дизайнер отчетов, а также запустить сам отчет. Также, потребуется пара кнопок: одна – для запуска дизайнера отчетов, другая - для запуска отчетов. Вы можете сделать отдельное приложение, которое будет запускать дизайнер отчётов, или удалить эту кнопку, когда создадите нужный отчет. Все дело в том, что для запуска дизайнера отчетов, нам нужно скомпилировать приложение.

А теперь давайте добавим код для события нажатия для каждой из кнопок. Для запуска дизайнера отчетов код будет таким:

1
frxReport1.DesignReport();

А для запуска отчета - таким:

1
2
3
 frxReport1.LoadFromFile(‘Report file path here’);
 frxReport1.PrepareReport();
 frxReport1.Print();

При нажатии на копку, этот код отправит отчет на печать. Перед печатью будет показано окно настроек печати. Но если вы сначала хотите взглянуть на отчет, то замените последнюю строчку кода на:

1
frxReport1.ShowReport();

Кроме того, вы можете не задавать жесткий путь к файлу отчета в коде, а использовать диалоговое окно открытия файла. Добавьте компонент OpenDialog  на форму. Код для кнопки изменится следующим образом:

1
2
3
4
5
6
7
8
OpenDialog1.Filter := 'FastReport VCL (*.fr3)|*.FR3';
 OpenDialog1.Execute();
 if Length(OpenDialog1.FileName)>0 then
 begin
 frxReport1.LoadFromFile(OpenDialog1.FileName);
 frxReport1.PrepareReport();
 frxReport1.Print();
end

Давайте запустим приложение и нажмем на первую иконку, которая запускает дизайнер отчетов.

Для создания визиток на понадобится лишь один бэнд в отчете – MasterData. В меню File выберите пункт Page Settings:

 Page options

В окне настроек страницы мы можем задать количество колонок на странице. Таким способом можно выводить текстовую информацию как в газете или журнале. Но наша цель другая. Нам нужно разместить на стандартном лист А4 как можно больше визиток. При ширине визитки в 9см, нам нужно две колонки. В свойствах бэнда можно выставить высоту будущей визитки – свойство Height = 5. То есть высота 5 сантиметров. Таким образом размер визитки – 90х50 мм. 

Теперь можно приступить к созданию самой визитки – это уже дело вашего вкуса. Чтобы сделать линии отреза ножницами, можно разместить на бэнде объект Text. Растяните его по размеру бэнда и установите все границы, выберите толщину линии 0,1 и тип линии прерывистый.

 Line style

Если бы мы запустили отчет прямо сейчас. То увидели бы только одну визитку. А по нашим подсчетам их должно поместиться 10. Просто задайте свойство RowCount для бэнда MasterData. В итоге у нас получится такой шаблон отчета:Business card report template.

Теперь можно сохранить его и закрыть дизайнер. А с помощью второй кнопки на форме выберите сохраненный файл отчета и распечатайте его, если в коде вы выбрали вариант с печатью. Если вы выбрали просмотр отчета (ShowReport), то увидите нашу страницу с визитками:Showed report

На этом все. Просто, и главное быстро! За десять минут мы наделили программу возможностью выводить визитки на экран или сразу на печать. Впрочем, из окна просмотра отчета вы тоже можете распечатать, с помощью соответствующей кнопки, а также сохранить документ в следующих форматах: PDF, DOC, HTML, HTML5, SVG, RTF, XLS, XML, BMP, JPEG, TIFF, CSV, TXT(для матричных принтеров), GIF, ODS, ODT, Excel и другие.

11 декабря 2023

Новый транспорт S3 (Amazon) в FastReport VCL

В этой статье мы рассмотрим новый транспорт в S3 (Amazon) для FastReport VCL, являющийся объектным хранилищем файлов и бакетов.
26 сентября 2023

Новый транспорт NextCloud в FastReport VCL

Подробная инструкция по использованию нового транспорта для подключения к NextCloud чтобы сохранять построенные отчёты в облако.
26 сентября 2023

Установка компонентов FastReport и FastCube в Lazarus

Инструкция по установке FastReport в Lazarus для различных операционных систем со сравнением редакций Academic, Trial, Professional.