private PdfSpecialCs.Separation CreateCmykColorSpace(float c, float m, float y, float k) { float[] c0 = new float[] { 0, 0, 0, 0 }; float[] c1 = new float[] { c, m, y, k }; PdfFunction pdfFunction = new PdfFunction.Type2(new PdfArray(new float[] { 0, 1 }), null, new PdfArray(c0), new PdfArray(c1), new PdfNumber(1)); PdfSpecialCs.Separation cs = new PdfSpecialCs.Separation("iTextSpotColorCMYK", new DeviceCmyk(c, m, y, k).GetColorSpace(), pdfFunction); return(cs); }
public virtual void ColorTest07() { PdfWriter writer = new PdfWriter(destinationFolder + "colorTest07.pdf"); writer.SetCompressionLevel(CompressionConstants.NO_COMPRESSION); PdfDocument document = new PdfDocument(writer); PdfPage page = document.AddNewPage(); PdfFunction.Type4 function = new PdfFunction.Type4(new PdfArray(new float[] { 0, 1 }), new PdfArray(new float [] { 0, 1, 0, 1, 0, 1 }), "{0 0}".GetBytes(iText.IO.Util.EncodingUtil.ISO_8859_1)); PdfSpecialCs.Separation separation = new PdfSpecialCs.Separation("MyRed", new PdfDeviceCs.Rgb(), function); PdfCanvas canvas = new PdfCanvas(page); canvas.SetFillColor(new Separation(separation, 0.25f)).Rectangle(50, 500, 50, 50).Fill(); canvas.SetFillColor(new Separation(separation, 0.5f)).Rectangle(150, 500, 50, 50).Fill(); canvas.SetFillColor(new Separation(separation, 0.75f)).Rectangle(250, 500, 50, 50).Fill(); canvas.Release(); document.Close(); NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(destinationFolder + "colorTest07.pdf", sourceFolder + "cmp_colorTest07.pdf", destinationFolder, "diff_")); }
public virtual void ColourSpaceTest02() { PdfWriter writer = new PdfWriter(new ByteArrayOutputStream()); Stream @is = new FileStream(sourceFolder + "sRGB Color Space Profile.icm", FileMode.Open, FileAccess.Read); PdfADocument doc = new PdfADocument(writer, PdfAConformanceLevel.PDF_A_2B, new PdfOutputIntent("Custom", "" , "http://www.color.org", "sRGB IEC61966-2.1", @is)); PdfPage page = doc.AddNewPage(); PdfColorSpace alternateSpace = new PdfDeviceCs.Rgb(); //Tint transformation function is a dictionary PdfArray domain = new PdfArray(new float[] { 0, 1 }); PdfArray range = new PdfArray(new float[] { 0, 1, 0, 1, 0, 1 }); PdfArray C0 = new PdfArray(new float[] { 0, 0, 0 }); PdfArray C1 = new PdfArray(new float[] { 1, 1, 1 }); PdfNumber n = new PdfNumber(1); PdfFunction.Type2 type2 = new PdfFunction.Type2(domain, range, C0, C1, n); PdfColorSpace separationColourSpace = new PdfSpecialCs.Separation("separationTestFunction2", alternateSpace , type2); //Add to document page.GetResources().AddColorSpace(separationColourSpace); doc.Close(); }
public virtual void ColourSpaceTest01() { PdfWriter writer = new PdfWriter(new ByteArrayOutputStream()); Stream @is = new FileStream(sourceFolder + "sRGB Color Space Profile.icm", FileMode.Open, FileAccess.Read); PdfADocument doc = new PdfADocument(writer, PdfAConformanceLevel.PDF_A_2B, new PdfOutputIntent("Custom", "" , "http://www.color.org", "sRGB IEC61966-2.1", @is)); PdfPage page = doc.AddNewPage(); PdfColorSpace alternateSpace = new PdfDeviceCs.Rgb(); //Tint transformation function is a stream byte[] samples = new byte[] { 0x00, 0x00, 0x00, 0x01, 0x01, 0x01 }; PdfArray domain = new PdfArray(new float[] { 0, 1 }); PdfArray range = new PdfArray(new float[] { 0, 1, 0, 1, 0, 1 }); PdfArray size = new PdfArray(new float[] { 2 }); PdfNumber bitsPerSample = new PdfNumber(8); PdfFunction.Type0 type0 = new PdfFunction.Type0(domain, range, size, bitsPerSample, samples); PdfColorSpace separationColourSpace = new PdfSpecialCs.Separation("separationTestFunction0", alternateSpace , type0); //Add to document page.GetResources().AddColorSpace(separationColourSpace); doc.Close(); }
/// <summary>Makes a Color of certain color space and color value.</summary> /// <remarks> /// Makes a Color of certain color space and color value. /// If color value is set in null, all value components will be initialised with zeroes. /// </remarks> /// <param name="colorSpace">the color space to which the returned Color object relates</param> /// <param name="colorValue">the color value of the returned Color object</param> /// <returns>the created Color object.</returns> public static iText.Kernel.Colors.Color MakeColor(PdfColorSpace colorSpace, float[] colorValue) { iText.Kernel.Colors.Color c = null; bool unknownColorSpace = false; if (colorSpace is PdfDeviceCs) { if (colorSpace is PdfDeviceCs.Gray) { c = colorValue != null ? new DeviceGray(colorValue[0]) : new DeviceGray(); } else { if (colorSpace is PdfDeviceCs.Rgb) { c = colorValue != null ? new DeviceRgb(colorValue[0], colorValue[1], colorValue[2]) : new DeviceRgb(); } else { if (colorSpace is PdfDeviceCs.Cmyk) { c = colorValue != null ? new DeviceCmyk(colorValue[0], colorValue[1], colorValue[2], colorValue[3]) : new DeviceCmyk(); } else { unknownColorSpace = true; } } } } else { if (colorSpace is PdfCieBasedCs) { if (colorSpace is PdfCieBasedCs.CalGray) { PdfCieBasedCs.CalGray calGray = (PdfCieBasedCs.CalGray)colorSpace; c = colorValue != null ? new CalGray(calGray, colorValue[0]) : new CalGray(calGray); } else { if (colorSpace is PdfCieBasedCs.CalRgb) { PdfCieBasedCs.CalRgb calRgb = (PdfCieBasedCs.CalRgb)colorSpace; c = colorValue != null ? new CalRgb(calRgb, colorValue) : new CalRgb(calRgb); } else { if (colorSpace is PdfCieBasedCs.IccBased) { PdfCieBasedCs.IccBased iccBased = (PdfCieBasedCs.IccBased)colorSpace; c = colorValue != null ? new IccBased(iccBased, colorValue) : new IccBased(iccBased); } else { if (colorSpace is PdfCieBasedCs.Lab) { PdfCieBasedCs.Lab lab = (PdfCieBasedCs.Lab)colorSpace; c = colorValue != null ? new Lab(lab, colorValue) : new Lab(lab); } else { unknownColorSpace = true; } } } } } else { if (colorSpace is PdfSpecialCs) { if (colorSpace is PdfSpecialCs.Separation) { PdfSpecialCs.Separation separation = (PdfSpecialCs.Separation)colorSpace; c = colorValue != null ? new Separation(separation, colorValue[0]) : new Separation(separation); } else { if (colorSpace is PdfSpecialCs.DeviceN) { //NChannel goes here also PdfSpecialCs.DeviceN deviceN = (PdfSpecialCs.DeviceN)colorSpace; c = colorValue != null ? new DeviceN(deviceN, colorValue) : new DeviceN(deviceN); } else { if (colorSpace is PdfSpecialCs.Indexed) { c = colorValue != null ? new Indexed(colorSpace, (int)colorValue[0]) : new Indexed(colorSpace); } else { unknownColorSpace = true; } } } } else { if (colorSpace is PdfSpecialCs.Pattern) { c = new iText.Kernel.Colors.Color(colorSpace, colorValue); } else { // TODO review this. at least log a warning unknownColorSpace = true; } } } } if (unknownColorSpace) { throw new PdfException("Unknown color space."); } return(c); }
public Separation(PdfSpecialCs.Separation cs, float value) : base(cs, new float[] { value }) { }
public Separation(PdfSpecialCs.Separation cs) : this(cs, 1f) { }