Beispiel #1
0
        public void Badge_CornerTest()
        {
            ScryberBadgeStyle target = new ScryberBadgeStyle();

            //Default

            Corner expected = Corner.BottomRight;

            Assert.AreEqual(expected, target.Corner);

            //Set value

            expected = Corner.BottomLeft;
            Corner actual;

            target.Corner = expected;
            actual        = target.Corner;
            Assert.AreEqual(expected, actual);

            // Change Value

            expected      = Corner.TopRight;
            target.Corner = expected;
            actual        = target.Corner;
            Assert.AreEqual(expected, actual);

            //Remove value

            expected = Corner.BottomRight;
            target.RemoveCorner();
            actual = target.Corner;
            Assert.AreEqual(expected, actual);
        }
Beispiel #2
0
        public void Badge_YOffsetTest()
        {
            ScryberBadgeStyle target = new ScryberBadgeStyle();

            // Default value

            PDFUnit expected = ScryberBadgeStyle.DefaultYOffset;
            PDFUnit actual   = target.YOffset;

            Assert.AreEqual(expected, actual);

            // Set Value

            expected       = 20;
            target.YOffset = expected;
            actual         = target.YOffset;
            Assert.AreEqual(expected, actual);

            // Change Value

            expected       = new PDFUnit(100, PageUnits.Points);
            target.YOffset = expected;
            actual         = target.YOffset;
            Assert.AreEqual(expected, actual);

            // Remove Value

            expected = ScryberBadgeStyle.DefaultYOffset;
            target.RemoveYOffset();
            actual = target.YOffset;
            Assert.AreEqual(expected, actual);
        }
Beispiel #3
0
        public void Badge_ConstructorTest()
        {
            ScryberBadgeStyle target = new ScryberBadgeStyle();

            Assert.IsNotNull(target);
            Assert.AreEqual(StyleKeys.BadgeItemKey, target.ItemKey);
        }
Beispiel #4
0
        public void Badge_DisplayOptionTest()
        {
            ScryberBadgeStyle target = new ScryberBadgeStyle();

            //Default Value

            BadgeType expected = ScryberBadgeStyle.DefaultDisplayOption;

            Assert.AreEqual(expected, target.DisplayOption);

            //Set value

            expected = BadgeType.WhiteOnBlack;
            BadgeType actual;

            target.DisplayOption = expected;
            actual = target.DisplayOption;
            Assert.AreEqual(expected, actual);

            // Change Value

            expected             = BadgeType.BlackOnWhite;
            target.DisplayOption = expected;
            actual = target.DisplayOption;
            Assert.AreEqual(expected, actual);

            //Remove value

            expected = ScryberBadgeStyle.DefaultDisplayOption;
            target.RemoveDisplayOption();
            actual = target.DisplayOption;
            Assert.AreEqual(expected, actual);
        }
Beispiel #5
0
        private void RegisterBadgeData(PDFLayoutContext context)
        {
            _outputbadge = this.PageOwner.ShowBadge;

            if (!_outputbadge)
            {
                return;
            }

            ScryberBadgeStyle style;

            if (!this.FullStyle.TryGetItem(StyleKeys.BadgeItemKey, out style))
            {
                style = new ScryberBadgeStyle();
            }


            //get any existing badge resource registered in the document

            Document doc = context.DocumentLayout.DocumentComponent;

            string rsrcName = BadgeResourceStem;

            if (style.DisplayOption == BadgeType.BlackOnWhite)
            {
                rsrcName = rsrcName + BlackOnWhiteResourceName;
            }
            else if (style.DisplayOption == BadgeType.WhiteOnBlack)
            {
                rsrcName = rsrcName + WhiteOnBlackResourceName;
            }
            else if (style.DisplayOption == BadgeType.Environment)
            {
                rsrcName = rsrcName + EnvironmentBadgeName;
            }

            _badgexobj = doc.GetImageResource(rsrcName, this.PageOwner, false);


            if (null == _badgexobj)
            {
                //Document does not have a previous badge registed, so need to register it now.
                System.Resources.ResourceManager mgr = new System.Resources.ResourceManager("Scryber.Components.Properties.Resources", typeof(Page).Assembly);

                System.Drawing.Bitmap bmp;
                if (style.DisplayOption == BadgeType.BlackOnWhite)
                {
                    bmp = mgr.GetObject(BlackOnWhiteResourceName) as System.Drawing.Bitmap;
                }
                else if (style.DisplayOption == BadgeType.WhiteOnBlack)
                {
                    bmp = mgr.GetObject(WhiteOnBlackResourceName) as System.Drawing.Bitmap;
                }
                else
                {
                    bmp = mgr.GetObject(EnvironmentBadgeName) as System.Drawing.Bitmap;
                }

                PDFImageData data = PDFImageData.LoadImageFromBitmap(rsrcName, bmp, false);

                string name = doc.GetIncrementID(PDFObjectTypes.ImageXObject);

                _badgexobj = PDFImageXObject.Load(data, name);
                doc.SharedResources.Add(_badgexobj);
            }

            //Make sure the badge is registered with the page too
            _badgexobj.RegisterUse(this.Resources, this.PageOwner);


            // calculate the position based on the X and Y Offset plus the corners.
            _badgePosition = new PDFPoint(style.XOffset, style.YOffset);
            _badgeSize     = new PDFSize(_badgexobj.ImageData.DisplayWidth, _badgexobj.ImageData.DisplayHeight);
            PDFSize pageSize = this.Size;

            switch (style.Corner)
            {
            default:
            case Corner.TopLeft:
                //Do Nothing
                break;

            case Corner.TopRight:
                _badgePosition.X = (pageSize.Width - _badgePosition.X) - _badgeSize.Width;
                break;

            case Corner.BottomRight:
                _badgePosition.X = (pageSize.Width - _badgePosition.X) - _badgeSize.Width;
                _badgePosition.Y = (pageSize.Height - _badgePosition.Y) - _badgeSize.Height;
                break;

            case Corner.BottomLeft:
                _badgePosition.Y = (pageSize.Height - _badgePosition.Y) - _badgeSize.Height;
                break;
            }
        }