예제 #1
0
        ////////////////////////////////////////////////////////////////////
        /// <summary>
        ///     Create new PdfTilingPattern class with weave pattern.
        /// </summary>
        /// <param name="Document">Current PDF document.</param>
        /// <param name="Scale">Scale factor</param>
        /// <param name="Background">Background color.</param>
        /// <param name="Horizontal">Horizontal line color.</param>
        /// <param name="Vertical">Vertical line color.</param>
        /// <returns>PDF tiling pattern</returns>
        /// <remarks>
        ///     <para>
        ///         The pattern in a square with one user unit side.
        ///     </para>
        ///     <para>
        ///         It is made of horizontal and vertical rectangles.
        ///     </para>
        /// </remarks>
        ////////////////////////////////////////////////////////////////////
        public static PdfTilingPattern SetWeavePattern
        (
            PdfDocument Document,
            double Scale,
            Color Background,
            Color Horizontal,
            Color Vertical
        )
        {
            const double RectSide1 = 4.0 / 6.0;
            const double RectSide2 = 2.0 / 6.0;
            const double LineWidth = 0.2 / 6.0;
            const double HalfWidth = 0.5 * LineWidth;

            var Pattern = new PdfTilingPattern(Document);

            Pattern.SetScale(Scale);
            Pattern.SaveGraphicsState();
            Pattern.SetTileBox(1.0);
            Pattern.SetColorNonStroking(Background);
            Pattern.DrawRectangle(0.0, 0.0, 1.0, 1.0, PaintOp.Fill);
            Pattern.SetLineWidth(LineWidth);
            Pattern.SetColorStroking(Background);

            Pattern.SetColorNonStroking(Horizontal);
            Pattern.DrawRectangle(HalfWidth, 1.0 / 6.0 + HalfWidth, RectSide1 - LineWidth, RectSide2 - LineWidth,
                                  PaintOp.CloseFillStroke);
            Pattern.DrawRectangle(-(3.0 / 6.0 - HalfWidth), 4.0 / 6.0 + HalfWidth, RectSide1 - LineWidth,
                                  RectSide2 - LineWidth, PaintOp.CloseFillStroke);
            Pattern.DrawRectangle(3.0 / 6.0 + HalfWidth, 4.0 / 6.0 + HalfWidth, RectSide1 - LineWidth,
                                  RectSide2 - LineWidth, PaintOp.CloseFillStroke);

            Pattern.SetColorNonStroking(Vertical);
            Pattern.DrawRectangle(4.0 / 6.0 + HalfWidth, HalfWidth, RectSide2 - LineWidth, RectSide1 - LineWidth,
                                  PaintOp.CloseFillStroke);
            Pattern.DrawRectangle(1.0 / 6.0 + HalfWidth, -(3.0 / 6.0 - HalfWidth), RectSide2 - LineWidth,
                                  RectSide1 - LineWidth, PaintOp.CloseFillStroke);
            Pattern.DrawRectangle(1.0 / 6.0 + HalfWidth, 3.0 / 6.0 + HalfWidth, RectSide2 - LineWidth,
                                  RectSide1 - LineWidth, PaintOp.CloseFillStroke);

            Pattern.RestoreGraphicsState();
            return(Pattern);
        }
