The problem is that GDI+ does not report that the image is CMYK. You must modify the function PdfImage.InitializeJpeg:
Code:
Elements[Keys.ColorSpace] = new PdfName("/DeviceCMYK");
Depending on the image you may also change the decoding:
Code:
Elements["/Decode"] = new PdfLiteral("[1 0 1 0 1 0 1 0]");
The problem is that this information cannot be retrieved with GDI+ (or at least I don’t know how).
I suggest you to make a hack: Introduce flags in the XImage class that you can use to decide when you must change the colorspace and decode params.
Regards
Stefan Lange