null

Liferay 6.1 - исправляем шрифты при просмотре PDF-документов

В Liferay 6.1 появилась новая полезная фича - возможность просмотра PDF-документов в библиотеке прямо на портале, без необходимости загрузки файла на клиентскую машину. К сожалению, "из коробки" она обычно работает криво - структура документа видна, но текст читать невозможно из за его засорения "кракозябрами". Причём таким образом портится как русский, так и английский текст, так что дело тут явно не в кодировке.

Вместе с текстом выводятся "кракозябры"

К счастью, документация подсказывает нам, что решается эта проблема достаточно просто  - нужно заменить библиотеку, которая генерирует preview для документов - вместо Apache PDFBox использовать ImageMagick. Делается это следующим образом:

1. Ставим ImageMagick. Настоятельно рекомендуется поставить её по дефолтному пути (/usr/local/bin для UNIX-подобных ОС) - в этом случае мы избежим лишних проблем с заданием пути к библиотеке.

2. Открываем файл portal-ext.properties нашего портала и добавляем ключ, "переключающий" генерацию preview на ImageMagick:

imagemagick.enabled=true

Если при установке ImageMagick был использован дефолтный путь (/usr/local/bin в UNIX-подобных ОС), то ничего больше добавлять не надо; если нет, то нужно определить, где находится команда convert. К примеру, в Linux / Solaris / FreeBSD это можно сделать так:

jek@jek-laptop:~$ which convert
/usr/bin/convert

Теперь необходимо прописать путь к команде convert в конфиге портала (файл portal-ext.properties):

# imagemagick.global.search.path[apple]=/opt/local/bin
imagemagick.global.search.path[unix]=/usr/bin
# imagemagick.global.search.path[windows]=C:\\Program Files\\ImageMagick

Для Windows и OS X существуют свои опции; т.к. я тестировал свой пример под Linux, у меня они закомментированы.

После этого нам остаётся только перезапустить портал, загрузить наш документ в библиотеку ещё раз (чтобы повторно запустилась генерация preview) и убедиться в том, что теперь со шрифтами всё в порядке - текст отлично читается.

"Кракозябры" исчезли - текст отлично читается

Коротко о себе:

Работаю ведущим программистом в компании Tune IT и ассистентом кафедры Вычислительной техники в Университете ИТМО .

Занимаюсь проектами, связанными с разработкой разного рода веб-приложений (порталы, CRM-системы, системы электронного документооборота), а также, в рамках научной работы на кафедре, изучаю возможности применения семантического анализа в задачах САПР.