3 votes

Ajouter une image au PDF à partir d'une URL ?

J'essaie d'ajouter une image d'une adresse URL à mon PDF. Le code est le suivant :

Image image=Image.getInstance("http://www.google.com/intl/en_ALL/images/logos/images_logo_lg.gif");
image.scaleToFit((float)200.0, (float)49.0);
paragraph.add(image);

Mais cela ne fonctionne pas. Qu'est-ce qui peut bien se passer ?

2voto

Michaël Demey Points 1729

Il s'agit d'un problème connu lors du chargement de fichiers .gif à partir d'un emplacement distant avec iText.

Une solution serait de télécharger le fichier .gif avec Java (et non via la méthode getInstance de la classe Image d'iText) et d'utiliser les octets téléchargés dans la méthode getInstance de la classe Image.

Éditer : J'ai pris les devants et corrigé le chargement des gif à distance dans iText, il est inclus à partir de iText 5.4.1 et plus.

0voto

Saljith Kj Points 27

L'ajout d'une image dans le PDF Itext n'est pas possible via l'URL. La seule façon d'ajouter une image dans le PDF est de télécharger toutes les images dans le répertoire local et d'appliquer le code ci-dessous.

String photoPath = Environment.getExternalStorageDirectory() + "/abc.png";
            BitmapFactory.Options options = new BitmapFactory.Options();
            options.inSampleSize = 8;
            final Bitmap b = BitmapFactory.decodeFile(photoPath, options);

            ByteArrayOutputStream stream = new ByteArrayOutputStream();
            Bitmap.createScaledBitmap(b, 10, 10, false);
            b.compress(Bitmap.CompressFormat.PNG, 30, stream);
            Image img = null;
            byte[] byteArray = stream.toByteArray();
            try {
                img = Image.getInstance(byteArray);
            } catch (BadElementException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }

-3voto

La méthode que vous avez utilisée pour ajouter des images à IText PDF est celle qui est utilisée pour ajouter des fichiers locaux, et non des URL.

Pour les URL, cette façon de faire résoudra le problème.

String imageUrl = "http://www.google.com/intl/en_ALL/" 
                  + "images/logos/images_logo_lg.gif";

Image image = Image.getInstance(new URL(imageUrl));

Vous pouvez ensuite ajouter ceci image à un endroit précédemment ouvert document en utilisant document.add(image) .

Pour de plus amples informations, veuillez consulter le site [ Java IText : Image docs ].

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X