示例#1
0
        void IPainter.PaintText(string text, Point atPoint, int pixelHeight, int argb, int spaceBetweenCharacters, FontBasePainter.TextDirection direction)
        {
            var font = GetGdiFont(pixelHeight);

            var stringFormat = new StringFormat();

            if (direction == FontBasePainter.TextDirection.VerticalDownward || direction == FontBasePainter.TextDirection.VerticalUpward)
            {
                stringFormat.FormatFlags = StringFormatFlags.DirectionVertical;
            }

            var verticalShift = 0;

            if (direction == FontBasePainter.TextDirection.VerticalUpward)
            {
                var textSize = GetTextSize(text, font);
                verticalShift = textSize.Width;
            }

            GdiGraphics.DrawString(text, font, GetBrush(argb), atPoint.X + Shift.Width, atPoint.Y + Shift.Height - verticalShift + 1f, stringFormat);
        }
示例#2
0
 void IPainter.PaintText(string text, Point atPoint, int pixelHeight, int argb, int spaceBetweenCharacters, FontBasePainter.TextDirection direction)
 {
     atPoint = new Point(atPoint.X + Shift.Width, atPoint.Y + Shift.Height);
     GetTextPainter(pixelHeight).PaintText(text, Canvas.Pixels, Canvas.Size, atPoint, ClipRect, spaceBetweenCharacters, argb, direction);
 }
示例#3
0
        void IPainter.PaintText(string text, Point atPoint, int pixelHeight, int argb, int spaceBetweenCharacters, FontBasePainter.TextDirection direction)
        {
            var state = PdfGraphics.Save();

            var font = GetPdfFont(pixelHeight);

            if (direction == FontBasePainter.TextDirection.VerticalUpward)
            {
                PdfGraphics.RotateAtTransform(-90, new XPoint(atPoint.X + Shift.Width, atPoint.Y + Shift.Height));
            }

            PdfGraphics.DrawString(text ?? "", font, GetBrush(argb), atPoint.X + Shift.Width, atPoint.Y + Shift.Height + pixelHeight);

            PdfGraphics.Restore(state);
        }