mirror of
				https://github.com/UglyToad/PdfPig.git
				synced 2025-10-31 08:27:06 +08:00 
			
		
		
		
	#215 support filling rectangles on pdf builder
This commit is contained in:
		| @@ -588,6 +588,21 @@ | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         [Fact] | ||||
|         public void CanCreateDocumentWithFilledRectangle() | ||||
|         { | ||||
|             var builder = new PdfDocumentBuilder(); | ||||
|             var page = builder.AddPage(PageSize.A4); | ||||
|  | ||||
|             page.SetTextAndFillColor(255, 0, 0); | ||||
|             page.SetStrokeColor(0, 0, 255); | ||||
|  | ||||
|             page.DrawRectangle(new PdfPoint(20, 100), 200, 100, 1.5m, true); | ||||
|              | ||||
|             var file = builder.Build(); | ||||
|             WriteFile(nameof(CanCreateDocumentWithFilledRectangle), file); | ||||
|         } | ||||
|  | ||||
|         private static void WriteFile(string name, byte[] bytes, string extension = "pdf") | ||||
|         { | ||||
|             try | ||||
|   | ||||
| @@ -91,7 +91,8 @@ | ||||
|         /// <param name="width">The width of the rectangle.</param> | ||||
|         /// <param name="height">The height of the rectangle.</param> | ||||
|         /// <param name="lineWidth">The width of the line border of the rectangle.</param> | ||||
|         public void DrawRectangle(PdfPoint position, decimal width, decimal height, decimal lineWidth = 1) | ||||
|         /// <param name="fill">Whether to fill with the color set by <see cref="SetTextAndFillColor"/>.</param> | ||||
|         public void DrawRectangle(PdfPoint position, decimal width, decimal height, decimal lineWidth = 1, bool fill = false) | ||||
|         { | ||||
|             if (lineWidth != 1) | ||||
|             { | ||||
| @@ -99,7 +100,15 @@ | ||||
|             } | ||||
|  | ||||
|             operations.Add(new AppendRectangle((decimal)position.X, (decimal)position.Y, width, height)); | ||||
|             operations.Add(StrokePath.Value); | ||||
|  | ||||
|             if (fill) | ||||
|             { | ||||
|                 operations.Add(FillPathEvenOddRuleAndStroke.Value); | ||||
|             } | ||||
|             else | ||||
|             { | ||||
|                 operations.Add(StrokePath.Value); | ||||
|             } | ||||
|  | ||||
|             if (lineWidth != 1) | ||||
|             { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Eliot Jones
					Eliot Jones