外部グラフィックをPDFに表示するのに問題があります。を使用してあらゆる種類のパスを使用してみましたurl()
が、何も機能しないようです。それは私が見逃している他の何かですか?
<fo:table-cell>
<fo:block>
<fo:external-graphic src="url(ss/naam.png)"></fo:external-graphic>
</fo:block>
</fo:table-cell>
Apache FOP1.1Ver。を使用しています。
まず、apache FOPに、次のようにベースパスがどこにあるかを伝える必要があります。コードをそのままコピーする必要があります。
fopFactory = FopFactory.newInstance();
// for image base URL : images from Resource path of project
String serverPath = request.getSession().getServletContext().getRealPath("/");
fopFactory.setBaseURL(serverPath);
// for fonts base URL : .ttf from Resource path of project
fopFactory.getFontManager().setFontBaseURL(serverPath);
XSLテンプレートファイル内
<fo:table-cell>
<fo:block>
<fo:external-graphic src="url(resources/naam.png)"></fo:external-graphic>
</fo:block>
</fo:table-cell>
ここでnaam.pngはresources/ディレクトリにあります
プロジェクトのリソースディレクターにすべての画像と必要なフォントフォントファイルを追加しました。それは私にとってはうまくいっています。ありがとうございました
<fo:external-graphic>
絶対パスにを追加するには、それが機能する唯一の方法は、URLをとして記述することurl(file:/C:/myPath/image.jpg)
です。ソース。
<fo:external-graphic src="url(file:/C:/myPath/image.jpg)"/>
<fo:external-graphic src="ss/naam.png"/>
このように私のために働きます。
変数を使用している場合、これは役立つ場合があります。
</fo:table-cell>
<fo:table-cell number-columns-spanned="5"
border="0.1pt solid gray"
padding="5pt">
<fo:block>
<fo:external-graphic
display-align="center"
content-width="338px"
content-height="290px"
src="url(file:/{$screenshot-path})">
</fo:external-graphic>
</fo:block>
</fo:table-cell>
たとえば、ApacheFOPのxls-foテンプレートで実行されます。
<fo:external-graphic src='url("src/main/resources/ima/logo.depo.gif")' />