Добавление внешних изображений в PDF с помощью iText

StackOverflow https://stackoverflow.com/questions/1833222

  •  11-09-2019
  •  | 
  •  

Вопрос

Мне не удается понять, как добавить внешнее изображение (на которое указывает URL-адрес) в PDF-файл с помощью iText.Возможно ли такое?

В спецификации PDF в версии 7.1.5 говорится, что у вас должна быть возможность ссылаться на PDF-файл через URL-адрес, используя спецификацию URL-адреса.Это то, что у меня есть до сих пор:

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

Я знаю, что мне все еще нужно убедиться, что цветовое пространство добавлено и все такое, но моя главная забота сейчас — это вставить это изображение в тело документа.Я не могу понять, как это сделать...кажется, я не могу получить ссылку на PdfPage, словарь ресурсов или что-то еще.Возможно ли это с помощью iText?

В качестве примечания: это упражнение бесполезно, если мне будет выдано предупреждение системы безопасности, когда представление попытается загрузить изображение.Кто-нибудь знает, так ли это?

Это было полезно?

Решение

Внешний контент описан в спецификации PDF, но практически ни один PDF-процессор его не поддерживает.На данный момент Acrobat 9 поддерживает эту функцию, но я был бы очень осторожен с этой функцией:Ваши клиенты или пользователи могут не видеть указанный контент.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top