|
|
|
Реально ли в java подсчитать длину строки в пикселях из русских букв?
|
|||
|---|---|---|---|
|
#18+
Я создаю excel файл с помощью библиотеки org.apache.poi и мне надо вместить в 3 строки длинный текст. Но в зависимости от символов, одинаковые по кол-ву символов строки будут реально разной длинный в пикселях. Можно ли это как-то высчитать в зависимости от стиля шрифта и высоты букв? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2016, 17:17 |
|
||
|
Реально ли в java подсчитать длину строки в пикселях из русских букв?
|
|||
|---|---|---|---|
|
#18+
Паша01, если это будет моноширный шрифт. иначе не реально ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2016, 20:49 |
|
||
|
Реально ли в java подсчитать длину строки в пикселях из русских букв?
|
|||
|---|---|---|---|
|
#18+
Паша01, Можно спросить "с какой целью интересуетесь"? Что вы будете делать с этим, когда узнаете ширину текста? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2016, 08:56 |
|
||
|
Реально ли в java подсчитать длину строки в пикселях из русских букв?
|
|||
|---|---|---|---|
|
#18+
Garrick, Наверное ширину столбца хочет сам подобрать, но кто ж ТС знает. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2016, 09:06 |
|
||
|
Реально ли в java подсчитать длину строки в пикселях из русских букв?
|
|||
|---|---|---|---|
|
#18+
Паша01Можно ли это как-то высчитать в зависимости от стиля шрифта и высоты букв? В Java AWT есть API для вычисления ширины текста в определенном шрифте, но фактическая ширина будет отличаться потому что Windows рендерит шрифты иначе, да ещё и куча факторов влияют на фактический размер. Сейчас с популярностью высоких разрешений масштабирование всё более актуально. Так что лучше не заморачиваться и решить проблему другими средствами. Правильным стилем или VB скриптом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2016, 09:13 |
|
||
|
Реально ли в java подсчитать длину строки в пикселях из русских букв?
|
|||
|---|---|---|---|
|
#18+
Сергей Арсеньев, Вот я и спрашиваю... а то ведь есть же autoSizeColumn(int column) . Может у него какие-то другие планы на это счёт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2016, 09:54 |
|
||
|
Реально ли в java подсчитать длину строки в пикселях из русских букв?
|
|||
|---|---|---|---|
|
#18+
BlazkowiczПаша01Можно ли это как-то высчитать в зависимости от стиля шрифта и высоты букв? В Java AWT есть API для вычисления ширины текста в определенном шрифте, но фактическая ширина будет отличаться потому что Windows рендерит шрифты иначе, да ещё и куча факторов влияют на фактический размер. Сейчас с популярностью высоких разрешений масштабирование всё более актуально. Так что лучше не заморачиваться и решить проблему другими средствами. Правильным стилем или VB скриптом. по моему, +15 процентов к длине в AWT - нормальное приближение, которое часто будет хорошим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2016, 11:47 |
|
||
|
Реально ли в java подсчитать длину строки в пикселях из русских букв?
|
|||
|---|---|---|---|
|
#18+
Дело в том, что я разбиваю текст по количеству символов, например, по 53 символа максимум в каждой строке. Ширина колонки фиксированная. Проблемы будут, если в тескте будет много букв верхнего регистра. Тогда строка вылезет. Пока что лучшее решение для себя, что я смог придумал, это искать в тексте заглавные буквы и считать их как 1,5 от буквы нижнего регистра. К примеру, тогда я буду считать строки "ЖЖ" и "пти" равными по длине в пискелях. Тогда текст будет более равномерно разделяться. Кончено, тут тоже есть недочеты, но лучше пока не придумал. Ещё хороше идеей было бы сделать из, к примеру, 3 строк в excel-документе смердженную ячейку. Но мне надо каждую строку подчеркивать жирной одинарной линией. Но если я так делаю с помощью библиотеки Apache POI, то толщина линии внутри смерженной ячейки слишком тонкая получается. Короче вот так ( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2016, 15:16 |
|
||
|
Реально ли в java подсчитать длину строки в пикселях из русских букв?
|
|||
|---|---|---|---|
|
#18+
Паша01, Ну, посчитал, а дальше что? Что если длина больше требуемой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2016, 17:32 |
|
||
|
Реально ли в java подсчитать длину строки в пикселях из русских букв?
|
|||
|---|---|---|---|
|
#18+
GarrickПаша01, Ну, посчитал, а дальше что? Что если длина больше требуемой? Тогда у меня выбора не остается и я создам смерженную ячейку. Но это крайний вариант для очень длинного текста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2016, 17:37 |
|
||
|
Реально ли в java подсчитать длину строки в пикселях из русских букв?
|
|||
|---|---|---|---|
|
#18+
Паша01, не трать на это времЯ. этот вопрос поднимается регулярно на этом форуме в различных ветках и всегда заканчивается одинаково - ТС убеждается в невозможности реализовать задуманное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2016, 21:22 |
|
||
|
Реально ли в java подсчитать длину строки в пикселях из русских букв?
|
|||
|---|---|---|---|
|
#18+
вадяне трать на это времЯ. этот вопрос поднимается регулярно на этом форуме в различных ветках и всегда заканчивается одинаково - Не правда. Уже несколько лет подобных вопросов не было. вадяТС убеждается в невозможности реализовать задуманное. Ну, почему же. Всегда есть FontMetrics в качестве костыля. Можно ему даже попробовать графический контекст из POI скормить. Ну, и, если затачиваться на Excel, всегда можно попробовать WinAPI+JNA. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2016, 08:36 |
|
||
|
Реально ли в java подсчитать длину строки в пикселях из русских букв?
|
|||
|---|---|---|---|
|
#18+
Паша01Тогда у меня выбора не остается и я создам смерженную ячейку. Но это крайний вариант для очень длинного текста. Это какой-то бланк, формуляр? Тогда ж всё оформление поломается. Но если есть возможность добавить смерженную ячейку, то почему бы просто не увеличить ширину имеющейся. И, к стати, на счёт длины строки в хелпе POI написано как примерно посчитать setColumnWidth , но для каждого шрифта и размера букв свой коэффициент. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2016, 09:07 |
|
||
|
Реально ли в java подсчитать длину строки в пикселях из русских букв?
|
|||
|---|---|---|---|
|
#18+
GarrickИ, к стати, на счёт длины строки в хелпе POI написано как примерно посчитать setColumnWidth , но для каждого шрифта и размера букв свой коэффициент. Сейчас сам на это посмотрел - оно ещё размера пикселей и DPI зависит. В связи с распространением мониторов высокого разрешения, и если ещё взять во внимание возможность применения пользовательской настройки DPI, то задача вообще не разрешима. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2016, 09:11 |
|
||
|
Реально ли в java подсчитать длину строки в пикселях из русских букв?
|
|||
|---|---|---|---|
|
#18+
Вопрос был совершенно нелепый. А именно: как сделать то, что не надо делать? Правильный ответ очевиден: не надо этого делать. Поэтому вопрос и был нелепым. Ещё автор и русский язык не знает. Это ж надо такое "слово" извергнуть из недр организма: "смерженный". Поясняю: программирование - это умственный труд, а кто умеет работать головой, тот умеет выражать свои мысли, не придумывая нелепые слова. В общем. Как заполняют таблицу, если в колонке может быть длинный текст? Очевидно, задают форматирование ячеек с перетеканием текста на другие строки. Зная этот факт, можно догадаться посмотреть в документации по POI - нельзя ли это сделать в POI? Чудо свершилось: там нужные функции форматирования присутствуют. Другой способ - создать в Excel вручную шаблон таблицы с нужным форматированием ячеек, затем заполнять его в программе с помощью POI. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2016, 09:47 |
|
||
|
Реально ли в java подсчитать длину строки в пикселях из русских букв?
|
|||
|---|---|---|---|
|
#18+
На самом деле, "не все так очевидно" ( C ) дочь офицера Часто, это действительно очень сильно хочется и требуется заказчиком. Но проблема в том, что вся точная информация о шрифте доступна только в момент рендеринга на конкретное устройство. Поэтому: 1) обходиться только возможностями форматирования конкретного формата и посылать заказчика с его хотелками (вменяемые заказчики обычно с таким подходом согласны и готовы умерить свои требования). 2) Давать возможность пользователю ручного до-форматирования документа перед печатью (Excel для это замечательно подходит). Есть как свои плюсы, так и минусы. 3) Продолжать мучатся с подсчетом ширины символов, но отдавая себе отчет, что подсчет в большинстве случае все равно может быть только крайне приблизительный. Кроме того, что лично меня пугает, не известно, в каком кол-ве случаев мы результирующий документ "улучшим", а в каком, сделаем систему полностью не работоспособной. Всегда есть риск наткнутся на какую-то не типовую/не документированную конфигурацию, когда наш код просто свалится или будет работать совершенно не корректно /достаточно на интерфейс MS Windows посмотреть, когда при некоторых настройках масштабирования интерфейс становится совершенно не читаемым/. IMHO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2016, 11:09 |
|
||
|
Реально ли в java подсчитать длину строки в пикселях из русских букв?
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevНо проблема в том, что вся точная информация о шрифте доступна только в момент рендеринга на конкретное устройство. Поэтому: 1) обходиться только возможностями форматирования конкретного формата и посылать заказчика с его хотелками (вменяемые заказчики обычно с таким подходом согласны и готовы умерить свои требования). 2) Давать возможность пользователю ручного до-форматирования документа перед печатью (Excel для это замечательно подходит). Есть как свои плюсы, так и минусы. 3) Продолжать мучатся с подсчетом ширины символов, но отдавая себе отчет, что подсчет в большинстве случае все равно может быть только крайне приблизительный. Кроме того, что лично меня пугает, не известно, в каком кол-ве случаев мы результирующий документ "улучшим", а в каком, сделаем систему полностью не работоспособной. Всегда есть риск наткнутся на какую-то не типовую/не документированную конфигурацию, когда наш код просто свалится или будет работать совершенно не корректно /достаточно на интерфейс MS Windows посмотреть, когда при некоторых настройках масштабирования интерфейс становится совершенно не читаемым/. Всё верно расписал. В HTML есть такая единица измерения как em, которая привязана к размеру шрифта. По идее, при масштабировании шрифтов она тоже должна расти. В Excel как-то не всё так просто. Там тоже можно задать ширину в единицах шрифта, но некого "стандартного". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2016, 11:26 |
|
||
|
Реально ли в java подсчитать длину строки в пикселях из русских букв?
|
|||
|---|---|---|---|
|
#18+
BlazkowiczВсё верно расписал. В HTML есть такая единица измерения как em, которая привязана к размеру шрифта. Остается вопрос, насколько корректно привязано. BlazkowiczВ Excel как-то не всё так просто Вообще-то, уже много десятков лет, существует ТИПОГРАФСКАЯ единица измерения point. От которой считаются и размеры в документе и, удивительно ))), размеры шрифтов. Т.ч. в point'ах, теоретически ))), проблем быть не должно. Но вот дальше, проблема корректной реализации и конкретной подстановки шрифтов. Никто не гарантирует, что Times New Roman на экране и на принтере будет один и тот же. Точнее, ранее гарантировалось прямо обратное, что они для _нормальной_/'профессиональной техники должны быть разные ))) IMHO note: http://www.transcriber.ru/etudesrus/intro_units.htm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2016, 12:44 |
|
||
|
Реально ли в java подсчитать длину строки в пикселях из русских букв?
|
|||
|---|---|---|---|
|
#18+
Тысяча чертей, во что я вляпался ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2016, 15:16 |
|
||
|
Реально ли в java подсчитать длину строки в пикселях из русских букв?
|
|||
|---|---|---|---|
|
#18+
Паша01Тысяча чертей, во что я вляпался Ну есть же JasperReports. Он и в Excel может при желании. И даже выглядеть будет почти так же как нарисовали в JasperStudio. :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2016, 10:57 |
|
||
|
Реально ли в java подсчитать длину строки в пикселях из русских букв?
|
|||
|---|---|---|---|
|
#18+
Есть видео от одного бордатого господина который называет себя "Володя из почти университета". Вобщем он пояснял интересный эффект когда расчитывается длина строки в пикселах для смешанно арабо-европейских шрифтов то можно получить vulnerablility класса бесконечных циклов и рекурсий. И вобщем сама по себе постановка для измерения длины получается весьма условной. Это так. Для продолжения дискурса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2016, 11:02 |
|
||
|
Реально ли в java подсчитать длину строки в пикселях из русских букв?
|
|||
|---|---|---|---|
|
#18+
mayton.....можно получить vulnerablility класса бесконечных циклов и рекурсий..... не знаю, что такое vulnerablility, но бесконечный цикл получить можно "как два пальца обосновать" ( C ) maytonИ вобщем сама по себе постановка для измерения длины получается весьма условной. Да нет там никакой условности. Если шрифт и устройство рендеринга совпадает - задача решается точно Если формат файла предназначен для обмена "картинкой" или типографский (pdf,bmp,jpg и т.д.) - задача решается точно Но поскольку Excel текстовый файл и не очень понятно, насколько шрифты (и устройство рендеринга, ОС) в момент генерации и в момент просмотра будет совпадать - задача решается лишь приближенно, на конечном устройстве вывода ручное форматирование (например пагинация) может "уехать" В свое время верстали > 500 страниц справочника в MS Word'е (), коллеги-издатели-дизайнеры-верстальщики глядя на нас крутили пальцем у виска ))), т.к. в Word'е ряд типографских задач нормально не решается (пагинация), Word делает автоматически (и может "уезжать") в нормальных полиграфических продуктах (Adobe PageMaker) делалось полуавтомат/вручную и прибивалось "гвоздями". Но мы люди ленивые, нам верстать было влом, мы макрос на это дело написали, а "бюджет" на верстальщиков пополам с дизайнером поделили ))) Памятники истории и культуры Санкт-Петербурга, состоящие под государственной охраной : Справочник / В.И. Андреева, Н.Н. Веснина, С.Б. Горбатенко, Б.М. Кириков ; ][Отв. ред. Кириков Б.М.]. - Санкт-Петербург : Альтсофт, 2000. - 877 с. : ил. - Авт. указаны на об. тит. л. - ISBN 5-93099-008-5 : 450 р. - Указ. имен., топогр.: с. 823-873 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2016, 11:38 |
|
||
|
Реально ли в java подсчитать длину строки в пикселях из русских букв?
|
|||
|---|---|---|---|
|
#18+
Вот этот негодник. Прошу прощения видео смотрел с год назад и поэтому моя аннотация по сабжу может быть не совсем точной. Если так - то сорри ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2016, 11:47 |
|
||
|
Реально ли в java подсчитать длину строки в пикселях из русских букв?
|
|||
|---|---|---|---|
|
#18+
mayton, Спасибо за ролик. Есть идея попробовать записать excel файл с моим текстом и прочитав его, определить длину каждого слова. И исходя из этого я буду собирать строки. Надо попробовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2016, 13:09 |
|
||
|
Реально ли в java подсчитать длину строки в пикселях из русских букв?
|
|||
|---|---|---|---|
|
#18+
Паша01Есть идея попробовать записать excel файл с моим текстом и прочитав его, определить длину каждого слова. Это как? Т.е. вместо "подсчитать длину строки в пикселях" задача заменяется на "подсчитать длину строки в байтах" ? )))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2016, 13:22 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39263225&tid=2123925]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
37ms |
get topic data: |
8ms |
get forum data: |
3ms |
get page messages: |
85ms |
get tp. blocked users: |
1ms |
| others: | 253ms |
| total: | 423ms |

| 0 / 0 |
