Немного переделал функцию. Стало лучше, но все равно есть лишние переводы каретки. Есть идеи?
function print_receipt_slip(__payment, __is_last, __print_data)
local text = 'return "' .. __payment.slip .. '"'
text = ukm.source(ukm.mashine.handle, text)
tbl = split(text, '\n')
text = ''
local ln = ''
local n = #tbl
for i = 1, n do
ln = rtrim(tbl[i])
if ln ~= '' then
text = text .. ln .. ' '
end
end
text = rtrim(text)
local line = ''
local lines = ''
for word in (text .. " "):gmatch("(.-) ") do
if #line + #word < 56 then
line = line .. " " .. word
else
lines = lines .. line .. '\n'
line = word
end
line = line:match("^%s*(.-)%s*$")
end
text = lines
if not __is_last then
local printer = ukm.get_printer(ukm.printer_type_master())
text = text .. '\n' .. string.rep('-', printer:get_width())
end
__print_data:add(text, ukm.printer_type_master())
end
(0.04Мб)