使用iText将外部图像添加到PDF

Mik*_*keQ 7 pdf image itext

我无法弄清楚如何使用iText将外部图像(由URL引用)添加到PDF.这种事可能吗?

7.1.5中的PDF规范说明您应该能够通过使用URL规范通过URL引用PDF.这是我到目前为止所得到的:

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);
Run Code Online (Sandbox Code Playgroud)

我知道我仍然需要确保添加色彩空间和东西,但我现在主要关心的是将这个图像放入文档的正文中.我无法弄清楚如何做到这一点......似乎我无法获得对PdfPage或资源字典或任何东西的引用.这可能使用iText吗?

作为旁注,如果在视图尝试加载图像时我将收到安全警告,则此练习无效.有谁知道是否是这种情况?

小智 7

外部内容在PDF规范中描述,但几乎没有PDF处理器确实支持它们.到目前为止,Acrobat 9已经支持它,但我对此功能非常谨慎:您的客户或用户可能无法看到引用的内容.