Как указано, iText поддерживает стандартные шрифты Type 1, поскольку iText поставляется с файлом AFM (файлы Adobe Font Metrics). iText не имеет представления о метриках шрифтов других шрифтов (Verdana не является шрифтом Standard Type 1). Вам необходимо указать путь к файлу шрифтов Verdana.
BaseFont.createFont("c:/windows/fonts/verdana.ttf", BaseFont.WINANSI, BaseFont.EMBEDDED)
Обратите внимание, что я изменить false
к BaseFont.EMBEDDED
потому что та же проблема, у вас есть на вашей стороне, также будет происходить на стороне человека, который смотрит на файл: его PDF зритель может сделать стандартный тип 1 шрифтов, но возможно, не смогут отображать другие шрифты, такие как Verdana.
Предостережение: Твердый закодированный путь "c:/windows/fonts/verdana.ttf"
работает для меня на моей локальной машине, потому что файл шрифта можно найти, используя этот путь на моей локальной машине. Этот код не будет работать на сервере, где я размещаю сайт iText, хотя (это сервер Linux, у которого даже нет каталога c:/windows/fonts
). Я использую этот жесткий кодированный путь в качестве примера. Вы должны убедиться, что шрифт присутствует и доступен при развертывании приложения.
Спасибо за ответ и отзыв о встроенной части. Я должен действительно изменить путь, но это не должно быть проблемой. –