2016-12-08 5 views
0

Je pdf de l'analyse syntaxique html avec ITextRenderer comme suit:Comment obtenir une image du répertoire local sur un pdf créé avec ITextRenderer?

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(); 
} 

Maintenant, si le fichier html contient un chemin d'accès local à une image, il ne montre pas dans le pdf. Cependant, si la valeur src de la balise img est une URL vers une image en ligne, cela fonctionne.

Comme suit: ne montre pas sur le pdf:

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

N'affiche correctement le pdf:

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

Le chemin vers le fichier local est correct, car il montre la image si je copie coller ce chemin vers mon navigateur web par exemple.

Comment l'obtenir à afficher sur le pdf?

MISE À JOUR: Tout est en cours d'exécution dans une application Web JSF/Primefaces sur un serveur d'applications WildFly10. Il semble donc que les chemins directs vers un système de fichiers ne fonctionneront pas. Ensuite, quel répertoire dans la guerre dois-je utiliser pour utiliser des ressources statiques, telles que cette image. Il est actuellement en webapp/resources/images.

Répondre

0

Voici comment procéder lorsque vous utilisez JSF2.0 ou plus récent, qui a le composant <h:graphicImage>.

J'ai l'image myimage.png dans le dossier webapp/resources/images/.

Maintenant, j'ajouter le composant comme suit:

<h:graphicImage library="images" name="myimage.png" /> 

maintenant dans le navigateur, j'inspectée cet élément pour obtenir l'URL et inséré cette URL comme valeur de src -attribut dans le <img> -tag comme suit:

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

Et voilà! Maintenant, j'utilise une image statique avec une URL dans le modèle html, qui sera analysé comme le dit pdf et l'image fonctionne également dans le pdf. J'espère que cette astuce aide quelqu'un.