Обучение FOP русским шрифтам

Я подозреваю, что можно научить FOP пользоваться шрифтами из пакета scalable-cyrfonts, но я пока не пробовал. Ниже описано, как подключить turtype-шрифты из Windows.

Чтобы научить FOP русским шрифтам (и радоваться хорошим таблицам, поскольку PassiveTeX таблицы обрабатывает очень плохо; в качестве бесплатного бонуса - переносы в русском тексте), нужно сделать следующее:

  1. Скачайте (бинарный) дистрибутив FOP вот отсюда.

  2. Распакуйте его куда-нибудь.

  3. Найдите truetype-шрифты от Windows. Положите их куда-нибудь.

  4. Возьмите вот здесь архив с метриками этих шрифтов. Распакуйте его куда-нибудь.

  5. В распакованом дистрибутиве FOP отредактируйте файл conf/userconfig.xml, включив в раздел fonts описания имеющихся у вас шрифтов, примерно вот так:

    <font metrics-file="file:///путь_к_метрике_шрифта" kerning="yes" embed-file="путь_к_файлу_шрифта">

    <font-triplet name="имя_шрифта" style="normal" weight="normal"/>

    </font>

    Скорее всего, вам потребуется указать четыре записи для каждого шрифта - normal/normal, normal/bold, italic/normal, italic/bold. Если вам нужно более подробное описание процесса, то вот оно.

  6. Теперь FOP будет правильно обрабатывать fo-файлы с русским текстом в кодировке UTF-8. Если, конечно, указанные в файле названия шрифтов совпадают с добавленными вами шрифтами. Чтобы они совпадали, используйте параметры title.font.family и body.font.family для stylesheet. Запускайте FOP примерно так: JAVA_HOME=путь_к_установленной_java fop.sh -c conf/userconfig.xml fo-файл pdf-файл.

  7. Можно настроить XSL Utility на вызов поправленного FOP. Укажите в качестве FO-процессора Other и задайте команду вызова FOP. Моя команда выглядит так: cd %Td%; env JAVA_HOME=/usr/local/jre путь/fop.sh -c путь/conf/userconfig.xml %T% %O%.

  8. Если вы хотите использовать изображения в формате PNG, вам потребуется Java-библиотека Jimi. Скачайте библиотеку Jimi. Распакуйте ее куда-нибудь. Достаньте из распакованного JimiProClasses.zip. Распакуйте его куда-нибудь. Соберите jimi-1.0.jar, зайдя в каталог с распакованным JimiProClasses.zip и выполнив команду jar cvf ../jimi-1.0.jar . . Скопируйте получившийся jimi-1.0.jar в подкаталог lib каталога FOP.

Я не умею собирать FOP из исходных текстов. Возможно, если это сделать, то оно будет еще более белое и пушистое.