如何插入透明PNG在PDF?(How to insert transparent PNG in PD

2019-08-06 02:34发布

我可以插入JPG图像与PDF文档DCTDecode过滤器。 我认为,所有的参数应该是相同的PNG图像也一样,除了它应该是过滤FlateDecode 。 然而,当我尝试插入PNG使用相同的参数,PNG图像是不是他的PDF文档中可见。

更新:我来的结论,即PDF文件应包括:

1 0 obj <<
/Type /XObject
/Subtype /Image
/Width 512
/Height 512
/BitsPerComponent 8
/ColorSpace /DeviceRGB
/SMask 9 0 R
/Length 134753    
/Filter /FlateDecode
>>
stream
PNG_RAW DATA
endstream
endobj
9 0 obj <<
/Type /XObject
/Subtype /Image
/Width 512
/Height 512
/BitsPerComponent 8
/ColorSpace /DeviceGray
/Length 12087     
/Filter /FlateDecode
>>
stream
ALPHA_PIXELS
endstream
endobj

但我怎么能分出PNG原始数据和alpha pixels通过ImageMagick ? 换句话说,什么ImageMagick命令可以产生PDF_RAW_DATAALPHA_PIXELS插入到PDF文件。

Answer 1:

@Bobrovsky

下面是一个例子: http://pd4ml.com/i/pd4ml18130.pdf

为了更准确的:你不能用它没有绝对的操作嵌入PNG。 您将需要一个PNG拆分部分:IDAT(图像数据)变为PDF的字节流不变,PLTE(调色板) - 以色彩空间定义,ICCP可选择去颜色配置对象。

一个对象字典可能看起来像:

<<
/Filter /FlateDecode
/Type /XObject
/Subtype /Image
/BitsPerComponent 8
/Length 1277
/Height 250
/Width 250
/DecodeParms <<
    /BitsPerComponent 8
    /Predictor 15
    /Columns 250
    /Colors 1
>>
/ColorSpace [/Indexed /DeviceRGB 1 <1989d1ffffff>]
>>
stream
... IDAT bytes ...


Answer 2:

最可能的是你没有解码PNG图像。

PNG格式不直接支持PDF格式。 我的意思是,他们不是在方式支持JPEG格式支持。

你必须将它们嵌入到PDF之前,从生产原料的PNG文件解压缩光栅字节。 如果你愿意,你可以编码使用Flate或LZW编码器光栅字节。



文章来源: How to insert transparent PNG in PDF?