2012-08-16 3 views
1

• 배경 :PDF의 TIFF에 색상 대역 적용

PDF 도구로 AFP를 개발 중입니다. AFP (Advanced Function Processing) 파일을 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




-

답변

0

당신은 CMYK 색 공간을 추가 할 필요가 Umesh Pathak를 이미지를 PDF 파일에 추가하기 전에 이미지에 추가하십시오. 그러나 나는이 두려움이 might not be fully supported in iText입니다.
해결 방법은 이미지를 PDF 파일에 추가하기 전에 이미지를 기본 RGB 색상 공간으로 변환하는 것이지만 이미지에 약간의 품질 손실이 있음을 의미합니다.

2

보여주는 AFP 리소스는 LZW로 압축 된 TIFF CMYK 이미지입니다. 이 이미지는 또한 G4MMR (기존 팩스 스타일 G4와 약간 다른 인코딩)으로 압축 된 "투명 마스크"를 사용합니다.

이미지 데이터가 이미 CMYK 색상 공간을 사용하고 있으므로 각 밴드 (C, M, Y, K)는 단순한 LZW 인코딩을 사용하여 압축되며 기본 TIFF CMYK 파일로 추출 및 저장하기가 너무 어려워서는 안됩니다. 또한 투명도 마스크를 G4 또는 원시 데이터로 변환하여 pdf 파일에서 사용하여 CMYK 이미지를 작성해야합니다. 당신은 더 나은 PDF 출력 제어를 원하는 경우

, 나는 당신이 어떻게 LZW를 암호화 이미지를 해독하는 데 pdflib

+0

를 살펴 보시기 바랍니다? – UmeshPathak

+0

죄송합니다. LZW 인코딩을 의미 할 때 LZW 암호화를 사용했습니다 (답변을 편집했습니다). 간단한 LZW 코덱을 사용해야합니다. 또 다른 옵션은 libtiff를 사용하는 것입니다 (자바 바인딩이 있는지는 모르겠지만). 만약 디코딩하지 않고 각 밴드를 저장할 수있는 TIFFWriteRawStrip 메소드를 노출시키는 방법입니다. 그런 식으로 가고 싶다면 * 처럼 –