示例#1
0
        public virtual void ColorCheckTest2()
        {
            String       outPdf = destinationFolder + "pdfA2b_colorCheckTest2.pdf";
            String       cmpPdf = cmpFolder + "cmp_pdfA2b_colorCheckTest2.pdf";
            PdfWriter    writer = new PdfWriter(outPdf);
            PdfADocument doc    = new PdfADocument(writer, PdfAConformanceLevel.PDF_A_2B, null);

            float[] whitePoint            = new float[] { 0.9505f, 1f, 1.089f };
            float[] gamma                 = new float[] { 2.2f, 2.2f, 2.2f };
            float[] matrix                = new float[] { 0.4124f, 0.2126f, 0.0193f, 0.3576f, 0.7152f, 0.1192f, 0.1805f, 0.0722f, 0.9505f };
            PdfCieBasedCs.CalRgb  calRgb  = new PdfCieBasedCs.CalRgb(whitePoint, null, gamma, matrix);
            PdfCieBasedCs.CalGray calGray = new PdfCieBasedCs.CalGray(whitePoint, null, 2.2f);
            PdfCanvas             canvas  = new PdfCanvas(doc.AddNewPage());

            canvas.GetResources().SetDefaultRgb(calRgb);
            canvas.GetResources().SetDefaultGray(calGray);
            String  shortText = "text";
            PdfFont font      = PdfFontFactory.CreateFont(sourceFolder + "FreeSans.ttf", true);

            canvas.SetFontAndSize(font, 12);
            canvas.SetFillColor(ColorConstants.RED).BeginText().ShowText(shortText).EndText();
            canvas.SetFillColor(DeviceGray.GRAY).BeginText().ShowText(shortText).EndText();
            doc.Close();
            CompareResult(outPdf, cmpPdf);
        }
示例#2
0
 public virtual void ColorCheckTest1()
 {
     NUnit.Framework.Assert.That(() => {
         PdfWriter writer             = new PdfWriter(new MemoryStream());
         Stream @is                   = new FileStream(sourceFolder + "sRGB Color Space Profile.icm", FileMode.Open, FileAccess.Read);
         PdfOutputIntent outputIntent = new PdfOutputIntent("Custom", "", "http://www.color.org", "sRGB IEC61966-2.1"
                                                            , @is);
         PdfADocument doc            = new PdfADocument(writer, PdfAConformanceLevel.PDF_A_2B, outputIntent);
         float[] whitePoint          = new float[] { 0.9505f, 1f, 1.089f };
         float[] gamma               = new float[] { 2.2f, 2.2f, 2.2f };
         float[] matrix              = new float[] { 0.4124f, 0.2126f, 0.0193f, 0.3576f, 0.7152f, 0.1192f, 0.1805f, 0.0722f, 0.9505f };
         PdfCieBasedCs.CalRgb calRgb = new PdfCieBasedCs.CalRgb(whitePoint, null, gamma, matrix);
         PdfCanvas canvas            = new PdfCanvas(doc.AddNewPage());
         canvas.GetResources().SetDefaultCmyk(calRgb);
         canvas.SetFillColor(new DeviceCmyk(0.1f, 0.1f, 0.1f, 0.1f));
         canvas.MoveTo(doc.GetDefaultPageSize().GetLeft(), doc.GetDefaultPageSize().GetBottom());
         canvas.LineTo(doc.GetDefaultPageSize().GetRight(), doc.GetDefaultPageSize().GetBottom());
         canvas.LineTo(doc.GetDefaultPageSize().GetRight(), doc.GetDefaultPageSize().GetTop());
         canvas.Fill();
         doc.Close();
     }
                                 , NUnit.Framework.Throws.InstanceOf <PdfAConformanceException>().With.Message.EqualTo(MessageFormatUtil.Format(PdfAConformanceException.COLOR_SPACE_0_SHALL_HAVE_1_COMPONENTS, PdfName.DefaultCMYK.GetValue(), 4)))
     ;
 }
示例#3
0
 public CalRgb(PdfCieBasedCs.CalRgb cs, float[] value)
     : base(cs, value)
 {
 }
示例#4
0
        /// <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);
        }
示例#5
0
 public CalRgb(PdfCieBasedCs.CalRgb cs)
     : this(cs, new float[cs.GetNumberOfComponents()])
 {
 }