私はいくつかのフォームを持つアプリケーションに取り組んでおり、FOP を使用して pdf ファイルを作成しています。生成される PDF ファイルは Time New Roman ですが、Arial フォントが必要です。ここで説明されているように、projectName->fonts->arial.ttf に arial.ttf を追加しました。
この ttf とコードは alfresco amp ファイルに入れる必要がありますが、.ttf ファイルだけで jar ファイルを作成する方法がわからないため、現在は arial.ttf の jar ファイルとして追加していません。これを達成するために行ったことは次のとおりです。しかし、pdfはまだ新しいローマ時代にあります: 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();