将色带应用于 PDF 中的 TIFF



• 背景 :

我们正在开发法新社到PDF工具。它涉及将AFP(高级功能处理)文件转换为PDF。

• 详细问题陈述:

我们有带有嵌入式TIFF图像的AFP文件。图像对象在函数集 45 中描述,表示得有点像这样 -

 
Image Content
 Begin Tile
  Image Encoding Parameter – TIFF LZW
   Begin Transparency Mask
      Image Encoding Parameter – G4MMR
      Image Data Elements 
   End Transparency Mask
   Image Data Elements (IDE Size 32) – 4 bands: CMYK
End Tile
End Image Content

我们希望使用 Java/iText API 将此平铺图像写入 PDF。截至目前,我们可以编写G4MMR图像。但是,我们无法将 CMYK 色带数据(蓝色)应用于此图像。

• 尝试的解决方案:

编写 G4MMR 图像的代码如下 –

 
ByteArrayOutputStream decode = saveAsTIFF(<width>,<height>,<imageByteData>);                                    
RandomAccessFileOrArray ra=new RandomAccessFileOrArray(saveAsTIFF.toByteArray());          
int pages = TiffImage.getNumberOfPages(ra); 
for(int i1 = 1; i1 <= pages; i1++){
img1 = TiffImage.getTiffImage(ra, i1);                     
}
img1.scaleAbsolute(256, 75);      
document.add(img1); 

saveAsTIFF方法在这里给出 –http://www.jpedal.org/PDFblog/2011/08/ccitt-encoding-in-pdf-files-converting-pdf-ccitt-data-into-a-tiff/如前所述,我们无法将 CMYK 4 波段图像颜色数据应用于此 G4MMR 图像。

• 技术堆栈,每个组件的版本:
1. JDK 1.6
2. itextpdf-5.1




- 乌梅什·帕塔克

您显示的 AFP 资源是使用 LZW 压缩的 TIFF CMYK 图像。此图像还使用"透明蒙版",该蒙版使用G4MMR压缩(与传统传真样式G4的编码略有不同)。

因此,图像数据已经在使用CMYK色彩空间,每个波段(C,M,Y,K)使用简单的LZW编码单独压缩,并且提取和存储为基本TIFF CMYK文件应该不会太困难。您还必须将透明度蒙版转换为 G4 或原始数据,以便在 pdf 文件中使用它来制作 CMYK 图像。

如果你想要更好的PDF输出控制,我建议你看看pdflib

您需要先

将 CMYK 色彩空间添加到图像,然后再将其添加到 PDF 文件。但是,恐怕iText可能不完全支持此功能。
您的解决方法可能是在将图像添加到 PDF 文件之前将图像转换为默认的 RGB 色彩空间,但这可能意味着图像会有一些质量损失。

相关内容

  • 没有找到相关文章

最新更新