Question

Je vais avoir du mal à comprendre comment ajouter une image externe (référencée par une URL) vers un fichier PDF en utilisant iText. Est-ce ce genre de chose possible?

La spécification PDF 7.1.5 dit que vous devriez être en mesure de faire référence à un fichier PDF via une URL en utilisant une spécification d'URL. Voilà ce que j'ai à ce jour:

PdfFileSpecification pdfSpec = 
    PdfFileSpecification.url(writer, "http://www.someurl.com/test.jpg");

StringBufferInputStream sbis = new StringBufferInputStream("");   
PdfStream dict = new PdfStream(sbis, writer);
dict.put(PdfName.FILTER, PdfName.DCTDECODE)
dict.put(PdfName.TYPE, PdfName.XOBJECT);
dict.put(PdfName.SUBTYPE, PdfName.IMAGE);
dict.put(PdfName.WIDTH, new PdfNumber(100));
dict.put(PdfName.HEIGHT, new PdfNumber(100));
dict.put(PdfName.BITSPERCOMPONENT, new PdfNumber(8));
dict.put(PdfName.LENGTH, new PdfNumber(0));
dict.put(PdfName.F, pdfSpec);

PdfIndirectObject img = writer.addToBody(dict);

Je sais que je dois encore vous assurer que l'espace de couleur est ajoutée et d'autres choses, mais ma principale préoccupation est en ce moment en fait obtenir cette image dans le corps du document. Je ne peux pas comprendre comment faire ... il semble que je ne peux pas obtenir une référence à un PdfPage ou les ressources dictionnaire ou quoi que ce soit. Est-ce possible en utilisant iText?

Comme une note de côté, cet exercice est inutile si je vais être présenté avec un avertissement de sécurité lorsque la vue essaie d'aller charger l'image. Est-ce que quelqu'un sait si tel est le cas?

Était-ce utile?

La solution

Le contenu externe est décrit dans la spécification PDF, mais presque aucun processeur PDF ne les supporte effectivement. Maintenant Acrobat 9 prend en charge, mais je serais très prudent avec cette fonctionnalité: Vos clients ou les utilisateurs peuvent ne pas être en mesure de voir le contenu référencé.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top