예제 #1
0
		/// <summary>
		/// creates a new rectangle
		/// </summary>
		/// <param name="RectangleArea">the area which will contains the rectangle</param>
		/// <param name="BorderColor"></param>
		public PdfRectangle(PdfDocument PdfDocument,PdfArea RectangleArea,Color BorderColor)
		{
			this.PdfDocument=PdfDocument;
			this.rectangleArea=RectangleArea;
			this.BorderColor=BorderColor;
			this.strokeWidth=1;
		}
예제 #2
0
		/// <summary>
		/// creates a new rectangle 
		/// </summary>
		/// <param name="RectangleArea"></param>
		/// <param name="BorderColor"></param>
		/// <param name="BorderWidth"></param>
		public PdfRectangle(PdfDocument PdfDocument,PdfArea RectangleArea,Color BorderColor,double BorderWidth)
		{
			this.PdfDocument=PdfDocument;
			if (BorderWidth<=0) throw new Exception("BorderWidth must be greater than zero.");
			this.rectangleArea=RectangleArea;
			this.BorderColor=BorderColor;
			this.strokeWidth=BorderWidth;
		}
예제 #3
0
		internal void SetArea()
		{
			
			this.area=this.CellArea(startRow,0).Merge(this.CellArea(endRow,0));
			double great=0;
			foreach (PdfArea pa in this.cellAreas.Values)
			{
				double d=pa.BottomRightCornerX;
				if(d>great) great=d;
			}
			this.area.BottomRightCornerX=great;
			
		}
예제 #4
0
		/// <summary>
		/// Creates a new Flow Text Area.
		/// </summary>
		/// <param name="TextArea">the PdfArea which will contains the Text.</param>
		/// <param name="Font">the starting Font of the writings.</param>
		/// <param name="Color">the starting Color of the writings.</param>
		public PdfFlowTextArea(PdfArea TextArea,Font Font,Color Color)
		{
			this.Stream="";
			this.posX=TextArea.PosX;
			this.posY=TextArea.PosY;
			this.startX=TextArea.PosX;
			this.startY=TextArea.PosY;
			this.endX=TextArea.BottomRightCornerX;
			this.endY=TextArea.BottomRightCornerY;
			this.interline=Font.Size*1.6;
			this.Fonts=new ArrayList();
			this.SetColor(Color);
			this.SetFont(Font);
		}
예제 #5
0
		/// <summary>
		/// Creates a new Flow Text Area.
		/// </summary>
		/// <param name="TextArea">the PdfArea which will contains the Text.</param>
		/// <param name="Font">the starting Font of the writings.</param>
		/// <param name="Color">the starting Color of the writings.</param>
		/// <param name="StartX">the starting X position of the writing cursor.</param>
		/// <param name="StartY">the starting Y position of the writing cursor.</param>
		public PdfFlowTextArea(PdfArea TextArea,Font Font,Color Color,double StartX,double StartY)
		{
			this.Stream="";
			this.posX=TextArea.PosX;
			this.posY=TextArea.PosY;
			this.startX=StartX;
			this.startY=StartY;
			this.endX=TextArea.BottomRightCornerX;
			this.endY=TextArea.BottomRightCornerY;
			if (this.startX<this.posX||this.startX>this.endX) throw new Exception("Starting Point cannot be outside the FlowTextArea.");
			if (this.startY<this.posY||this.startY>this.endY) throw new Exception("Starting Point cannot be outside the FlowTextArea.");
			this.Fonts=new ArrayList();
			this.SetColor(Color);
			this.SetFont(Font);
			this.interline=Font.Size*1.6;
		}
예제 #6
0
		/// <summary>
		/// Extends the area to the bounds of another area
		/// </summary>
		/// <param name="Area"></param>
		/// <returns></returns>
		public PdfArea Merge(PdfArea Area)
		{
			PdfArea res=this.MemberwiseClone() as PdfArea;

			if (this.PosX>Area.PosX) 
			{
				res.PosX=Area.PosX;
				res.Width=Area.Width;
			}
			if (this.PosY>Area.PosY) 
			{
				res.PosY=Area.PosY;
				res.Height=Area.Height;
			}

			if (this.BottomRightCornerX<Area.BottomRightCornerX)
			{
				res.BottomRightCornerX=Area.BottomRightCornerX;
			}
			if (this.BottomRightCornerY<Area.BottomRightCornerY)
			{
				res.BottomRightCornerY=Area.BottomRightCornerY;
			}
			return res;
		}
