2016-12-09 7 views
0

Я пытаюсь понять следующее: documentation. Так вот мой наивный попробовать:FOUserAgent - Glyph «➜» (0x279c, a167) недоступно в шрифте «Символ»

$ cat custom.xsl 
<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" version="1.0"> 
<xsl:import href="http://docbook.sourceforge.net/release/xsl/current/fo/docbook.xsl"/> 

<xsl:param name="symbol.font.family" select="'Symbol,ZapfDingbats,Lucida Sans Unicode'"/> 
<xsl:template match="symbol[@role = 'symbolfont']"> 
    <fo:inline font-family="Symbol"> 
    <xsl:call-template name="inline.charseq"/> 
    </fo:inline> 
</xsl:template> 

</xsl:stylesheet> 

и вход DocBook 5:

$ cat bla.xml 
<?xml version="1.0" encoding="utf-8" standalone="no"?> 
<article xmlns="http://docbook.org/ns/docbook" version="5.0"> 
    <section> 
    <title>title</title> 
    <!--symbol role="symbolfont">➜</symbol--><!-- removed since not valid --> 
    <para>before <symbol role="symbolfont">➜</symbol></para> 
    <para><symbol role="symbolfont">➜</symbol> after</para> 
    <para>➜</para> 
    </section> 
</article> 

который я компилируется с помощью:

$ xsltproc --nonet -o bla.fo custom.xsl bla.xml 
Note: namesp. cut : stripped namespace before processing   title 
Note: namesp. cut : processing stripped document     title 
Making portrait pages on USletter paper (8.5inx11in) 
$ fop bla.fo bla.pdf 
[WARN] FOUserAgent - Font "Symbol,normal,700" not found. Substituting with "Symbol,normal,400". 
[WARN] FOUserAgent - Font "ZapfDingbats,normal,700" not found. Substituting with "ZapfDingbats,normal,400". 
[WARN] FOUserAgent - Glyph "➜" (0x279c, a167) not available in font "Symbol". 
[INFO] FOUserAgent - Rendered page #1. 

Это приводит к следующему:

convert bla.pdf -crop 200x250+50+50 bla.png

Так почему же <para>➜</para> работает в моем случае, но не в других?


Обратите внимание, что эта проблема тесно связана с Debian, поскольку Debian не печатает шрифты Times.

ответ

0

На самом деле это было довольно просто. Мне нужно использовать вместо ZapfDingbats:

<xsl:template match="symbol[@role = 'symbolfont']"> 
    <fo:inline font-family="ZapfDingbats"> 
    <xsl:call-template name="inline.charseq"/> 
    </fo:inline> 
</xsl:template>