Как я могу отобразить символ Unicode, используя Apache FOP? Показаны "?" вместо характера. - PullRequest
14 голосов
/ 02 ноября 2011

Я пытался вставить символ Unicode ∇ или ▽, поэтому он отображается в PDF, сгенерированном Apache FOP.

Это то, что я делал до сих пор:

  1. Сначала вы должны знать правильный код Unicode для представления символа в соответствии с этой базовой справкой. Apache XSL-FO Введите , что код Unicode можно найти в unicode.org в списке математических операторов.Код ∇ ∇ NABLA, я также мог бы использовать ▽ tri направленный вниз треугольник.

  2. После нахождения правильного кода я должен выбрать шрифт, содержащий необходимый глиф, а в Спецификации Adobe PostScript и PDF укажите Отображение шрифта Base-14 , которое должно бытьдоступно каждому интерпретатору PostScript и программе чтения PDF, поэтому я ищу в списке, и шрифт Symbol содержит ∇ &#x2207, (ни один шрифт не содержит ▽ ▽ отбраковано)

  3. После этого поиска код результата, я думаю, я должен использовать в xsl: fo:

     <fo:block font-family="Symbol">
     &#x2207;
     </fo:block>
    
  4. Проблема заключается в том, когда он генерирует PDF,результат не соответствует ожидаемому значению «∇», но вместо этого он показывает «?», я читал, что когда не удается отобразить символ, обычно отображается «#», но мой код показывает «?».

  5. Я использую Apache fop 0.95, я подозреваю, что это та версия, которая вызывает проблему, и я должен обновить до 1.0, но на данный момент это версия, используемая в производстве, и командаЛидер сказал, что на данный момент сложно обновитьэто.

Так вот в чем проблема, может быть что-то еще, кроме версии?Может быть, что-то пустышка, которую я забыл сделать? Как отобразить символ Unicode с помощью Apache fop?

1 Ответ

2 голосов
/ 23 января 2012

Попробуйте использовать десятичное значение символа (думаю, для этого вам не нужно семейство шрифтов Symbol):

&#8711;

Для всех, кому нужно знать значения специальных символов, вы можетенайди их здесь

...