예제 #7
0
		/// <summary>
		/// creates a circle with different x and y diamaters (ellipse)
		/// </summary>
		/// <param name="posx">center's x coordinate</param>
		/// <param name="posy">center's y coordinate</param>
		/// <param name="XDiameter">x diameter measure</param>
		/// <param name="YDiameter">y diameter measure</param>
		/// <param name="Color">circumference color</param>
		public PdfCircle(double posx,double posy,double XDiameter,double YDiameter,Color Color)
		{
			if (XDiameter<=0) throw new Exception("XDiameter must be grater than zero.");
			if (YDiameter<=0) throw new Exception("YDiameter must be grater than zero.");

			this.axesArea=new PdfArea(this.PdfDocument,posx-XDiameter/2,posy-YDiameter/2,XDiameter,YDiameter);
			this.BorderColor=Color;
			this.strokeWidth=1;
		}
예제 #8
0
		/// <summary>
		/// creates a new circle
		/// </summary>
		/// <param name="posx">center's x coordinate</param>
		/// <param name="posy">center's y coordinate</param>
		/// <param name="ray">ray measure</param>
		/// <param name="Color">circumference color</param>
		public PdfCircle(double posx,double posy,double ray,Color Color)
		{
			if (ray<=0) throw new Exception("Ray must be grater than zero.");
			this.axesArea=new PdfArea(this.PdfDocument,posx-ray,posy-ray,ray*2,ray*2);
			this.BorderColor=Color;
			this.strokeWidth=1;
		}
예제 #9
0
		/// <summary>
		/// sets the diameters lenght of the circle.
		/// </summary>
		/// <param name="XDiameter"></param>
		/// <param name="YDiameter"></param>
		public void SetDiameters(double XDiameter,double YDiameter)
		{
			if (XDiameter<=0) throw new Exception("XDiameter must be grater than zero.");
			if (YDiameter<=0) throw new Exception("YDiameter must be grater than zero.");

			this.axesArea=new PdfArea(this.PdfDocument,this.axesArea.CenterX-XDiameter/2,this.axesArea.CenterY-YDiameter/2,XDiameter,YDiameter);
		}
예제 #10
0
		/// <summary>
		/// creates a new PdfTextArea
		/// </summary>
		/// <param name="Font">the font that will be used</param>
		/// <param name="Color">the color of the font that will be used</param>
		/// <param name="TextArea">the estabilished area for the Text</param>
		/// <param name="PdfTextAlign">the ContentAlignment for the Text inside the area</param>
		/// <param name="Text">the text that will be written inside the area</param>
		public PdfTextArea(System.Drawing.Font Font,System.Drawing.Color Color,PdfArea TextArea,ContentAlignment PdfTextAlign,string Text)
		{
			if (Text==null) throw new Exception("Text cannot be null.");
			this.Font=Font;
			this.Color=Color;
			this.textArea=TextArea;
			this.text=Text;
			this.textAlign=PdfTextAlign;
			this.lineHeight=(double)(Font.Size);
		}
예제 #11
0
		/// <summary>
		/// creates a new rectangle
		/// </summary>
		/// <param name="RectangleArea"></param>
		/// <param name="BorderColor"></param>
		/// <param name="FillingColor"></param>
		public PdfRectangle(PdfDocument PdfDocument,PdfArea RectangleArea,Color BorderColor,Color FillingColor)
		{
			this.PdfDocument=PdfDocument;
			this.rectangleArea=RectangleArea;
			this.BorderColor=BorderColor;
			this.FillingColor=FillingColor;
			this.filled=true;
			this.strokeWidth=1;
		}
예제 #12
0
		/// <summary>
		/// Creates the TablePage, the rasterized page of a Table.
		/// </summary>
		/// <param name="PageArea"></param>
		/// <returns></returns>
		public PdfTablePage CreateTablePage(PdfArea PageArea)
		{
			this.TableArea=PageArea.Clone();
			PdfTablePage ptp;
			if (!this.visibleHeaders)
				ptp=this.createTablePage();
			else
			
			{
				this.header.TableArea=PageArea.Clone();
				this.header.TableArea.height=this.HeadersRow.Height;
				this.TableArea.posy+=this.HeadersRow.Height;
				this.TableArea.height-=this.HeadersRow.Height;
				
				ptp=this.createTablePage();
				ptp.stream+=this.header.createTablePage().stream;

				this.header.renderingIndex=0;
			}

				
			foreach (PdfColumn pc in this.Columns) pc.CompensatedWidth=-1;
			foreach (PdfColumn pc in this.header.Columns) pc.CompensatedWidth=-1;
			return ptp;
		}