Преобразование документа в изображение с неподдерживаемыми шрифтами

Я уже использовал классы aspose для преобразования документа Word в файлы png. Но для точной конвертации все применяемые в текстовом файле шрифты должны быть установлены в системе (либо у нас должна быть папка с этими шрифтами на сервере). Если нет подходящего шрифта, результирующие изображения отображаются неправильно.

Итак, есть ли возможность (возможно, другой API) избежать проблемы с неподдерживаемыми шрифтами?

Не могли бы вы так любезно дать совет? Заранее спасибо.


person QAkane    schedule 24.09.2014    source источник


Ответы (1)


У вас есть два варианта решения ситуации с отсутствующими шрифтами.

Объявить шрифт по умолчанию

Вы можете объявить шрифт по умолчанию, используя класс FontSettings. Когда шрифты, используемые документом, не найдены в системе во время рендеринга, Aspose.Words возвращается к шрифту по умолчанию. Ознакомьтесь с нашей документацией для Как указать шрифт по умолчанию для использования при рендеринге в .Net и Как указать шрифт по умолчанию для использования при рендеринге в Java.

Динамический выбор шрифтов

Aspose.Words обеспечивает обратный вызов, когда шрифты, используемые документом, не найдены в системе. Определенный вами обработчик обратного вызова может динамически заменять шрифты во время рендеринга. Он объявлен через класс SaveOptions. Проверьте Как получить уведомление об отсутствующих шрифтах и ​​замене шрифта во время рендеринга в .Net и Как получить уведомление об отсутствующих шрифтах и ​​замене шрифтов во время рендеринга.

Вы можете комбинировать оба варианта вместе.

Раскрытие информации: я разработчик в Aspose.

person Saqib    schedule 25.09.2014
comment
Спасибо за ваш ответ! - person QAkane; 25.09.2014
comment
Я знаю об этих вариантах. Дело в том, что в документе могут быть разные шрифты и языки, поэтому я не вижу, чем может помочь установка шрифта по умолчанию. Я создал класс, реализующий IWarningCallback, и увидел результаты, когда шрифтом по умолчанию был «Times New Roman», а когда шрифтом по умолчанию был «null». Но это не помогает, когда у нас есть «многошрифтный» документ. - person QAkane; 25.09.2014
comment
Я думал о методе .addFontSubstitutes, но я хотел бы сделать это динамически. Возникают две проблемы: 1) Что выполняется в первую очередь: подстановка или получение предупреждающего сообщения? Это значит, когда мы сможем установить другой шрифт? 2) Как правильно подобрать шрифт для замены? Использование свойства Charset? Или что-то подобное? В любом случае спасибо за внимание и ответ. - person QAkane; 25.09.2014
comment
Пожалуйста, поделитесь документом и кодом, который вы написали. Я постараюсь предложить решение или обходной путь. Вы также можете отправить документ в частном порядке через наши форумы поддержки. - person Saqib; 25.09.2014