2013-07-19 65 views

回答

13

如果你要爲整個文檔,你可以將它設置在FO默認字體:根。它應該由沒有指定字體系列的每個子節點繼承。

<fo:root font-family="Tahoma"> 
    <!-- rest of document --> 
</fo:root> 
+0

fo:根元素沒有font-family屬性。請參閱規範(http://www.w3.org/TR/2001/REC-xsl-20011015/slice6.html#fo_root) – celbos

+2

雖然它可能不符合規範,但我可以在Apache FOP中驗證它適用於我 – Ryan

0
<fonts> 
    <referenced-fonts> 
     <match font-family="Tahoma"/> 
    </referenced-fonts> 
    </fonts> 

OR

<fo:page-sequence master-reference="A4-portrait"> 
    <fo:flow flow-name="xsl-region-body"> 
    <fo:block font-size="10pt" font-family="Tahoma"> 
     Text <xsl:value-of select="name"/> 
    </fo:block> 
    </fo:flow> 
</fo:page-sequence> 
+0

第一種方式似乎不工作,第二..是如何從什麼不同的我已經寫在我的問題? (本地字體家族)? –

+0

這裏是一個鏈接到原始Apache的文檔[FOP](http://xmlgraphics.apache.org/fop/trunk/fonts.html)我已經在我的項目的配置中使用它。它工作得很好。 – stanlyF

+0

請注意,我在嵌入字體 –

0

有沒有辦法做到這一點,在CSS,如果你實際上並沒有做的方式一個元素來匹配你的特定字體。 如果你想要的只是設置一個字體的一切,但一些例外,將其設置爲< fo:root >然後當你需要應該做的時候改變它。 字體是否是默認字體或通過您的配置文件定義沒有區別。

編輯:

body { font-family: "Tahoma"; } 

相當於將

<xsl:template match="body"> 
    <fo:block font-family="Tahoma"> 
     Content 
    </fo:block> 
</xsl:template> 
+0

我假設'Content'是一個正文,即我必須將整個文檔放在那裏? –

3

您可以使用節點FO:包裝繼承屬性,將其內容孩子的

<fo:page-sequence master-reference="A4-portrait"> 
    <fo:flow flow-name="xsl-region-body"> 
     <fo:wrapper font-size="10pt" font-family="Tahoma"> 
      <fo:block> 
       Text <xsl:value-of select="name"/> 
      </fo:block> 
      <fo:block> 
       Another text 
      </fo:block> 
     </fo:wrapper> 
    </fo:flow> 
</fo:page-sequence> 
相關問題