7

我无法弄清楚如何使用 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);

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

附带说明一下,如果在视图尝试加载图像时向我显示安全警告,则此练习毫无用处。有谁知道是不是这样?

4

1 回答 1

7

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

于 2009-12-04T12:24:16.850 回答