1

• バックグラウンド :

AFP to PDF ツールを開発しています。これには、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




-- ウメッシュ・パタク

4

2 に答える 2

2

表示しているAFPリソースは、LZWで圧縮されたTIFFCMYK画像です。この画像は、G4MMR(従来のFaxスタイルのG4とはわずかに異なるエンコーディング)で圧縮された「透明マスク」も使用しています。

したがって、画像データはすでにCMYK色空間を使用しており、各バンド(C、M、Y、K)は単純なLZWエンコーディングを使用して単独で圧縮され、基本的なTIFFCMYKファイルとして抽出して保存するのはそれほど難しくありません。また、透明マスクをG4または生データに変換してPDFファイルで使用し、CMYK画像を作成する必要があります。

より良いPDF出力制御が必要な場合は、pdflibをご覧になることをお勧めします

于 2012-09-07T08:54:38.473 に答える
0

PDF ファイルに追加する前に、画像に CMYK 色空間を追加する必要があります。ただし、これは iText で完全にサポートされていない可能性があります
回避策として、画像を PDF ファイルに追加する前にデフォルトの RGB 色空間に変換することもできますが、これはおそらく画像の品質がいくらか低下することを意味します。

于 2012-08-17T13:24:31.263 に答える