예제 #2
0
        ////////////////////////////////////////////////////////////////////
        // Create new PdfTilingPattern class with brick paatern
        // The pattern in a square with one user unit side.
        // The bottom half is one brick. The top half is two half bricks.
        // Arguments:
        // Scale the pattern to your requierments.
        // Stroking color is the mortar color.
        // Nonstrokink color is th brick color.
        ////////////////////////////////////////////////////////////////////

        public static PdfTilingPattern SetBrickPattern
        (
            PdfDocument Document,
            Double Scale,
            Color Stroking,
            Color NonStroking
        )
        {
            PdfTilingPattern Pattern = new PdfTilingPattern(Document);

            Pattern.SetScale(Scale);
            Pattern.SaveGraphicsState();
            Pattern.SetLineWidth(0.05);
            Pattern.SetColorStroking(Stroking);
            Pattern.SetColorNonStroking(NonStroking);
            Pattern.DrawRectangle(0.025, 0.025, 0.95, 0.45, PaintOp.CloseFillStroke);
            Pattern.DrawRectangle(-0.475, 0.525, 0.95, 0.45, PaintOp.CloseFillStroke);
            Pattern.DrawRectangle(0.525, 0.525, 0.95, 0.45, PaintOp.CloseFillStroke);
            Pattern.RestoreGraphicsState();
            return(Pattern);
        }
        ////////////////////////////////////////////////////////////////////
        /// <summary>
        /// Create new PdfTilingPattern class with weave pattern.
        /// </summary>
        /// <param name="Document">Current PDF document.</param>
        /// <param name="Scale">Scale factor</param>
        /// <param name="Background">Background color.</param>
        /// <param name="Horizontal">Horizontal line color.</param>
        /// <param name="Vertical">Vertical line color.</param>
        /// <returns>PDF tiling pattern</returns>
        /// <remarks>
        /// <para>
        /// The pattern in a square with one user unit side.
        /// </para>
        /// <para>
        /// It is made of horizontal and vertical rectangles.
        /// </para>
        /// </remarks>
        ////////////////////////////////////////////////////////////////////
        public static PdfTilingPattern SetWeavePattern(
			PdfDocument		Document,
			Double			Scale,
			Color			Background,
			Color			Horizontal,
			Color			Vertical
			)
        {
            const Double RectSide1 = 4.0 / 6.0;
            const Double RectSide2 = 2.0 / 6.0;
            const Double LineWidth = 0.2 / 6.0;
            const Double HalfWidth = 0.5 * LineWidth;

            PdfTilingPattern Pattern = new PdfTilingPattern(Document);
            Pattern.SetScale(Scale);
            Pattern.SaveGraphicsState();
            Pattern.SetTileBox(1.0);
            Pattern.SetColorNonStroking(Background);
            Pattern.DrawRectangle(0.0, 0.0, 1.0, 1.0, PaintOp.Fill);
            Pattern.SetLineWidth(LineWidth);
            Pattern.SetColorStroking(Background);

            Pattern.SetColorNonStroking(Horizontal);
            Pattern.DrawRectangle(HalfWidth, 1.0 / 6.0 + HalfWidth, RectSide1 - LineWidth, RectSide2 - LineWidth, PaintOp.CloseFillStroke);
            Pattern.DrawRectangle(-(3.0 / 6.0 - HalfWidth), 4.0 / 6.0 + HalfWidth, RectSide1 - LineWidth, RectSide2 - LineWidth, PaintOp.CloseFillStroke);
            Pattern.DrawRectangle(3.0 / 6.0 + HalfWidth, 4.0 / 6.0 + HalfWidth, RectSide1 - LineWidth, RectSide2 - LineWidth, PaintOp.CloseFillStroke);

            Pattern.SetColorNonStroking(Vertical);
            Pattern.DrawRectangle(4.0 / 6.0 + HalfWidth, HalfWidth, RectSide2 - LineWidth, RectSide1 - LineWidth, PaintOp.CloseFillStroke);
            Pattern.DrawRectangle(1.0 / 6.0 + HalfWidth, -(3.0 / 6.0 - HalfWidth), RectSide2 - LineWidth, RectSide1 - LineWidth, PaintOp.CloseFillStroke);
            Pattern.DrawRectangle(1.0 / 6.0 + HalfWidth, 3.0 / 6.0 + HalfWidth, RectSide2 - LineWidth, RectSide1 - LineWidth, PaintOp.CloseFillStroke);

            Pattern.RestoreGraphicsState();
            return(Pattern);
        }
        //////////////////////////////////////////////////////////////////// 
        /// <summary>
        /// Create new PdfTilingPattern class with brick pattern.
        /// </summary>
        /// <param name="Document">Current document object.</param>
        /// <param name="Scale">Scale factor.</param>
        /// <param name="Stroking">Stroking color.</param>
        /// <param name="NonStroking">Non-stroking color.</param>
        /// <returns>PDF tiling pattern</returns>
        /// <remarks>
        /// <para>
        /// The pattern is a square with one user unit side.
        /// </para>
        /// <para>
        /// The bottom half is one brick. The top half is two half bricks.
        /// </para>
        /// <para>
        /// Arguments:
        /// </para>
        /// <para>
        /// Scale the pattern to your requirements.
        /// </para>
        /// <para>
        /// Stroking color is the mortar color.
        /// </para>
        /// <para>
        /// Nonstroking color is the brick color.
        /// </para>
        /// </remarks>
        ////////////////////////////////////////////////////////////////////
        public static PdfTilingPattern SetBrickPattern(
			PdfDocument		Document,
			Double			Scale,
			Color			Stroking,
			Color			NonStroking
			)
        {
            PdfTilingPattern Pattern = new PdfTilingPattern(Document);
            Pattern.SetScale(Scale);
            Pattern.SaveGraphicsState();
            Pattern.SetLineWidth(0.05);
            Pattern.SetColorStroking(Stroking);
            Pattern.SetColorNonStroking(NonStroking);
            Pattern.DrawRectangle(0.025, 0.025, 0.95, 0.45, PaintOp.CloseFillStroke);
            Pattern.DrawRectangle(-0.475, 0.525, 0.95, 0.45, PaintOp.CloseFillStroke);
            Pattern.DrawRectangle(0.525, 0.525, 0.95, 0.45, PaintOp.CloseFillStroke);
            Pattern.RestoreGraphicsState();
            return(Pattern);
        }