2016-12-08 4 views
0

次のように私はITextRendererでHTMLからPDFファイルを解析しています:ITextRendererで作成したpdfのローカルディレクトリからイメージを取得するには?

private void createPdf(File file, String content) throws IOException, DocumentException { 
     OutputStream os = new FileOutputStream(file); 
      content = tidyUpHTML(content); 
      ITextRenderer renderer = new ITextRenderer(); 
      renderer.setDocumentFromString(content); 
      renderer.layout(); 
      renderer.createPDF(os); 
     os.close(); 
} 

、HTMLは画像へのローカルパスが含まれている場合、それがPDFで表示されません。ただし、imgタグのsrc-valueがオンラインの画像へのURLであれば正常に動作します。次のとおり

:PDFファイルに正しく表示されてい

<img src="C:\path\to\image\image.png" /> 

: は、PDFに表示されません

<img src="http://flagpedia.net/data/currency/jpy/100jpy.jpg" /> 

それが示すように、ローカルファイルへのパスは、正しいですそのパスを私のウェブブラウザに貼り付けると画像が表示されます。

pdfに表示するにはどうすればいいですか?

UPDATE:これはすべて、WildFly10アプリケーションサーバー上のJSF/Primefaces Webアプリケーションで実行されています。したがって、ファイルシステムへの直接のパスは機能しません。次に、このイメージのような静的リソースを使用するために戦争のどのディレクトリを使用すべきですか。現在はwebapp/resources/imagesです。

答えて

0

JSF2.0以降(<h:graphicImage>のコンポーネントを使用している場合)の操作方法は次のとおりです。

私は画像myimage.pngwebapp/resources/images/というフォルダに持っています。次のように

今私は、コンポーネントを追加します。

ブラウザで今すぐ
<h:graphicImage library="images" name="myimage.png" /> 

私は、URLを取得するには、その要素を検査し、次のように<img> -tagでsrc -attributeの値としてそのURLを挿入します:

<img src="http://localhost:8080/myproject//javax.faces.resource/myimage.png.xhtml?ln=images"/> 

そしてvoila!今、私はHTMLテンプレートにurlを持つ静的なイメージを使用しています。このテンプレートは上記のpdfとして解析され、イメージはpdfでも動作します。このトリックが誰かを助けることを願っています。

関連する問題