Утилита PrintTextWithInterval служит для печати текста с указанными координатами, позволяя также изменять настройки шрифта.
При запуске утилиты без параметров открывается окно, изображенное на рис. 6.1.
В окне можно задать произвольный текст, параметры шрифта и координаты для тестовой печати. Чтобы выполнить тестовую печать, нажать кнопку Печать.
Чтобы выполнить печать листка нетрудоспосности, нужно нажать кнопку Печать из XML, при этом стиль шрифта, данные и координаты берутся из XML файла и указанные в окне параметры не влияют на печать текста.
Рисунок 6.1. Окно утилиты PrintTextWithInterval
Формат командной строки для вызова утилиты
PrintTextWithInterval.exe [ PARAM1="XXXXX" [... PARAMN="YYYYY" ] ] [ XMLTemplate="FileName" ][ LEFT_OFFSET="XX.XX" ] [ TOP_OFFSET="XX.XX" ] [ /HIDE [ /NO_PREVIEW ] ] [ /CALIBRATE ] [ /NO_SCAN ] [ CHAR_POS_CALC_MODE="X" ] [ /? | /H | /HELP | -? | -H ]
где
PARAM1 – первый параметр со значением XXXXX (произвольное имя параметра латиницей и цифрами), например, целочисленный идентификатор MOTCONSU_ID записи ЭМК.
PARAMN – n-й параметр со значением YYYYY.
[XMLTemplate] – имя файла шаблона для утилиты GetDBDataXML.exe. FileName – имя XML-файла, по умолчанию равно CureListTemplate.xml.
LEFT_OFFSET – отступ документа слева (смещение), миллиметров. Если не указано, то 0.*
TOP_OFFSET – отступ документа сверху (смещение), миллиметров. Если не указано, то 0.*
/HIDE – выполнить печать, не открывая интерфейс, с текущими настройками и параметрами командной строки.
/NO_PREVIEW – не отображать предварительный просмотр в скрытом режиме (работает только с параметром HIDE).
/CALIBRATE – выполнить калибровку принтера со сканером перед печатью, открывая диалог настроек.
/NO_SCAN – не использовать сканер. Сканирование и поиск маркеров будут недоступны. Используется для принтеров без сканера. Игнорирует параметр /CALIBRATE.
CHAR_POS_CALC_MODE – режим расчета позиции символов при печати. Значения X:
0 – конвертировать координаты в пикселы, а затем рассчитывать позицию символа. Значение по умолчанию.
1 – рассчитывать позицию символа в миллиметрах, а затем конвертировать координаты в пикселы.
IMAGE_FILE_NAME – имя файла с изображением больничного листа для предварительного просмотра. Если не указано, "LN.jpg". Поддерживаются файлы *.jpg, *.bmp. Если указано только имя файла без полного пути, он берется из рабочего каталога МЕДИАЛОГ.
/?, /H, /HELP, -?, -H – если указан данный параметр, то выполняется только вывод формата командной строки.
Параметры командной строки могут быть заданы в файле настроек утилиты PrintTextWithInterval.ini. Если значение параметра не задано в командной строке, оно будет браться из файла. Параметр, заданный в командной строке, имеет больший приоритет, чем значение в файле настроек.
Вызов утилиты в МЕДИАЛОГ
В МЕДИАЛОГ вызов утилиты производится с помощью кнопки типа команда Windows. Данная кнопка добавляется на экранную форму "Л/н" и в ее свойствах прописывается следующее (рис. 5.2):
·Заголовок: "Распечатать";
·Выполнить файл (путь к файлу PrintTextWithInterval.exe): [WorkingDir]\PrintTextWithInterval.exe;
·Параметры (параметры запуска утилиты): LANG=rus PARAM=%DATA_DISABILITY_CERTIFIC.DATA376_ID%.
В приведенном примере утилита запускается из рабочего каталога МЕДИАЛОГ ([WorkingDir]), язык интерфейса — русский (LANG=rus), параметр PARAM — первичный ключ таблицы Листки нетрудоспособности.
Рисунок 6.2. Вызов утилиты PrintTextWithInterval в МЕДИАЛОГ
Перечень настроек утилиты PrintTextWithInterval. Файл PrintTextWithInterval.ini
[MarkersSearch] – настройки поиска маркеров
Resolution=300 – разрешение изображения (dpi, точек на дюйм)
DeviationFromBlack=65 – Отклонение от черного, %
MaxDistanceBetweenPixels=1 – Расстояние между точками, pixel (пиксель, точка)
KatetLength=6 – Длина катета, мм
KatetLengthDeviation=10 – Отклонение длины катета, %
[PR2Plus] – настройки принтера PR2 Plus - Scanner (сканирование)
FullFileNameFront=C:\FrontScan.bmp – Имя файла скана спереди
FullFileNameRear=c:\RearScan.bmp – Имя файла скана сзади
TransparentBorder=0 – Прозрачная граница
SlowMotion=0 – Замедленное движение
AutomaticEjectMode=1 – Режим возврата листа (Автоматический = 1)
SaveScanToFile=1 – Сохранять скан в файл (равно 1)
[PR2PlusCalibration] – Результаты калибровки принтера PR2 Plus со сканером *
dX=-1,26066666666667 – Поправка координат печати принтера после калибровки по оси Х (горизонталь), мм *
dY=2,80333333333333 – Поправка координат печати принтера после калибровки по оси Y (вертикаль), мм *
dAngle=0 - угол поворота листа, радианы. Если меньше ноля, то - против часовой стрелки *
Calibrated=0 – Если равно 1, принтер уже калиброван
[PR2PlusPort] – Настройки порта для принтеров PR2 Plus
Global=USB01 – Интерфейс принтера (USB порт / COM порт)
[PR2PlusScan] – Настройки для принтеров PR2 Plus со сканером
Format_Type=2 – Формат сканирования (2 - Весь лист, 1 - Окна)
DPI=3 – Разрешение сканирования (1 – 203 dpi, 2 – 200 dpi, 3 – 300 dpi, 4 – 600 dpi, иначе 300 dpi)
Scan_Mode=0 – Режим сканера (0 – Спереди, 1 – Сзади, 2 - Спереди/Сзади)
Scan_Img_Type=8 – Image BPP (тип формата изображения скана) (1 - черно/белый, 4 - 16 цветов серого, 8 - 256 цветов серого, 24 - цветной)
Acquisition_Type=1 – Тип сбора (1 – Вперед, 4 - Назад)
[TfrmMain] – Настройки главного окна с тестовой печатью (с выбором шрифта, печатью отдельной строки на листе, выбором принтера и т.д.), открывается в не фоновом режиме печати
FontName=Courier New – Название шрифта
FontSize=10 – Размер шрифта (кегль)
FontStyleBold=1 – Если 1, то полужирный стиль шрифта
FontStyleItalic=0 – Если 1, то курсивный стиль шрифта
FontStyleUnderline=0 – Если 1, то подчеркнутый стиль шрифта
FontStyleStrikeOut=0 – Если 1, то зачеркнутый стиль шрифта
IsTransparentBkGr=1 – Если 1, то прозрачный фон текста
Text=Г. МОСКВА, УЛ. НАРОДНОГО ОПОЛЧЕНИЯ 2/1 – Текст строки для печати (в главном окне, в не фоновом режиме запуска утилиты)
FontColor=0 – Цвет шрифта
PrinterName=Microsoft XPS Document Writer – Название принтера для печати
MOTCONSU_ID=301 – MOTCONSU_ID (в главном окне, в не фоновом режиме запуска утилиты)
CharInterval=4,02 – Ширина клетки для символа, мм. В строке для печати (в главном окне, в не фоновом режиме запуска утилиты)
RowInterval=15 – Интервал между строками, мм. Для строки печати (в главном окне, в не фоновом режиме запуска утилиты)
StartX=20 – X-координата слева от текста, мм. Для строки печати (в главном окне, в не фоновом режиме запуска утилиты)
StartY=83 – Y-координата сверху от текста, мм. Для строки печати (в главном окне, в не фоновом режиме запуска утилиты)
Maximized=0 – Если равно 1, то окно нужно развернуть максимально
Left=414 – Позиция слева для левого верхнего угла окна, пиксель
Top=320 – Позиция сверху для левого верхнего угла окна, пиксель
Width=451 – Ширина окна, пиксель
Height=383 – Высота окна, пиксель
[TfrmPrintDataEditor] – Настройки окна "Редактор данных для печати" (данных, прочитанных из переданного xml-файла)
Maximized=0 – Если равно 1, то окно нужно развернуть максимально
Left=323 – Позиция слева для левого верхнего угла окна, пиксель
Top=208 – Позиция сверху для левого верхнего угла окна, пиксель
Width=562 – Ширина окна, пиксель
Height=640 – Высота окна, пиксель
ColWidths0=247 – Ширина первого столбца (параметр), пиксель
[TfrmPrintPreviewer] – Настройки окна "Предварительный просмотр" для печати (данных прочитанных из переданного xml-файла)
Maximized=1 – Если равно 1, то окно нужно развернуть максимально
Left=132 – Позиция слева для левого верхнего угла окна, пиксель
Top=174 – Позиция сверху для левого верхнего угла окна, пиксель
Width=1100 – Ширина окна, пиксель
Height=640 – Высота окна, пиксель
IsOriginalSize=0 – Если 1, то отмечен флажок "Оригинальный размер" (100% от оригинального размера изображения)
IsStretch=0 – Если 1, то отмечен флажок "Растянутое" (Растянутое изображение)
IsProportional=0 – Если 1, то отмечен флажок "Пропорциональное" (Пропорционально растягивать изображение)
ScalIndex=0 – Индекс режима масштабирования изображения (0 – "По ширине окна", 1 – "Страница целиком", 2 – "1 пиксел монитора = 1 пиксел изображения", 3 - 25%, 4 - 50%, 5 - 75%, 6 - 100%, 7 - 150%, 8 - 200%, 9 - 300%, 10 - 400%, 11 - 500%, 12 - 1000%)
[TLangStoreEditForm] – Настройки окна системы перевода (стандартная форма системы перевода приложений)
Maximized=0 – Если равно 1, то окно нужно развернуть максимально
Left=139 – Позиция слева для левого верхнего угла окна, пиксель
Top=201 – Позиция сверху для левого верхнего угла окна, пиксель
Width=960 – Ширина окна, пиксель
Height=722 – Высота окна, пиксель
FormTreePanel_Width=265 – Ширина панели дерева форм, пиксель
acViewFormHelpInfo_Checked=0 – Флаг "Показывать информацию для справки о форме"
acExportWithHelpContext_Checked=0 – Флаг "Экспортировать с идентификатором темы справки"
acShowStatusBar_Checked=1 – Отображать строку статуса
ShowInheritedCheckBox_Checked=0 – Флаг "Унаследованные"
ShowTranslatedCheckBox_Checked=1 – Флаг "Переведенные"
ShowEmptiesCheckBox_Checked=1 – Флаг "Неиспользуемые"
chkShowExcluded_Checked=0 – Флаг "Исключенные из редактора"
acIsAutoUpdateFilter_Checked=1 – Флаг "Автоматически обновлять списки форм и строк"
acFilterByCurrentForm_Checked=0 – Флаг "Фильтровать по текущей форме"
[Parameters] – Параметры, аналогичные параметрам командной строки. Значение параметра в командной строке будет перекрывать значение из файла настроек.
LEFT_OFFSET=0
TOP_OFFSET=0
HIDE=0
NO_PREVIEW=0
CALIBRATE=0
NO_SCAN=0
CHAR_POS_CALC_MODE=0
EDIT_BY_PREVIEW=1
IMAGE_FILE_NAME=LN.jpg
XMLTemplate=CureListTemplate.xml
[ExtParameters] – Пользовательские параметры из командной строки PARAM1...PARAMn. Значение параметра в командной строке будет перекрывать значение из файла настроек.