Создание из массива с различной длиной ст массив строк по заданной длине
Главная › Форумы › Задать вопрос › Создание из массива с различной длиной ст массив строк по заданной длине
- В этой теме 24 ответа, 4 участника, последнее обновление 5 лет, 9 месяцев назад сделано Isk.
-
АвторСообщения
-
Взял за основу существующий код по экспликации полов и дописал через заполнение до одинаковой длины. На листе в таблице все равно получается разные строки по длине. Помогите найти решение для выравнивания длины строк на листе.
Было бы проще, если бы вы пример и скрипт скинули, чтобы не искать по форуму. Не каждый именно этим вопросом занимался. Хотя, ни на что не претендую, возможно кому-то и таких условий задачи хватит, чтобы попробовать помочь.
Я думаю что над вставить табуляцию..Вопрос как вставить табуляцию в текст через питон код.
Имел в виду – пример в ревите и скрипт к нему. Потому что искать все необходимые данные по просторам форума нет большого желания. Пока не очень понятно что к чему добавлялось и каким образом.
Есть дав списка. Один список – слои ( покрытие пола, стяжка, утеплитель и т.д). Второй толщины (-40мм, -20мм, -30мм и т.д,). Я их соединяю через joint(). Как вставить между двумя элементами списка табуляцию “\t” ?
Проблема в том, что при вставке в таблицу выравнивание столбцов табуляции не срабатывает. Может кто знает как это обойти.
Этот вариант как последняя надежда хотел записывать (по честному) значения в одном параметре.
Я так понимаю это средствами ревит 2019 не предусмотрено. Пока не появится возможность выравнивания по горизонтали <span style=”font-size: 100%;”>РАСТЯНУТЬ</span>
Может и не в тему, но поделюсь также своими мыслями. Проблема действительно состоит в том, что в Ревите не нашлось пока нами (скорей всего нет) возможности растянуть текст по горизонтали, как в том же Word, например, это первое. Второе, что табуляцию возможно таки вставить в текст, возможно изменить ее длину (по умолчанию 8 пробелов), думаю, но главный вопрос стоит в том “Сколько пробелов необходимо?” Поскольку, как вы и писали в начале, питон все посчитал математически правильно, вот только длину текста необходимо измерять не len(i) или Length, необходимо знать длину(ширину) вставляемой строки текста, поскольку ширина символов “ж”,”л” и “(пробела)” отличаются и это мы видим с того же примера на вашей картинке, где количество символов во всех строчках одинаковое. Потому, мне кажется, на данный момент оптимальным действительно будет вариант, который вам предложил Сергей, где просто необходимо приблизительно высчитать пару точек ,по которым будут вставляться два массива текста.
главный вопрос стоит в том “Сколько пробелов необходимо?”
Я думал по поводу этого вопроса. Ширину строк можно найти используя системные библиотеки.
https://docs.microsoft.com/ru-ru/dotnet/api/system.drawing.graphics.measurestring?view=netframework-4.7.2Но, остается вопрос конвертации мм в пункты. Например, у нас в проекте высота шрифта 2.5 мм – это сколько пунктов? Судя по гуглу:
1 пункт равен 0,376 мм
т.е. в метод надо подать 2,5 / 0,376 = 6.65 ptЕсли кто-то эксперементировал, как результат?
Суть в том что похоже разные знаки имеют разную ширину. При вычислении количества знаков в двух строках разные слова при одинаковом количестве знаков будут разной длинны в мм.
Ссылка не открывается
погуглите Graphics.MeasureString Method
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.