Перенос текста по буквам в ячейке табличного документа #680726


#0 by supervk
Как сделать перенос текста по буквам в ячейке табличного документа? Есть этикетка (табличный документ), в которой область с названием. Это название размещается в ячейке с высотой в две строки. Названия длинные, надо, чтобы они разбивались на две строки по ширине ячейки, но не по словам, а по буквам. Без делений по слогам. Т.е. например Колбаса импортная вкусная должно разделиться на две строки таким образом: Колбаса импор| тная вкусная | Шрифт НЕ моноширинный, поэтому просчитать и заранее программно разбить на две строки через XX символов не удаётся (точнее, я не знаю как). Как, всё-таки это сделать? Подскажите, пожалуйста.
#1 by mehfk
"Шрифт НЕ моноширинный, поэтому просчитать и заранее программно разбить на две строки через XX символов не удаётся (точнее, я не знаю как)." Посчитай, сколько каджого символа твоего алфавита может войти в одну строку. И вычисли "коэффициент ширины", например к пробелу. Зная что в строку может уместиться n пробелов...
#2 by МимохожийОднако
Синтаксис: СтрДлина(<Строка>) Параметры: Тип: Строка. Исходная строка. Возвращаемое значение: Тип: Число. Длина строки. Описание: Получает количество символов в строке. Доступность: Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение. Пример: ДлинаНаименования = СтрДлина(Товар.Наименование);
#3 by МимохожийОднако
В свойстве ячейки можно задать параметр Переносить...
#4 by supervk
Ага, спасибо, mehfk, пока это единственный вариант. Только в сочетании с вариантом, предложенным mehfk , т.к. заранее неизвестно, сколько символов до конца края ячейки "Переносить" переносит по словам. А мне надо по буквам. т.е. чтобы целое слово разбивалось на две строки.
#5 by mistеr
Можно написать ВК, которая будет рассчитывать точно с помощью функций WinAPI. Для конкретного текста, шрифта и разрешения принтера.
#6 by supervk
В общем, как я понял, простых решений (включить нужную галочку) не будет. Всем спасибо за помощь.
#7 by mehfk
Вы уверны, что без ВК никак? Как-бэ текст переносит не ОС и не драйвер принтера. ПроверитьВывод и без ВК работает, не так ли? Просто это решение будет настолько тормозно, что автору лучше сделать так, как в мысль дана.
#8 by mehfk
+ fix в
#9 by МихаилМ
про avb все уже забыли и сайт доступен из яндекс кэша
#10 by mistеr
Я не утверждал, что никак. Я предложил как одно из решений. способ не оптимальный. В худших случаях будет ошибаться, а значит придется брать запас по длине строки, часть места будет пропадать.
#11 by Torquader
Проще всего перейти на моноширинный шрифт или вообще печатать этикетку командами принтера - тогда ничего подгонять будет не надо - там сразу известно, сколько символов может быть в строке. Перенос по буквам выглядит не очень. Сразу вспоминается: градский".
#12 by mistеr
Моноширинным меньше влезет в две строки.
#13 by Torquader
Зато гарантированно будут заполнены строки. P.S. из файла ttf-шрифта можно узнать размеры символов, просто прочитав его силами самой 1С.
#14 by mistеr
Или ВК.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С