2012-04-20 5 views
0

Я работаю над приложением, которое имеет некоторые формы, а затем с помощью FOP создает pdf-файлы. Файлы PDF, которые создаются, находятся во времени New Roman, но я хочу их в шрифте Arial. Я добавил arial.ttf в projectName-> fonts-> arial.ttf, как описано здесь: http://www.publicstaticfinal.de/2011/01/26/fop-embedding-fonts-from-classpath/Невозможно включить шрифт Arial в FOPTransformer

Это TTF и код должен идти в файл под открытым небом ампера, но сейчас я добавил его нету в банке файл для arial.ttf потому что я не знаю, как сделать банку файл с только .ttf файл, вот что я сделал для достижения этой цели, но PDF еще в Times New Roman: fopconfig:

<fop version="0.94"> 
<base>./</base> 
<font-base>./</font-base> 
<renderer mime="application/postscript"> 
<fonts> 
     <font kerning="yes" embed-url="/fonts/arial.ttf" encoding-mode="auto"> 
      <font-triplet name="Arial" style="normal" weight="normal" /> 
     </font> 
    </fonts> 
    </renderer> 
</fop> 

создал файл класса следующим образом :

import java.io.InputStream; 
import javax.xml.transform.Source; 
import javax.xml.transform.TransformerException; 
import javax.xml.transform.URIResolver; 
import javax.xml.transform.stream.StreamSource; 

public class ClasspathUriResolver implements URIResolver 
{ 

    public Source resolve(String href, String base) throws TransformerException 
    { 
    Source source = null; 
    InputStream inputStream = ClassLoader.getSystemResourceAsStream(href); 
    if (inputStream != null) 
    { 
     source = new StreamSource(inputStream); 
    } 
    return source; 
    } 
} 

А вот часть моего кода для FOPTranformer:

FopFactory fopFactory = FopFactory.newInstance(); 
    FOURIResolver uriResolver = (FOURIResolver)fopFactory.getURIResolver(); 
    uriResolver.setCustomURIResolver(new ClasspathUriResolver()); 
    FOUserAgent foUserAgent = fopFactory.newFOUserAgent(); 

ответ

3

Я думаю, вам нужно загрузить шрифт-конфигурацию при создании FopFactory см http://xmlgraphics.apache.org/fop/1.0/embedding.html#config-external

Однако ФОП будет использовать шрифт Arial по умолчанию, если вы указываете «sans-serf» как семейство шрифтов в файле XSL-FO.

+0

Большое спасибо, это сэкономило мне много времени :) – Ramkumar

Смежные вопросы