2013-04-02 2 views
0

Im пытается добавить изображение с URL-адреса в мой pdf. Код:Добавить изображение в PDF из URL-адреса?

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

Но это не работает. Что может быть неправильным?

+2

Какая ошибка? –

+1

Вы попробовали загрузить его сначала в папку temp, а затем добавили в pdf? – igr

ответ

2

Это известная проблема при загрузке .gif из удаленного места с помощью iText.

Исправить это будет загрузка .gif с помощью Java (не через метод getInstance класса изображения iText) и использование загруженных байтов в методе getInstance класса Image.

Редактировать: Я пошел вперед и исправил удаленный gif-загрузку в iText, он включен в iText 5.4.1 и более поздних версиях.

+0

Нет, похоже, не работает: 'URL url = новый URL (" http://blog.phonehouse.es/wp-content/uploads/2013/01/Google.jpg "); \t \t \t \t InputStream in = new BufferedInputStream (url.openStream()); \t \t \t \t ByteArrayOutputStream out = new ByteArrayOutputStream(); \t \t \t \t байт [] buf = новый байт [1024]; \t \t \t \t int n = 0; \t \t \t \t в то время как (-1 = (п = in.read (BUF))!) \t \t \t \t { \t \t \t \t out.write (BUF, 0, п); \t \t \t \t} \t \t \t \t out.close(); \t \t \t \t in.close(); \t \t \t \t байт [] response = out.toByteArray(); \t \t \t \t Изображение изображения = изображение.getInstance (response); ' – riahc3

+0

Я apoligize как его довольно трудно редактировать здесь/введите правильно. – riahc3

+0

Я действительно пошел вперед и исправил это в iText: http://sourceforge.net/p/itext/code/5741/ –

-3

Способ, которым вы использовали для добавления изображений в IText PDF, - это способ, который используется для добавления локальных файлов, а не URL-адресов.

Для URL-адресов этот способ решит проблему.

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

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

Вы можете затем продолжить, чтобы добавить этот image к некоторым ранее открытой document, используя document.add(image).

Для получения дополнительной информации, пожалуйста, посетите [Java IText: Image docs].

+0

Объяснение сделало бы это ответ. – Mogsdad

+0

Это не дает ответа на вопрос. Когда у вас будет достаточно [репутации] (http://stackoverflow.com/help/whats-reputation), вы сможете [прокомментировать любое сообщение] (http://stackoverflow.com/help/privileges/comment); вместо этого [предоставить ответы, которые не требуют разъяснений у аськи) (http://meta.stackexchange.com/questions/214173/why-do-need-50-reputation-to-comment-what-can- я-делать-вместо этого). - [Из обзора] (/ review/low-quality-posts/12021099) –

+0

Даже если ответ имеет только код, * он по-прежнему считается ответом. * Не говорите, что это не ответ, а затем попытайтесь удалить его @DebosmitRay – Zizouz212

Смежные вопросы