12

我可以将 JPG 图像插入带有DCTDecode过滤器的 PDF 文档。我认为图像的所有参数也应该相同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 文件中。

4

2 回答 2

7

@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 ...
于 2013-11-15T12:35:22.223 回答
4

很可能您没有解码 PNG 图像。

PDF 不直接支持 PNG。我的意思是它们不受支持 JPEG 的方式支持。

在将 PNG 嵌入 PDF 之前,您必须从 PNG 生成原始未压缩的光栅字节。如果您愿意,可以使用 Flate 或 LZW 编码器对光栅字节进行编码。

于 2013-01-08T18:35:25.023 回答