2011-07-15 58 views
1

我如何将解放字体与我的Grails战争打包在一起?字体可能无法在我正在部署的服务器上使用,并且我需要用于报告系统的字体。在Grails战争中解放.ttf字体?

如何在战争中包含字体,使其位于类路径中并可供JVM使用?

+0

您是否试过将资源文件夹打包并使用Font类加载它们?请参阅 - http://stackoverflow.com/questions/5902229/custom-fonts-in-java。 – Perception

回答

2

如果你明确地使用它们作为碧玉报告,那么你可以这样做。

的grails-app/conf目录/ jasperreports_extension.properties

net.sf.jasperreports.extension.registry.factory.simple.font.families=net.sf.jasperreports.engine.fonts.SimpleFontExtensionsRegistryFactory 
net.sf.jasperreports.extension.simple.font.families.liberationsans=jasper_fonts.xml 

的grails-app/conf目录/ jasper_fonts.xml

<?xml version="1.0" encoding="UTF-8"?> 
<fontFamilies> 
    <fontFamily name="Liberation Sans"> 
     <normal>lib/fonts/liberation-fonts-ttf-1.07.0/LiberationSans-Regular.ttf</normal> 
     <bold>lib/fonts/liberation-fonts-ttf-1.07.0/LiberationSans-Bold.ttf</bold> 
     <italic>lib/fonts/liberation-fonts-ttf-1.07.0/LiberationSans-Italic.ttf</italic> 
     <boldItalic>lib/fonts/liberation-fonts-ttf-1.07.0/LiberationSans-BoldItalic.ttf</boldItalic> 
     <pdfEncoding>Identity-H</pdfEncoding> 
     <pdfEmbedded>true</pdfEmbedded> 
     <exportFonts> 
      <export key="net.sf.jasperreports.html">'Liberation Sans', Arial, Helvetica, sans-serif</export> 
      <export key="net.sf.jasperreports.xhtml">'Liberation Sans', Arial, Helvetica, sans-serif</export> 
     </exportFonts> 
    </fontFamily> 
</fontFamilies> 

修改以适合您的TTF字体。确保你注意到<exportFonts>元素,所以你的HTML报告不会中断。