Преобразование из массива байтов в исходник “C” осуществляется с помощью подстановки данных в файл шаблона. Этот файл является простым текстовым файлом с выделенными ключевыми словами, окружёнными $(тег) или @тег@.
Собственный файл шаблона можно выбрать в меню Настройки -> Преобразование -> Шаблоны, либо можно использовать встроенные шаблоны по умолчанию, указав пути к файлам :/templates/image_convert and :/templates/font_convert .
Имя тега | Краткое описание |
---|---|
doc_data_type | image или font |
doc_filename | путь к исходному xml файлу |
doc_name | имя документа, вводится при создании |
doc_name_ws | имя документа без пробелов |
fnt_antialiasing | есть сглаживание (yes) или нет (no) |
fnt_ascent | верхний вынос |
fnt_descent | нижний вынос |
fnt_encoding | кодировка, испольуемая для преобразования символов в шестнадцатеричное представление |
fnt_family | семейство шрифта |
fnt_size | размер |
fnt_string | строка символов, реализованных в исходнике шрифта |
fnt_style | стиль |
fnt_use_bom | добавляется ли (yes) Byte Order Mark к коду символа или нет (no) |
fnt_width_type | proportional или monospaced |
fnt_compacted | включено (yes) или нет (no) сжатие шрифтов |
img_byte_order | порядок байтов |
img_data_block_size | число бит в блоке данных |
img_rle | используется ли RLE сжатие (yes) или нет (no) |
img_split_to_rows | разбивается ли строковое представление данных по строкам изображения |
out_blocks_count | число блоков данных в массиве |
out_bpp | число бит на точку |
out_char_code | код символа в шестнадцатеричном виде |
out_char_code_sim | кода дубликата символа в шестнадцатеричном виде (или пустая строка) |
out_char_code_min | минимальный код символа в шестнадцатеричном виде |
out_char_code_max | максимальный код символа в шестнадцатеричном виде |
out_char_text | символ в текстовом виде |
out_char_text_sim | дубликат символа в текстовом виде (или пустая строка) |
out_char_index | индекс символа в массиве шрифта |
out_char_offset | смещение данных символа относительно начала массива, содержащего данные всех символов |
out_char_image_left | отступ слева изображения символа внутри знакоместа |
out_char_image_top | отступ сверху изображения символа внутри знакоместа |
out_char_image_width | ширина изображения символа |
out_char_image_height | высота изображения символа |
out_comma | подставляет запятую ‘,’, если не является последним вхождением в списке, тогда подставляет пустую строку |
out_data_indent | отступы строк данных изображения (табуляция или пробел, из файла шаблона) |
out_image_data | массив блоков данных изображения в текстовом виде |
out_image_preview | текстовый предпросмотр изображения |
out_image_height | высота изображения/знакоместа |
out_image_width | ширина изображения/знакоместа |
out_images_count | число изображений (символов) в файле шрифта |
out_images_max_height | максимальная высота изображения |
out_images_max_width | максимальная ширина изображения |
out_preset_name | название предустановки преобразования |
pre_conv_type | тип преобразования (monochrome, grayscale, color) |
pre_inverse | инверсия изображения перед обработкой |
pre_mono_edge | значение порога для monochrome-edge |
pre_mono_type | тип монохромного преобразования (edge, digguse dither, ordered dither, threshold dither) |
pre_scan_main | основное направление сканирования |
pre_scan_sub | направление сканирования линий |
pre_use_bands | используются полосы (yes) или нет (no) |
pre_band_width | ширина полос |
tmpl_filename | имя файла шаблона |
Имя тега | Краткое описание |
---|---|
dataType | image или font |
fileName | путь к исходному xml файлу |
documentName | имя документа, вводится при создании |
documentName_ws | имя документа без пробелов |
fontAntialiasing | есть сглаживание (yes) или нет (no) |
encoding | кодировка, испольуемая для преобразования символов в шестнадцатеричное представление |
fontFamily | семейство шрифта |
fontSize | размер |
string | строка символов, реализованных в исходнике шрифта |
fontStyle | стиль |
bom | добавляется ли (yes) Byte Order Mark к коду символа или нет (no) |
fontWidthType | proportional или monospaced |
bytesOrder | порядок байтов |
dataBlockSize | число бит в блоке данных |
rle | используется ли RLE сжатие (yes) или нет (no) |
splitToRows | разбивается ли строковое представление данных по строкам изображения |
blocksCount | число блоков данных в массиве |
bpp | число бит на точку |
charCode | код символа в шестнадцатеричном виде |
charText | символ в текстовом виде |
comma | подставляет запятую ‘,’, если не является последним вхождением в списке, тогда подставляет пустую строку |
imageDataIndent | отступы строк данных изображения (табуляция или пробел, из файла шаблона) |
imageData | массив блоков данных изображения в текстовом виде |
height | высота изображения |
width | ширина изображения |
imagesCount | число изображений (символов) в файле шрифта |
preset | название предустановки преобразования |
convType | тип преобразования (monochrome, grayscale, color) |
inverse | инверсия изображения перед обработкой |
edge | значение порога для monochrome-edge |
monoType | тип монохромного преобразования (edge, digguse dither, ordered dither, threshold dither) |
scanMain | основное направление сканирования |
scanSub | направление сканирования линий |
bands | используются полосы (yes) или нет (no) |
bandWidth | ширина полос |
templateFile | имя файла шаблона |
Участок шаблона между $(start_block_images_table) и $(end_block_images_table) повторяется для каждого изображения (символа) в файле.
Список используемых кодеков:
- UTF-8
- UTF-16
- UTF-16BE
- UTF-16LE
- UTF-32
- UTF-32BE
- UTF-32LE
- Windows-1250 … 1258
- …
$(start_block_header)
/*******************************************************************************
* $(doc_data_type)
* filename: $(doc_filename)
* name: $(doc_name)
*
* preset name: $(out_preset_name)
* data block size: $(img_data_block_size) bit(s), uint$(img_data_block_size)_t
* RLE compression enabled: $(img_rle)
* conversion type: $(pre_conv_type), $(pre_mono_type) $(pre_mono_edge)
* bits per pixel: $(out_bpp)
*
* preprocess:
* main scan direction: $(pre_scan_main)
* line scan direction: $(pre_scan_sub)
* inverse: $(pre_inverse)
*******************************************************************************/
/*
typedef struct {
const uint$(img_data_block_size)_t *data;
uint16_t width;
uint16_t height;
uint8_t dataSize;
} tImage;
*/
#include <stdint.h>
$(end_block_header)
$(start_block_images_table)
static const uint$(img_data_block_size)_t image_data_$(doc_name_ws)[$(out_blocks_count)] = {
$(out_image_preview)
$(out_image_data)
};
const tImage $(doc_name_ws) = { image_data_$(doc_name_ws), $(out_image_width), $(out_image_height),
$(img_data_block_size) };
$(end_block_images_table)
$(start_block_header)
/*******************************************************************************
* $(doc_data_type)
* filename: $(doc_filename)
* name: $(doc_name)
* family: $(fnt_family)
* size: $(fnt_size)
* style: $(fnt_style)
* included characters: $(fnt_string)
* antialiasing: $(fnt_antialiasing)
* type: $(fnt_width_type)
* encoding: $(fnt_encoding)
* unicode bom: $(fnt_use_bom)
*
* preset name: $(out_preset_name)
* data block size: $(img_data_block_size) bit(s), uint$(img_data_block_size)_t
* RLE compression enabled: $(img_rle)
* conversion type: $(pre_conv_type), $(pre_mono_type) $(pre_mono_edge)
* bits per pixel: $(out_bpp)
*
* preprocess:
* main scan direction: $(pre_scan_main)
* line scan direction: $(pre_scan_sub)
* inverse: $(pre_inverse)
*******************************************************************************/
/*
typedef struct {
long int code;
const tImage *image;
} tChar;
typedef struct {
int length;
const tChar *chars;
} tFont;
*/
#include <stdint.h>
$(end_block_header)
$(start_block_images_table)
static const uint$(img_data_block_size)_t image_data_$(doc_name_ws)_0x$(out_char_code)[$(out_blocks_count)] = {
$(out_image_preview)
$(out_image_data)
};
static const tImage $(doc_name_ws)_0x$(out_char_code) = { image_data_$(doc_name_ws)_0x$(out_char_code),
$(out_image_width), $(out_image_height), $(img_data_block_size)};
$(end_block_images_table)
static const tChar $(doc_name_ws)_array[] = {
$(start_block_images_table)
// character: '$(out_char_text)'
{0x$(out_char_code), &$(doc_name_ws)_0x$(out_char_code)}$(out_comma)
$(end_block_images_table)
};
$(start_block_font_def)
const tFont $(doc_name_ws) = { $(out_images_count), $(doc_name_ws)_array };
$(end_block_font_def)