#region PDFsharp - A .NET library for processing PDF // // Authors: // Stefan Lange // // Copyright (c) 2005-2017 empira Software GmbH, Cologne Area (Germany) // // http://www.pdfsharp.com // http://sourceforge.net/projects/pdfsharp // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #endregion #if GDI using System.Drawing; using System.Drawing.Drawing2D; #endif #if WPF using System.Windows.Media; #endif namespace PdfSharp.Drawing { /// /// Represents an abstract drawing surface for PdfPages. /// internal interface IXGraphicsRenderer { void Close(); #region Drawing ///// ///// Fills the entire drawing surface with the specified color. ///// //[Obsolete("Will be removed.")] //void Clear(XColor color); /// /// Draws a straight line. /// void DrawLine(XPen pen, double x1, double y1, double x2, double y2); /// /// Draws a series of straight lines. /// void DrawLines(XPen pen, XPoint[] points); /// /// Draws a Bézier spline. /// void DrawBezier(XPen pen, double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4); /// /// Draws a series of Bézier splines. /// void DrawBeziers(XPen pen, XPoint[] points); /// /// Draws a cardinal spline. /// void DrawCurve(XPen pen, XPoint[] points, double tension); /// /// Draws an arc. /// void DrawArc(XPen pen, double x, double y, double width, double height, double startAngle, double sweepAngle); /// /// Draws a rectangle. /// void DrawRectangle(XPen pen, XBrush brush, double x, double y, double width, double height); /// /// Draws a series of rectangles. /// void DrawRectangles(XPen pen, XBrush brush, XRect[] rects); /// /// Draws a rectangle with rounded corners. /// void DrawRoundedRectangle(XPen pen, XBrush brush, double x, double y, double width, double height, double ellipseWidth, double ellipseHeight); /// /// Draws an ellipse. /// void DrawEllipse(XPen pen, XBrush brush, double x, double y, double width, double height); /// /// Draws a polygon. /// void DrawPolygon(XPen pen, XBrush brush, XPoint[] points, XFillMode fillmode); /// /// Draws a pie. /// void DrawPie(XPen pen, XBrush brush, double x, double y, double width, double height, double startAngle, double sweepAngle); /// /// Draws a cardinal spline. /// void DrawClosedCurve(XPen pen, XBrush brush, XPoint[] points, double tension, XFillMode fillmode); /// /// Draws a graphical path. /// void DrawPath(XPen pen, XBrush brush, XGraphicsPath path); /// /// Draws a series of glyphs identified by the specified text and font. /// void DrawString(string s, XFont font, XBrush brush, XRect layoutRectangle, XStringFormat format); /// /// Draws an image. /// void DrawImage(XImage image, double x, double y, double width, double height); void DrawImage(XImage image, XRect destRect, XRect srcRect, XGraphicsUnit srcUnit); #endregion #region Save and Restore /// /// Saves the current graphics state without changing it. /// void Save(XGraphicsState state); /// /// Restores the specified graphics state. /// void Restore(XGraphicsState state); /// /// /// void BeginContainer(XGraphicsContainer container, XRect dstrect, XRect srcrect, XGraphicsUnit unit); /// /// /// void EndContainer(XGraphicsContainer container); #endregion #region Transformation /// /// Gets or sets the transformation matrix. /// //XMatrix Transform {get; set;} void AddTransform(XMatrix transform, XMatrixOrder matrixOrder); #endregion #region Clipping void SetClip(XGraphicsPath path, XCombineMode combineMode); void ResetClip(); #endregion #region Miscellaneous /// /// Writes a comment to the output stream. Comments have no effect on the rendering of the output. /// void WriteComment(string comment); #endregion } }