私はいくつかのフォームを持つアプリケーションで作業していますが、FOPを使用してPDFファイルを作成しています。生成されているPDFファイルはTime New Romanにありますが、Arialフォントで入力してください。ここで説明したように、私はprojectName-> fonts-> arial.ttfの中arial.ttfのを追加しました: http://www.publicstaticfinal.de/2011/01/26/fop-embedding-fonts-from-classpath/FOPTransformerにArialフォントを含めることができません
をこのTTFとコードが屋外でアンプファイルに行くことを持っていますが、今、私はarial.ttfのためのjarファイルとしてそれを追加しましたhaventは私だけの.ttfファイルとjarファイルを作成する方法がわからない、ここに私はこれを達成するために何をしたかであるが、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();
ありがとう、それは私の時間をたくさん保存しました:) – Ramkumar