Corel Draw: проблема внедренных шрифтов в макросах

Corel Draw: проблема внедренных шрифтов в макросах

Corel Draw: проблема внедренных шрифтов в макросах
Corel Draw: проблема внедренных шрифтов в макросах
19/9/2025
Появилась проблема: при изменении размера или начертания (стиля) шрифта в макросе вылетает ошибка. Рассмотрим откуда она берется.
Ошибка возникает, если вы меняете размер шрифта следующим образом:
Set sh = ActiveDocument.ActiveShape ' это текстовый шейп
sh.Text.Story.Size= 33
Ошибка не возникает, но и не меняется размер шрифта, если вы меняете так:
Set sh = ActiveDocument.ActiveShape ' это текстовый шейп
sh.Text.FontProperties.Size= 33
Корел несколько версий назад стал позволять внедрять шрифты в документ. Это хорошо и можно спокойно открывать документы, не боясь, что поедет верстка. Но не все шрифты бывают «хорошими». Внедряются и «криворукие» шрифты, с которыми Корел не может работать.
Проблема кривого внедренного шрифта в документ распространяется на все остальные шрифты в документе, как только дело доходит до макросов.
Чтобы решить проблему, надо во всех текстовых блоках с кривым шрифтом заменить кривой шрифт на другой, или скривить эти объекты, или удалить.
Но и это еще не всё. Связи с кривым шрифтом остаются в документе и вам надо сохранить документ, закрыть и заново его открыть. Вот такое решение проблемы.
Макросы с изменением свойств шрифта начинают работать нормально.
Не все внедренные шрифты кривые. Но как найти их, чтобы понять с каким проблема?
В докере в отчет добавлен список текстовых объектов — и с каким шрифтом они присутствуют в документе.
В начале названия шрифта есть атрибуты.
[EMB] — шрифт, используемый в тексте, точно встроенный, и большая вероятность, что он не установлен в системе.
* — шрифт находится в текстовом блоке, в котором используются несколько шрифтов для разных символов.
Стоит обратить внимание на шрифты [EMB].
Выделяем текстовый объект и смотрим, что вверху в панели меню.
Если Корел нашел замену шрифту из системных, то вы не увидите [Embedded] после имени шрифта. Но не факт, что он корректно нашел замену. Вам уже решать.
У меня отчет показал встроенный Myriad Pro Cond, хотя он установлен у меня в системе. Оказалось, что версии шрифтов разные, и у себя внутри Корел это отметил, а мне показал, что все хорошо.
В кривом шрифте (в моем случае это HuxleyVertical BT) объект выглядит так:
В отчете шрифт помечен звездочкой, т.е. он содержится вместе с другим шрифтом в одном текстовом объекте. Первый символ – HuxleyVertical BT, цифры «35» – Arial.
Корел не смог отобразить символ шрифта HuxleyVertical BT и показал его прямоугольником.
Теперь можно отследить, как выглядят встроенные шрифты в объектах и решить будете ли вы их заменять. Ну а если перестали работать макросы с текстом или размерами (где тоже есть текст), то вам надо проверить все элементы со внедренным шрифтом. Возможно, проблема, именно, в кривом шрифте.
Комментарии: