Добавление внешних изображений в PDF с помощью iText - PullRequest
6 голосов
/ 02 декабря 2009

У меня проблемы с выяснением того, как добавить внешнее изображение (на которое ссылается 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?

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

1 Ответ

6 голосов
/ 04 декабря 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...