Описание принт-агента:

Каким-либо образом (вручную или, лучше, программным образом – из основной программы обработки данных) создается файл данных отчета. Это – обычный текстовый файл, содержащий описания ячеек, из которых состоит отчет. Далее этот файл открывается специальной программой печати (pr.exe или prmm.exe), которая на его основе выводит изображение на принтер (также возможен предварительный визуальный просмотр). Вызов программы печати может осуществлять основная программа обработки данных, передавая текстовый файл отчета в качестве параметра.
Скачать программные файлы (соданные с помощью C++ Builder). Pr.exe – для случая, когда размеры ячеек задаются в дюймах, prmm.exe – для случая, когда в миллиметрах.
Язык ячеек:
Просмотр файла программой печати начинается со строки
BeginReport
И заканчивается на строке
EndReport

Файл состоит из последовательно описанных ячеек. Что это означает? Описание ячейки начинается со строки
BeginCell
И заканчивается строкой
EndCell

Внутри – в любом порядке строки, в большинстве своем имеющие вид
ИмяПараметра=ЗначениеПараметра
Следите за регистром символов – он важен!

TextSizeGlobal=15 размер шрифта (распространяется на все последующие ячейки)
TextSizeLocal=10 - действует только для 1 ячейки

PenSizeGlobal=11 это толщина линии
PentSizeLocal=4

FontNameGlobal=Arial это название шрифта
FontNameLocal=Wingdings

Это есть три пары локальных-глобальных параметров. Остальные параметры действуют в пределах своей ячейки.

PenColor=RED (BLACK,WHITE,GREEN и др.) – это цвет рамок
BrushColor=NAVY это цвет заполнения ячейки
FontColor=YELLOW цвет шрифта
Еще возможные варианты для цвета:
RED, SILVER, GRAY, DKGRAY, SKYBLUE, LIME, OLIVE, CREAM,
PURPLE, LTGRAY, MAROON
FontStyle=BOLD (ITALIC, UNDERLINE…) стиль шрифта (жирный, наклонный…)
Align=Left (Right,Top,Bottom,HCenter,VCenter,Center) выравнивание
Еще: Align=Wrap означает перенос текста в ячейке по словам.

3 важных параметра:
Width=3 - длина ячейки (в дюймах!).
Height=2.5 – высота - тоже в дюймах.
Желательно, чтобы все ячейки в строке имели одинаковую высоту!
ЗАМЕЧАНИЕ: регионального формата отображения разделителя дробной части (при указании размера ячейки) можно не придерживаться, используйте или точку, или запятую.
ВАЖНО – если вы используете не исполняемый файл pr.exe, а файл prmm.exe, то размеры ячеек задаются не в дюймах, а в миллиметрах! И должны быть целыми.
NextString это означает, что следующие ячейки идут с новой строки (знака «=» и значения у этого параметра нет).

Text=Иван Петрович - это вывод текста (не ограниченного рамкой, точнее границами ячейки).
FramedText=111 - это вывод текста, ограниченного рамкой (точнее границами ячейки). То, что выходит за пределы, будет обрезано. Но это еще не означает, что ячейка будет «обрамлена» (для этого смотри следующую команду).

ShowFrame – окружить ячейку рамкой (цвет и толщина определяются параметрами PenColor и PenSizeLocal (или …Global))

ImageDraw=D:\Work\1.bmp – показать рисунок (возможно он вылезет за пределы ячейки и, возможно, будет частично затерт следующими ячейками). Рисунок берется из соответствующего файла.

ImageStretch= D:\Work\1.bmp - то же, но рисунок будет растянут или сжат к границам ячейки.

Transparent делает рисунок прозрачным (цвет его угла (похоже левого верхнего) не изображается). Этот параметр действует на весь последующий отчет (то-есть глобально).
NoTransparent – выключает этот режим. Этот параметр тоже действует глобально.

Другие строки просто игнорируются.
Пример текста в файле
BeginReport

BeginCell
TextSizeGlobal=25
PenSizeLocal=0
Width=2.3
Height=1
FramedText=AAAAAAAAA BBBBB
PenColor=BLACK
FontColor=NAVY
Transparent
BrushColor=LTGRAY
FontStyle=STRIKEOUT,UNDERLINE
ImageDraw=D:\Work\1_1.bmp
FontNameGlobal=Wingdings
EndCell

BeginCell
Width=1.5
Height=1
FontNameGlobal=Arial
FramedText=111
PenColor=RED
FontColor=GREEN
Align=Center
EndCell

BeginCell
Align=Center
BrushColor=GREEN
Width=1.5
Height=1
FramedText=Привет, это третья ячейка
PenColor=MAROON
ShowFrame
EndCell

BeginCell
Width=0.5
Height=1
NextString
FramedText=Это четвертая ttttttttt ttttttttttttttttt ttttttttttttttt
PenColor=RED
FontColor=NAVY
ShowFrame
EndCell
//////////////////
BeginCell
Width=0.5
Height=1
NextString
EndCell
//////////////////

BeginCell
TextSizeGlobal=25
Width=2
Height=1.5
FramedText=Иван !!!!
ShowFrame
EndCell

BeginCell
TextSizeLocal=10
Width=2
Height=1.5
ShowFrame
FramedText=01010101 01
NextString
EndCell
///////////////////
EndReport



Опции командной строки для программы:

-o P задать портретную ориентацию
-o L задать альбомную (горизонтальную) ориентацию

-f Filename задать имя файла для печати

-p приступить к печати немедленно и сразу после этого закончить приложение
-d в случае немедленной печати потом еще и удалить файл

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

Примечание:
Размер шрифтов – в пунктах (как в C++ Builder). При этом размер и ячеек и букв и на экране и на отпечатанном на принтере листе будут примерно одинаковыми. Размер (толщина) пера же задается в пикселах (тоже как в C++ Builder). Насчет размера пера – толщина линий на принтере будет меньше, чем на экране. Это будет более заметно для толстых рамок.
--------------------------------------------