Esempio n. 1
0
        public virtual void BackgroundColorClipTest()
        {
            PdfDocument      pdfDocument = new PdfDocument(new PdfWriter(new ByteArrayOutputStream()));
            PdfCanvas        pdfCanvas   = new _PdfCanvas_523(pdfDocument.AddNewPage());
            DrawContext      drawContext = new DrawContext(pdfDocument, pdfCanvas);
            AbstractRenderer renderer    = new DivRenderer(new Div().SetPadding(20).SetBorder(new DashedBorder(10)));

            renderer.occupiedArea = new LayoutArea(1, new Rectangle(100f, 200f, 300f, 400f));
            renderer.SetProperty(Property.BACKGROUND, new Background(new DeviceRgb(), 1, BackgroundBox.CONTENT_BOX));
            renderer.DrawBackground(drawContext);
        }
        public virtual void InlineBlockWithBigMinWidth01()
        {
            Document     dummyDocument       = CreateDocument();
            LineRenderer lineRenderer        = (LineRenderer) new LineRenderer().SetParent(dummyDocument.GetRenderer());
            Div          div                 = new Div().SetMinWidth(2000).SetHeight(100);
            DivRenderer  inlineBlockRenderer = (DivRenderer)div.CreateRendererSubTree();

            lineRenderer.AddChild(inlineBlockRenderer);
            LayoutResult result = lineRenderer.Layout(new LayoutContext(CreateLayoutArea(1000, 1000)));

            // In case there is an inline block child with large min-width, the inline block child will be force placed (not layouted properly)
            NUnit.Framework.Assert.AreEqual(LayoutResult.FULL, result.GetStatus());
            NUnit.Framework.Assert.AreEqual(0, result.GetOccupiedArea().GetBBox().GetHeight(), EPS);
            NUnit.Framework.Assert.AreEqual(true, inlineBlockRenderer.GetPropertyAsBoolean(Property.FORCED_PLACEMENT));
        }
Esempio n. 3
0
        public virtual void BlockRendererAddByIDTest()
        {
            DocumentRenderer documentRenderer = new DocumentRenderer(null);
            DivRenderer      divRenderer      = new DivRenderer(new Div());

            divRenderer.SetParent(documentRenderer);
            String id = "id5";

            divRenderer.SetProperty(Property.ID, id);
            LayoutContext layoutContext = new LayoutContext(new LayoutArea(4, new Rectangle(50, 50)));

            divRenderer.Layout(layoutContext);
            documentRenderer.GetTargetCounterHandler().PrepareHandlerToRelayout();
            NUnit.Framework.Assert.AreEqual((int?)4, TargetCounterHandler.GetPageByID(divRenderer, id));
        }
Esempio n. 4
0
        public virtual void BackgroundImageClipOriginNoRepeatTest()
        {
            PdfDocument pdfDocument = new PdfDocument(new PdfWriter(new ByteArrayOutputStream()));

            byte[]           bytes       = new byte[] { 54, 25, 47, 15, 2, 2, 2, 44, 55, 77, 86, 24 };
            PdfXObject       rawImage    = new _PdfImageXObject_544(ImageDataFactory.CreateRawImage(bytes));
            PdfCanvas        pdfCanvas   = new _PdfCanvas_555(rawImage, pdfDocument.AddNewPage());
            DrawContext      drawContext = new DrawContext(pdfDocument, pdfCanvas);
            AbstractRenderer renderer    = new DivRenderer(new Div().SetPadding(20).SetBorder(new DashedBorder(10)));

            renderer.occupiedArea = new LayoutArea(1, new Rectangle(100f, 200f, 300f, 400f));
            BackgroundImage backgroundImage = new BackgroundImage.Builder().SetImage(rawImage).SetBackgroundRepeat(new
                                                                                                                   BackgroundRepeat(BackgroundRepeat.BackgroundRepeatValue.NO_REPEAT)).SetBackgroundClip(BackgroundBox.CONTENT_BOX
                                                                                                                                                                                                         ).SetBackgroundOrigin(BackgroundBox.BORDER_BOX).Build();

            renderer.SetProperty(Property.BACKGROUND_IMAGE, backgroundImage);
            renderer.DrawBackground(drawContext);
        }
Esempio n. 5
0
        public virtual void BackgroundLinearGradientClipOriginNoRepeatTest()
        {
            PdfDocument pdfDocument = new PdfDocument(new PdfWriter(new ByteArrayOutputStream()));

            byte[]           bytes       = new byte[] { 54, 25, 47, 15, 2, 2, 2, 44, 55, 77, 86, 24 };
            PdfCanvas        pdfCanvas   = new _PdfCanvas_589(pdfDocument.AddNewPage());
            DrawContext      drawContext = new DrawContext(pdfDocument, pdfCanvas);
            AbstractRenderer renderer    = new DivRenderer(new Div().SetPadding(20).SetBorder(new DashedBorder(10)));

            renderer.occupiedArea = new LayoutArea(1, new Rectangle(100f, 200f, 300f, 400f));
            Rectangle targetBoundingBox = new Rectangle(50f, 150f, 300f, 300f);
            AbstractLinearGradientBuilder gradientBuilder = new LinearGradientBuilder().SetGradientVector(targetBoundingBox
                                                                                                          .GetLeft() + 100f, targetBoundingBox.GetBottom() + 100f, targetBoundingBox.GetRight() - 100f, targetBoundingBox
                                                                                                          .GetTop() - 100f).SetSpreadMethod(GradientSpreadMethod.PAD).AddColorStop(new GradientColorStop(ColorConstants
                                                                                                                                                                                                         .RED.GetColorValue(), 0d, GradientColorStop.OffsetType.RELATIVE)).AddColorStop(new GradientColorStop(ColorConstants
                                                                                                                                                                                                                                                                                                              .BLUE.GetColorValue(), 1d, GradientColorStop.OffsetType.RELATIVE));
            BackgroundImage backgroundImage = new BackgroundImage.Builder().SetLinearGradientBuilder(gradientBuilder).
                                              SetBackgroundRepeat(new BackgroundRepeat(BackgroundRepeat.BackgroundRepeatValue.NO_REPEAT)).SetBackgroundClip
                                                  (BackgroundBox.CONTENT_BOX).SetBackgroundOrigin(BackgroundBox.BORDER_BOX).Build();

            renderer.SetProperty(Property.BACKGROUND_IMAGE, backgroundImage);
            renderer.DrawBackground(drawContext);
        }