Не прорисовываются символы в программируемом редакторе Windows

Тема в разделе «Шрифты», создана пользователем АлександрGlax, 15 окт 2016.

  1. Не прорисовывается множество символов в программируемом редакторе Windows (стандартная компонента WPF RichTextBox). При работе с несколькими шрифтами (где нет OpenType Panel и Classes Panel символов) нет никаких проблем и все прорисовывается (например, сложный символ из множества линий с Юникодом $2665).

    При работе со шрифтом, где есть OpenType Panel и Classes Panel символы, некоторые символы прорисовываются (например, j или 0), а много других не прорисовываются и например цельный символ, который выглядит, как (четыре подряд восклицательных знака) с Юникодом $227D.

    Но символ в одном шрифте с кодом $2665 прорисовывается, и в другом шрифте по моему совершенно однотипный символ с кодом $227D не прорисовывается (разумеется в Word нет никаких подобных проблем), и я не вижу отличий с точки зрения их сравнения как они реализованы в FontLab...

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

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

    За любые идеи и советы буду очень благодарен.

    С ув. Александр
     
    #1 АлександрGlax, 15 окт 2016
    Последнее редактирование: 15 окт 2016
  2. Переведите, плз, кто-нибудь на человеческий язык 'hmmm''fp'
     

  3. Не по теме:
    На гуглоперевод похоже. '))'
     
  4. Извините я программист и обычно мыслю и выражаюсь в образах программного кода и программного обеспечения, и возможно для форума вероятно издательских работников и профессиональных верстальщиков не вполне понятен, к сожалению. Сорри.

    если проще, попробую -- кто нибудь работал в разных пакетах или редакторских или типографских пакетах, и сталкивался с ситуацией что в одном фонты хорошо показываются, а в другом нет -- и что надо было для этого делать?

    особая проблема для программиста -- профессиональные редакторы закрытые для разработчиков и там все обычно очень хорошо,

    а открытые системы, которые к примеру предоставляет Microsoft для разработчиков -- уже не все так хорошо и встречаются серьезные проблемы, и нам их надо как то решать :)
     
  5. примеры бы привели
     
  6. 'nosilki'
    Тут словами принято писать.
     
  7. но мне кажется, я и привел примеры, в которых для тех кто знаком с редактором фонтов FontLab Studio, и сообщил информацию о шрифтах где есть проблемы и где нет, и указал информацию о символе с которым проблема и о написании его сообщил....
     
  8. @АлександрGlax, Для понимания проблемы я бы выложил принтскрины, а так же шрифты (если это не нарушает лицензии). Ну или дал бы название шрифта, дату и размер. Ворд может показывать корректно самые древние шрифты. А, к примеру, Inkscape в принципе не работает со старыми неюникодными шрифтами.
     
  9. Я могу объяснить на словах: в проблемном шрифте для символа с Юникодом $227D обычный символ - рисунок как "четыре подряд восклицательных знака, которые несколько сжаты" и Word хорошо воспроизводит, как и должно. А Microsoft Visual Studio 2015 (одна из самых свежих) WPF RichTextBox - лучшая компонента для форматированного текста (Word воспринимает), вместо того что надо рисует ">=" - вот такой угловой символ (больше равно, в один символ, как нас в первом классе вроде учили), вместо того что надо...

    чтобы выложить шрифты в инет, мне надо спросить у правообладателя -- не уверен, что мне это разрешат, но я спрошу и собираюсь писать письмо, примерно в понедельник.
     
    #9 АлександрGlax, 15 окт 2016
    Последнее редактирование: 15 окт 2016
  10. Для начала, просто приведите примеры скриншотами. Начните с каких-нибудь стандартных шрифтов (которые поставляются вместе с Виндовс, например), только не забудьте указать версию и размер файла шрифта.
    Вот если со стандартными шрифтами проблем нет, тогда надо разбираться со шрифтами. А если проблемы есть и со стандартными шрифтами, то проблемы где-то в компонентах (наверное).
     
  11. Я по дружбе помогаю, и как появится свободное время я это постараюсь сделать - вероятно, в течении недели сделаю. В пятницу начальство озадачило дополнительной работой, а также нужно готовить к сдачи проект. Спасибо.
     
  12. а я всё равно ничо не понимаю.

    символ юникода #227D - это SUCCEEDS OR EQUAL TO
    не во всех шрифтах он вообще нарисован, но все юникодные программы его "прорисовывают".

    какие-такие "четыре подряд восклицательные знака"?

    uni.jpg
     
  13. поместил на файлообменник

    Пример изображения символа, который программно не воспроизводится

    и символ в программе действительно показывается как "больше или равно" на Вашей картинке -- и это не правильно, а в глифе рисунок "четыре восклицательных знака" и Word их показывает, а Microsoft Visual Studio нет :( -- а с различными другими шрифтами проблем нет, и я несколько многобуквенных шрифтов целиком в программе просматривал и проблем не было, а с этим одним шрифтом какая то проблема и он сложнее: есть OpenType и Classes Panel символы, но символ 227D - обычный простой символ...
     
    #13 АлександрGlax, 15 окт 2016
    Последнее редактирование: 15 окт 2016
  14. Тут бывают и профессиональные шрифтовики, не каждый день правда.
    Они просто нарисованы на месте SUCCEEDS OR EQUAL TO
    JPEG можно прямо в пост вставлять, кнопка загрузить изображение или просто перетащить в редактор поста.
     
  15. Проверил какой символ последний корректно в моей программе рисуется - $2219 (Bullet operator). Следующий символ $2272 (Less - Than Or Equivalent to) рисуется уже не правильно, но именно с этого символа и начинаются в шрифте замены на модифицированные глифы - рисунки, и символ $2272 изменен на "стилистический '0' (ноль)" и программа Microsoft Visual Studio уже не понимает...

    а в другом шрифте многочисленные замены рисунков - глифов, и нет проблем... там программа все понимает...
     
  16. На тех же юникодах?
     
  17. Я наконец то вкурил, в чем дело: вы нашли баг майкрософтовской косолапой компоненты и спешите с нами им поделиться!
    Так тогда вы не по адресу совсем - вам нужно на форум начинающих программеров MSVC (а эти компоненты предназначены исключительно для них, ибо, во всех рофессиональных графических пакетах, даже индийских, стоят собственные мощные шрифтовые движки, часто напрямую завязанные на видеокарту) Ну или в лигу се... тьфу! службу поддержки майкрософт, возможно, к следующей версии MSVC годика через два отображение этого конкретного символа в своем компоненте пофиксят ;)
     
  18. Всем большое спасибо. Проблема решена.

    Подробности: осознал, что тогда программа не просто не рисовала какие то символы, а отказалась полностью признавать шрифт. То есть любой символ рисовала по умолчанию -- ну как Word если какой то символ в шрифте не признает, то самостоятельно переходит на какой то системный шрифт и таким псевдо образом его рисует.

    Решение: Переименовал шрифт, убрал из названия и везде в общих настройках о шрифте всевозможные пробелы, скобки и т.д. И заработало ! Программа все правильно рисует, включая составные лигатуры.

    # На Microsoft мне не имеет смысл катить - нам с ним жить, какой уж он есть :)

    Не приятно конечно, что шрифты приходится переименовывать, но какое - никакое это решение, и с этим мне кажется, худо бедно можно будет жить, если возникнет в этом серьезная потребность :)
     
    #18 АлександрGlax, 16 окт 2016
    Последнее редактирование: 16 окт 2016
  19. Поправка - не программа отказывается признавать кривой шрифт, а система. Фактически, вы с майкрософтовским компонентом имеете доступ только к самой верхушке API и на то, что делается внутри него повлиять абсолютно не имеете никакой возможности.
    Я, правда, не пойму сакральной необходимости использовать столь хитрые юникодные глифы и составные лигатуры в простецком компоненте, основное назначение которого - облегчить ленивым начинающим программистам отображение несложного форматированного фрагмента текста на экране.
     
  20. Шрифт серьезный, собственно есть несколько подобных шрифтов. Для воспроизводства древних надписей, археологических надписей. Славянский регион, а также что то по шумерам и разным другим. Это не для ленивых специалистов, а для серьезных археологов и лингвистов, специализирующихся на древних текстах и языках. В этом шрифте порядка сформированных 3 тысяч символов, включая глифы - рисунки (в основном), а также и лигатуры. Шрифт разрабатывается с 1990 года, так что все серьезно.
     

Поделиться этой страницей