Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   Узнать ширину текста в пикселах (http://forums.kuban.ru/f1040/uznat-_shirinu_teksta_v_pikselah-7505726.html)

mykuban 04.02.2016 11:34

Узнать ширину текста в пикселах
 
Чтобы при выводе на печать самому регулировать длину выводимых строк. чтото переносить в другие строки.

Можно ли это сделать?

Ткачик 04.02.2016 11:58

Можно, но не всегда точно получается.

mykuban 04.02.2016 12:14

А например. Как?

Ткачик 04.02.2016 12:29

(2) А несложно: создаешь массив, заполняешь его шириной букв и символов (определяется экспериментально) и перебираешь строку, подсчитывая текущую длину прибавлением чисел из массива. Как только превысит заданное значение - переносишь.

Определить ширину символа можно так: берешь строку известной ширины, заполняешь ее одинаковым символом до заполнения, по тому, сколько поместится - вычисляешь ширину. И так для всех символов.

Когда-то попадалось готовое решение для печатной формы ТОРГ-12, но сейчас даже и не знаю, где его искать.

mykuban 04.02.2016 12:40

Да можно и так, долго это. Я вот смотрел может как то WinAPI использовать. Там тоже ВК нужно и как то функцию вызывать.

Чучундер 04.02.2016 18:23

решается все "штатно". без всяких ширин букв.
и в 7.7 и в 8-ке.

Чучундер 04.02.2016 18:27

для клюшек рабочий пример здесь [url]http://infostart.ru/public/181223/[/url]

как это штатно сденлать на 8-ке читал буквально на днях на ИС - даже плюсанул, но как это найти влет быстрой сейчас - влом

mykuban 05.02.2016 08:36

Да, но там написано 1000 рублей.

mykuban 05.02.2016 08:49

[quote=Чучундер;41323700] решается все "штатно". без всяких ширин букв. и в 7.7 и в 8-ке. [/quote]

Ну как штатно, не вижу возможности

perpetum 05.02.2016 11:16

0-mykuban > Нашёл интересные ссылки, которые будут полезны:

Поместится ли текст в ячейке? (с примерами использования: авторазмер шрифта, перенос строк)
[url]http://infostart.ru/public/123769/[/url]

Как вычислить высоту строки таблицы.
[url]http://avb1c.narod.ru/rowheight.html[/url]

Для ценников значимым параметром является количество ценников на ширине листа, поэтому, при автомасштабировании страницы по ширине, не имеет смысла работать с пикселями и миллиметрами - достаточно иметь количество символов, помещающихся в ширине ячейки. Поэтому, на мой взгляд, было бы полезно, при подготовке текста для укладки в ячейку ценника, сделать сопоставление - количество символов конкретного символа заданного шрифта, укладывающихся в ширину ячейки и, таким образом, определить, сколько единиц ширины таблицы в конфигураторе приходится на 1 символ.
Если эти данные ввести в список значений, или таблицу значений, то логически просто построить заполнение ячейки таблицы ценника.
Можно так же ориентироваться на среднестатистическую длину строки, укладывающуюся в окно ячейки, с некоторым запасом на частоту используемых символов.
- Примерно так... :-)

Чучундер 05.02.2016 12:51

9-perpetum > вот, первая ссылка - это то, что я читал и упоминал в (7)

Чучундер 05.02.2016 12:59

в клюшках можно тупо.

например есть фиксированный ценник (как у меня в примере), выводится куча ценников на лист а4.

делаем макет из одного ценника, поля снизу и сверху - такие, чтобы вписывался только один ценник всего. Высота строки = авто.

далее тупо делаем подбор РАЗМЕРА ШРИФТА. выводим секцию, проверяем - если получилось больше 2 страниц - значит НЕ ВЛАЗИТ. уменьшаем шрифт на шаг. Выводим, проверяем.. и так пока не влезет на одну страницу

mykuban 05.02.2016 13:24

Ну суть понятна. Хотя у меня не ценники. Бланк документа заполняю.

Чучундер 05.02.2016 17:05

12-mykuban > одна фигня, подход тот же
просто может понадобиться нескольок "секций" анализировать для отдельных областей документа

или

в черновую таблицу делаешь несколько строк одна за другой, каждпая строка - это "проблемная" секция/область в бланке документа. Вывел в черновик все надписи - влезло = ок, не влезло - смотришь уже в частностях - в какой секции выгоднее шрифт уменьшить

Чучундер 05.02.2016 17:06

в (9) по первой ссылке для 8-ки все подоробно разжевано в публикации и комментах


Текущее время: 14:33. Часовой пояс GMT +3.