Add Rectangle Object to PDF file
The following code snippet also work with Aspose.PDF.Drawing library.
Add Rectangle object
Aspose.PDF for .NET supports the feature to add graph objects (for example graph, line, rectangle etc.) to PDF documents. You also get the leverage to add Rectangle object where you also offers the feature to fill rectangle object with a certain color, control Z-Order, add gradiant color fill and etc.
First, let’s look at the possibility of creating a Rectangle object.
Follow the steps below:
-
Create a new PDF Document.
-
Add Page to pages collection of PDF file.
-
Add Text fragment to paragraphs collection of page instance.
-
Create Graph instance.
-
Set border for Drawing object.
-
Create Rectangle instance.
-
Add Rectangle object to shapes collection of Graph object.
-
Add graph object to paragraphs collection of page instance.
-
Add Text fragment to paragraphs collection of page instance.
-
And save your PDF file
private static void AddRectangle(Aspose.Pdf.Page page, float x, float y, float width, float height, Aspose.Pdf.Color color, int zIndex)
{
// Create a Graph object with dimensions matching the specified rectangle
var graph = new Aspose.Pdf.Drawing.Graph(width, height)
{
// Prevent the graph from repositioning automatically
IsChangePosition = false,
// Set the Left coordinate position for the Graph instance
Left = x,
// Set the Top coordinate position for the Graph instance
Top = y
};
// Create a Rectangle object inside the Graph
var rect = new Aspose.Pdf.Drawing.Rectangle(0, 0, width, height)
{
// Set the fill color of the rectangle
GraphInfo =
{
FillColor = color,
// Set the border color of the rectangle
Color = color
}
};
// Add the rectangle to the Shapes collection of the Graph
graph.Shapes.Add(rect);
// Set the Z-Index for the Graph object to control layering
graph.ZIndex = zIndex;
// Add the Graph object to the Paragraphs collection of the page
page.Paragraphs.Add(graph);
}
Create Filled Rectangle Object
Aspose.PDF for .NET also offers the feature to fill rectangle object with a certain color.
The following code snippet shows how to add a Rectangle object that is filled with color.
private static void RectangleFilled()
{
// Path to the document directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Images();
// Create Document instance using 'using' block to ensure proper disposal
using (var document = new Aspose.Pdf.Document())
{
// Add page to pages collection of PDF file
var page = document.Pages.Add();
// Create Graph instance
var graph = new Aspose.Pdf.Drawing.Graph(100, 400);
// Add graph object to paragraphs collection of page instance
page.Paragraphs.Add(graph);
// Create Rectangle instance with specified dimensions
var rect = new Aspose.Pdf.Drawing.Rectangle(100, 100, 200, 120)
{
// Specify fill color for the Rectangle object
GraphInfo =
{
FillColor = Aspose.Pdf.Color.Red
}
};
// Add rectangle object to shapes collection of Graph object
graph.Shapes.Add(rect);
// Save PDF file
document.Save(dataDir + "CreateFilledRectangle_out.pdf");
}
}
Look at the result of rectangle filled solid color:
Add Drawing with Gradient Fill
Aspose.PDF for .NET supports the feature to add graph objects to PDF documents and sometimes it is required to fill graph objects with Gradient Color. To Fill graph objects with Gradient Color, We need to set setPatterColorSpace with gradientAxialShading object as following.
The following code snippet shows how to add a Rectangle object that is filled with Gradient Color.
private static void CreateFilledRectangleGradientFill()
{
// Path to the document directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Images();
// Create Document instance using 'using' block to ensure proper disposal
using (var document = new Aspose.Pdf.Document())
{
// Add page to pages collection of PDF file
var page = document.Pages.Add();
// Create Graph instance
var graph = new Aspose.Pdf.Drawing.Graph(400, 400);
// Add graph object to paragraphs collection of page instance
page.Paragraphs.Add(graph);
// Create Rectangle instance
var rect = new Aspose.Pdf.Drawing.Rectangle(0, 0, 300, 300);
// Create a gradient fill color
var gradientColor = new Aspose.Pdf.Color();
var gradientSettings = new Aspose.Pdf.Drawing.GradientAxialShading(Aspose.Pdf.Color.Red, Aspose.Pdf.Color.Blue)
{
Start = new Aspose.Pdf.Point(0, 0),
End = new Aspose.Pdf.Point(350, 350)
};
gradientColor.PatternColorSpace = gradientSettings;
// Apply gradient fill color to the rectangle
rect.GraphInfo.FillColor = gradientColor;
// Add rectangle object to shapes collection of Graph object
graph.Shapes.Add(rect);
// Save PDF file
document.Save(dataDir + "CreateFilledRectangleGradient_out.pdf");
}
}
Create Rectangle with Alpha color channel
Aspose.PDF for .NET supports to fill rectangle object with a certain color. A rectangle object can also have Alpha color channel to give transparent appearance. The following code snippet shows how to add a Rectangle object with Alpha color channel.
Pixels of the image can store information about their opacity along with color value. This allows creating images with transparent or semi-transparent areas.
Instead of making a color transparent, each pixel stores information on how opaque it is. This opacity data is called alpha channel and is typically stored after the color channels of the pixel.
private static void RectangleFilled_AlphaChannel()
{
// Path to the document directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Images();
// Create Document instance using 'using' block to ensure proper disposal
using (var document = new Aspose.Pdf.Document())
{
// Add page to pages collection of PDF file
var page = document.Pages.Add();
// Create Graph instance
var graph = new Aspose.Pdf.Drawing.Graph(100, 400);
// Add graph object to paragraphs collection of page instance
page.Paragraphs.Add(graph);
// Create first rectangle with alpha channel fill color
var rect = new Aspose.Pdf.Drawing.Rectangle(100, 100, 200, 120)
{
GraphInfo =
{
FillColor = Aspose.Pdf.Color.FromArgb(128, 244, 180, 0)
}
};
// Add the first rectangle to the shapes collection of the Graph object
graph.Shapes.Add(rect);
// Create second rectangle with different alpha channel fill color
var rect1 = new Aspose.Pdf.Drawing.Rectangle(200, 150, 200, 100)
{
GraphInfo =
{
FillColor = Aspose.Pdf.Color.FromArgb(160, 120, 0, 120)
}
};
// Add the second rectangle to the shapes collection of the Graph object
graph.Shapes.Add(rect1);
// Save PDF file
document.Save(dataDir + "CreateFilledRectangle_out.pdf");
}
}
Control Z-Order of Rectangle
Aspose.PDF for .NET supports the feature to add graph objects (for example graph, line, rectangle etc.) to PDF documents. When adding more than one instance of same object inside PDF file, we can control their rendering by specifying the Z-Order. Z-Order is also used when we need to render objects on top of each other.
The following code snippet shows the steps to render Rectangle objects on top of each other.
private static void AddRectangleZOrder()
{
// Path to the document directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Images();
// Instantiate Document class object using 'using' block to ensure proper disposal
using (var document = new Aspose.Pdf.Document())
{
// Add page to pages collection of PDF file
var page = document.Pages.Add();
// Set size of PDF page
page.SetPageSize(375, 300);
// Set left and top margins for the page object as 0
page.PageInfo.Margin.Left = 0;
page.PageInfo.Margin.Top = 0;
// Create rectangles with different colors and Z-Order values
AddRectangle(page, 50, 40, 60, 40, Aspose.Pdf.Color.Red, 2);
AddRectangle(page, 20, 20, 30, 30, Aspose.Pdf.Color.Blue, 1);
AddRectangle(page, 40, 40, 60, 30, Aspose.Pdf.Color.Green, 0);
// Save the resultant PDF file
document.Save(dataDir + "ControlRectangleZOrder_out.pdf");
}
}