![]() |
![]() |
![]() |
|
Промблема определения длины текстовой строки в мм. Ø |
☑ | ||
---|---|---|---|---|
0
aKomper
01.07.05
✎
09:04
|
Есть строка, для простоты выводится строго определенным шрифтом. Как можно наиболее точно определить длину этой строки в миллиметрах? Набор символов строки заранее неизвестен
|
|||
1
NoName
01.07.05
✎
09:06
|
используй моноширинный шрифт - будет легче
|
|||
2
Ирбис
01.07.05
✎
09:06
|
а на кой, извините, ляд это нужно? Может проблема решается по другому?
|
|||
3
aKomper
01.07.05
✎
09:11
|
1 - скажи, че за шрифты такие?
2 - Треба печатать документы на стандартной заготовке. Для некоторых полей в заготовке предусмотрено две строки, одна под другой. Например, так печатается адрес в ПТС на авто. Так вот, нужно разделить троку с адресом на две строки, и правильно определить момент разрыва исходной строки. |
|||
4
jurii
01.07.05
✎
09:11
|
А никак!
Есть конечно способ: - делаешь ячейку таблицы определенной длиной (чем длиньше, тем лучше) - забиваешь её одним символом (полностью) до конца строки. Останавливаешся когда следующий символ перенесётся на сл.строку - делишь длину строки в мм на количество введенных символов Так можно получить сколько данный символ занимает мм Прогоняешь весь алфавит... И получаешь то, что тебе нужно. НО!!!!!!!!! Если ты настраивал на компе, к которому подключен HP, то это ДАЛЕКО НЕ ЗНАЧИТ, ЧТО ТОТ ЖЕ РЕЗУЛЬТАТ БУДЕТ на Canon или Xerox |
|||
5
BigBro
01.07.05
✎
09:12
|
курьер вроде моноширинный был.
|
|||
6
jurii
01.07.05
✎
09:14
|
(3) Если принтера меняться не будут, то попробуй способ 4
А (1) имел в виду шрифт типа Courier |
|||
7
aKomper
01.07.05
✎
09:14
|
4 - Я так и делал, только ширина символов разная, потому точно определить место переноса так не выходит. Вот если-бы ширина была одинакова у всех символов, как говорит (1). Счас ищу это дело. А принтер один, на него вся настройка пойдет, проблемы тут не будет с моделями
|
|||
8
elisabet
01.07.05
✎
09:17
|
(3) я для ПТС печать делала - разрыв был по словам и определенному количеству букв ... методом проб и ошибок ...
|
|||
9
Северянин
01.07.05
✎
09:17
|
(3) Courier - моноширинный
|
|||
10
aKomper
01.07.05
✎
09:17
|
1,6 - Спасиба, точно ширина одинакова у всех символов. Этого мне за глаза :)
|
|||
11
aKomper
01.07.05
✎
09:19
|
8 - Я так сделал, но мне не нравится неопределенность. Всегда есть шанс на косяк в таком случае, потому как никогда точно не знаешь, какие будут символы в строках. А вот когда точно знаешь, сколько символов получится на строку, тогда ошибок не будет
|
|||
12
Юрикс
01.07.05
✎
09:23
|
(11) а почему бы не сделать ячейку нужного размера и автоперенос?
зы: печать из 1С? |
|||
13
elisabet
01.07.05
✎
09:31
|
(12) Автоперенос в данном случае не катит, ПТС - это номерной бланк, его только один раз выдают, поэтому нужно точно в ячейки попадать ...
|
|||
14
Наркотики
01.07.05
✎
09:31
|
1. Замерь ширину каждой буквы алфавита на бумаге.
2. Напиши функцию определения длины строки. |
|||
15
aKomper
01.07.05
✎
09:36
|
14-изврат
|
|||
16
Юрикс
01.07.05
✎
09:40
|
(13) и кто мешает точно попасть??
|
|||
17
aKomper
01.07.05
✎
09:46
|
16 - Если верхняя строка (из которой перенос) будет левее и короче нижней (на которую перенос), да еще между ними расстояние больше, чем получается при переносе, то как ты перенесешь тут?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |