Короче, общий ответ:
Если шрифт настроен, но вывод неправильный, проблема может заключаться в том, что FOP неправильно определяет, какой режим сценария использовать.
Решение: явно задает свойство script
в файле FO, используя standard или extended код сценария.
Обратите внимание, что Индийские сценарии имеют как стандартный код, так и расширенный (например, deva
и dev2
для Деванагари), и в результате вывод отличается, поэтому вам может потребоватьсяпопробуйте оба варианта и выберите подходящий.
Более длинный ответ:
У меня нет доступных шрифтов, о которых вы упомянули, поэтому я протестировал с помощью Amiko Google OpenШрифт.
Что более важно, я ничего не знаю о скрипте деванагари, поэтому я действительно не могу сказать, является ли вывод правильным или неправильным , я могу сравнить его только с вашими изображениями.
Это полный входной файл , который я использовал, с предложением, скопированным из вашего вопроса:
<?xml version="1.0" encoding="UTF-8"?>
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
<fo:simple-page-master master-name="simpleA4" page-height="29.7cm" page-width="21cm" margin-top="2cm" margin-bottom="2cm" margin-left="2cm" margin-right="2cm">
<fo:region-body/>
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="simpleA4">
<fo:flow flow-name="xsl-region-body">
<fo:block font-family="Amiko" script="deva">deva: से and ग्रामीण should be printed in pdf</fo:block>
<fo:block font-family="Amiko" script="dev2">dev2: से and ग्रामीण should be printed in pdf</fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>
Вот минимальная конфигурация :
<?xml version="1.0"?>
<fop version="1.0">
<renderers>
<renderer mime="application/pdf">
<fonts>
<font kerning="yes" embed-url="Amiko/Amiko-Regular.ttf">
<font-triplet name="Amiko" style="normal" weight="normal"/>
</font>
</fonts>
</renderer>
</renderers>
</fop>
, который производит вывод :
![output with complex script ON](https://i.stack.imgur.com/ti99n.png)
Если я правильно понимаю, вы пытаетесь получить вывод с script="deva"
.
Обратите внимание, что атрибут metrics-url
в вашей конфигурациине требуется.
Более того, добавление <complex-scripts disabled="true"/>
в вашу конфигурацию приводит к отключению поддержки "сложного сценария", поэтому я ожидаю, что это приведет к неправильному вывод.
Эта конфигурация
<?xml version="1.0"?>
<fop version="1.0">
<complex-scripts disabled="true"/>
<renderers>
<renderer mime="application/pdf">
<fonts>
<font kerning="yes" embed-url="Amiko/Amiko-Regular.ttf">
<font-triplet name="Amiko" style="normal" weight="normal"/>
</font>
</fonts>
</renderer>
</renderers>
</fop>
производит следующие выходные данные :
![enter image description here](https://i.stack.imgur.com/h7RgD.png)