예제 #1
0
        public virtual void PatternColorUncoloredSetTwiceTest()
        {
            String    name   = "patternColorUncoloredSetTwiceTest.pdf";
            PdfWriter writer = new PdfWriter(destinationFolder + name);

            writer.SetCompressionLevel(CompressionConstants.NO_COMPRESSION);
            PdfDocument document = new PdfDocument(writer);
            PdfPage     page     = document.AddNewPage();
            PdfCanvas   canvas   = new PdfCanvas(page);

            PdfPattern.Tiling circle = new PdfPattern.Tiling(15, 15, 10, 20, false);
            new PdfPatternCanvas(circle, document).Circle(7.5f, 7.5f, 2.5f).Fill().Release();
            PdfPattern.Tiling line = new PdfPattern.Tiling(5, 10, false);
            new PdfPatternCanvas(line, document).SetLineWidth(1).MoveTo(3, -1).LineTo(3, 11).Stroke().Release();
            PatternColor patternColorCircle = new PatternColor(circle, ColorConstants.RED);

            float[] cyan    = new float[] { 1, 0, 0, 0 };
            float[] magenta = new float[] { 0, 1, 0, 0 };
            PdfSpecialCs.UncoloredTilingPattern uncoloredTilingCmykCs = new PdfSpecialCs.UncoloredTilingPattern(new PdfDeviceCs.Cmyk
                                                                                                                    ());
            PatternColor patternColorLine = new PatternColor(line, uncoloredTilingCmykCs, magenta);

            canvas.SetFillColor(patternColorCircle);
            canvas.Rectangle(36, 696, 126, 126).Fill();
            canvas.SetFillColor(patternColorCircle);
            canvas.Rectangle(180, 696, 126, 126).Fill();
            canvas.SetFillColor(patternColorLine);
            canvas.Rectangle(36, 576, 126, 126).Fill();
            patternColorLine.SetColorValue(cyan);
            canvas.SetFillColor(patternColorLine);
            canvas.Rectangle(180, 576, 126, 126).Fill();
            // this case will be removed when deprecated method is removed
            patternColorLine.SetPattern(circle);
            canvas.SetFillColor(patternColorLine);
            canvas.Rectangle(360, 696, 126, 126).Fill();
            byte[] pageContentStreamBytes = canvas.GetContentStream().GetBytes();
            canvas.Release();
            document.Close();
            String contentStreamString = iText.IO.Util.JavaUtil.GetStringForBytes(pageContentStreamBytes, System.Text.Encoding
                                                                                  .ASCII);
            int p1Count = CountSubstringOccurrences(contentStreamString, "/P1 scn");
            int p2Count = CountSubstringOccurrences(contentStreamString, "/P2 scn");

            NUnit.Framework.Assert.AreEqual(3, p1Count);
            NUnit.Framework.Assert.AreEqual(2, p2Count);
            NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(destinationFolder + name, sourceFolder +
                                                                             "cmp_" + name, destinationFolder));
        }