using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using HiQPdfClient;
namespace HiQPdf_Demo
{
public partial class PdfGraphics : System.Web.UI.Page
{
protected void buttonCreatePdf_Click(object sender, EventArgs e)
{
string serverIP = textBoxServerIP.Text;
uint serverPort = uint.Parse(textBoxServerPort.Text);
string serverPassword = textBoxServerPassword.Text;
// create a PDF document
PdfDocument document = new PdfDocument(serverIP, serverPort);
// use server password if necessary
if (serverPassword.Length > 0)
document.ServerPassword = serverPassword;
// set a demo serial number
document.SerialNumber = "YCgJMTAE-BiwJAhIB-EhlWTlBA-UEBRQFBA-U1FOUVJO-WVlZWQ==";
// create a page in document
PdfPage page1 = document.AddPage();
// create the true type fonts that can be used in document text
PdfFont pdfFontEmbed = document.CreateFontFromName("Times New Roman", 10, true);
float crtYPos = 20;
float crtXPos = 5;
#region Layout lines
PdfText titleTextLines = new PdfText(crtXPos, crtYPos, "Lines:", pdfFontEmbed);
titleTextLines.ForeColor = PdfColor.Navy;
page1.Layout(titleTextLines);
// advance the Y position in the PDF page
crtYPos += pdfFontEmbed.Size + 10;
// layout a simple line
PdfLine pdfLine = new PdfLine(new PointFloat(crtXPos, crtYPos), new PointFloat(crtXPos + 60, crtYPos));
page1.Layout(pdfLine);
// layout a thick line
PdfLine pdfThickLine = new PdfLine(new PointFloat(crtXPos + 70, crtYPos), new PointFloat(crtXPos + 130, crtYPos));
pdfThickLine.LineStyle.LineWidth = 3;
page1.Layout(pdfThickLine);
// layout a dotted colored line
PdfLine pdfDottedLine = new PdfLine(new PointFloat(crtXPos + 140, crtYPos), new PointFloat(crtXPos + 200, crtYPos));
pdfDottedLine.LineStyle.LineDashPattern = PdfLineDashPattern.Dot;
pdfDottedLine.ForeColor = PdfColor.Green;
page1.Layout(pdfDottedLine);
// layout a dashed colored line
PdfLine pdfDashedLine = new PdfLine(new PointFloat(crtXPos + 210, crtYPos), new PointFloat(crtXPos + 270, crtYPos));
pdfDashedLine.LineStyle.LineDashPattern = PdfLineDashPattern.Dash;
pdfDashedLine.ForeColor = PdfColor.Green;
page1.Layout(pdfDashedLine);
// layout a dash-dot-dot colored line
PdfLine pdfDashDotDotLine = new PdfLine(new PointFloat(crtXPos + 280, crtYPos), new PointFloat(crtXPos + 340, crtYPos));
pdfDashDotDotLine.LineStyle.LineDashPattern = PdfLineDashPattern.DashDotDot;
pdfDashDotDotLine.ForeColor = PdfColor.Green;
page1.Layout(pdfDashDotDotLine);
// layout a thick line with rounded cap style
PdfLine pdfRoundedLine = new PdfLine(new PointFloat(crtXPos + 350, crtYPos), new PointFloat(crtXPos + 410, crtYPos));
pdfRoundedLine.LineStyle.LineWidth = 5;
pdfRoundedLine.LineStyle.LineCapStyle = PdfLineCapStyle.RoundCap;
pdfRoundedLine.ForeColor = PdfColor.Blue;
page1.Layout(pdfRoundedLine);
// advance the Y position in the PDF page
crtYPos += 10;
#endregion
#region Layout circles
PdfText titleTextCircles = new PdfText(crtXPos, crtYPos, "Circles:", pdfFontEmbed);
titleTextCircles.ForeColor = PdfColor.Navy;
page1.Layout(titleTextCircles);
// advance the Y position in the PDF page
crtYPos += pdfFontEmbed.Size + 10;
// draw a simple circle with solid line
PdfCircle pdfCircle = new PdfCircle(new PointFloat(crtXPos + 30, crtYPos + 30), 30);
page1.Layout(pdfCircle);
// draw a simple circle with dotted border line
PdfCircle pdfDottedCircle = new PdfCircle(new PointFloat(crtXPos + 100, crtYPos + 30), 30);
pdfDottedCircle.ForeColor = PdfColor.Green;
pdfDottedCircle.LineStyle.LineDashPattern = PdfLineDashPattern.Dot;
page1.Layout(pdfDottedCircle);
// draw a circle with colored border line and fill color
PdfCircle pdfDisc = new PdfCircle(new PointFloat(crtXPos + 170, crtYPos + 30), 30);
pdfDisc.ForeColor = PdfColor.Navy;
pdfDisc.BackColor = PdfColor.WhiteSmoke;
page1.Layout(pdfDisc);
// draw a circle with thick border line
PdfCircle pdfThickBorderDisc = new PdfCircle(new PointFloat(crtXPos + 240, crtYPos + 30), 30);
pdfThickBorderDisc.LineStyle.LineWidth = 5;
pdfThickBorderDisc.BackColor = PdfColor.LightSalmon;
pdfThickBorderDisc.ForeColor = PdfColor.LightBlue;
page1.Layout(pdfThickBorderDisc);
crtYPos += 70;
#endregion
#region Layout ellipses and arcs
PdfText titleTextEllipses = new PdfText(crtXPos, crtYPos, "Ellipses, arcs and slices:", pdfFontEmbed);
titleTextEllipses.ForeColor = PdfColor.Navy;
page1.Layout(titleTextEllipses);
// advance the Y position in the PDF page
crtYPos += pdfFontEmbed.Size + 10;
// draw a simple ellipse with solid line
PdfEllipse pdfEllipse = new PdfEllipse(new PointFloat(crtXPos + 50, crtYPos + 30), 50, 30);
page1.Layout(pdfEllipse);
// draw an ellipse with fill color and colored border line
PdfEllipse pdfFilledEllipse = new PdfEllipse(new PointFloat(crtXPos + 160, crtYPos + 30), 50, 30);
pdfFilledEllipse.BackColor = PdfColor.WhiteSmoke;
pdfFilledEllipse.ForeColor = PdfColor.Green;
page1.Layout(pdfFilledEllipse);
// draw an ellipse arc with colored border line
PdfEllipseArc pdfEllipseArc1 = new PdfEllipseArc(new RectangleFloat(crtXPos + 220, crtYPos, 100, 60), 0, 90);
pdfEllipseArc1.ForeColor = PdfColor.OrangeRed;
pdfEllipseArc1.LineStyle.LineWidth = 3;
page1.Layout(pdfEllipseArc1);
// draw an ellipse arc with fill color and colored border line
PdfEllipseArc pdfEllipseArc2 = new PdfEllipseArc(new RectangleFloat(crtXPos + 220, crtYPos, 100, 60), 90, 90);
pdfEllipseArc2.ForeColor = PdfColor.Navy;
page1.Layout(pdfEllipseArc2);
// draw an ellipse arc with fill color and colored border line
PdfEllipseArc pdfEllipseArc3 = new PdfEllipseArc(new RectangleFloat(crtXPos + 220, crtYPos, 100, 60), 180, 90);
pdfEllipseArc3.ForeColor = PdfColor.Green;
pdfEllipseArc3.LineStyle.LineWidth = 3;
page1.Layout(pdfEllipseArc3);
// draw an ellipse arc with fill color and colored border line
PdfEllipseArc pdfEllipseArc4 = new PdfEllipseArc(new RectangleFloat(crtXPos + 220, crtYPos, 100, 60), 270, 90);
pdfEllipseArc4.ForeColor = PdfColor.Yellow;
page1.Layout(pdfEllipseArc4);
// draw an ellipse slice
PdfEllipseSlice pdfEllipseSlice1 = new PdfEllipseSlice(new RectangleFloat(crtXPos + 330, crtYPos, 100, 60), 0, 90);
pdfEllipseSlice1.BackColor = PdfColor.Coral;
page1.Layout(pdfEllipseSlice1);
// draw an ellipse slice
PdfEllipseSlice pdfEllipseSlice2 = new PdfEllipseSlice(new RectangleFloat(crtXPos + 330, crtYPos, 100, 60), 90, 90);
pdfEllipseSlice2.BackColor = PdfColor.LightBlue;
page1.Layout(pdfEllipseSlice2);
// draw an ellipse slice
PdfEllipseSlice pdfEllipseSlice3 = new PdfEllipseSlice(new RectangleFloat(crtXPos + 330, crtYPos, 100, 60), 180, 90);
pdfEllipseSlice3.BackColor = PdfColor.LightGreen;
page1.Layout(pdfEllipseSlice3);
// draw an ellipse slice
PdfEllipseSlice pdfEllipseSlice4 = new PdfEllipseSlice(new RectangleFloat(crtXPos + 330, crtYPos, 100, 60), 270, 90);
pdfEllipseSlice4.BackColor = PdfColor.Yellow;
page1.Layout(pdfEllipseSlice4);
crtYPos += 70;
#endregion
#region Layout rectangles
PdfText titleTextRectangles = new PdfText(crtXPos, crtYPos, "Rectangles:", pdfFontEmbed);
titleTextRectangles.ForeColor = PdfColor.Navy;
page1.Layout(titleTextRectangles);
// advance the Y position in the PDF page
crtYPos += pdfFontEmbed.Size + 10;
// draw a simple rectangle with solid line
PdfRectangle pdfRectangle = new PdfRectangle(crtXPos, crtYPos, 100, 60);
page1.Layout(pdfRectangle);
// draw a rectangle with fill color and colored dotted border line
PdfRectangle pdfFilledRectangle = new PdfRectangle(crtXPos + 110, crtYPos, 100, 60);
pdfFilledRectangle.BackColor = PdfColor.WhiteSmoke;
pdfFilledRectangle.ForeColor = PdfColor.Green;
pdfFilledRectangle.LineStyle.LineDashPattern = PdfLineDashPattern.Dot;
page1.Layout(pdfFilledRectangle);
// draw a rectangle with fill color and without border line
PdfRectangle pdfFilledNoBorderRectangle = new PdfRectangle(crtXPos + 220, crtYPos, 100, 60);
pdfFilledNoBorderRectangle.BackColor = PdfColor.LightGreen;
page1.Layout(pdfFilledNoBorderRectangle);
// draw a rectangle filled with a thick border line and reounded corners
PdfRectangle pdfThickBorderRectangle = new PdfRectangle(crtXPos + 330, crtYPos, 100, 60);
pdfThickBorderRectangle.BackColor = PdfColor.LightSalmon;
pdfThickBorderRectangle.ForeColor = PdfColor.LightBlue;
pdfThickBorderRectangle.LineStyle.LineWidth = 5;
pdfThickBorderRectangle.LineStyle.LineJoinStyle = PdfLineJoinStyle.RoundJoin;
page1.Layout(pdfThickBorderRectangle);
crtYPos += 70;
#endregion
#region Layout Bezier curves
PdfText titleTextBezier = new PdfText(crtXPos, crtYPos, "Bezier curves and polygons:", pdfFontEmbed);
titleTextBezier.ForeColor = PdfColor.Navy;
page1.Layout(titleTextBezier);
// advance the Y position in the PDF page
crtYPos += pdfFontEmbed.Size + 10;
// the points controlling the Bezier curve
PointFloat pt1 = new PointFloat(crtXPos, crtYPos + 50);
PointFloat pt2 = new PointFloat(crtXPos + 50, crtYPos);
PointFloat pt3 = new PointFloat(crtXPos + 100, crtYPos + 100);
PointFloat pt4 = new PointFloat(crtXPos + 150, crtYPos + 50);
// draw controlling points
PdfCircle pt1Circle = new PdfCircle(pt1, 2);
pt1Circle.BackColor = PdfColor.LightSalmon;
page1.Layout(pt1Circle);
PdfCircle pt2Circle = new PdfCircle(pt2, 2);
pt2Circle.BackColor = PdfColor.LightSalmon;
page1.Layout(pt2Circle);
PdfCircle pt3Circle = new PdfCircle(pt3, 2);
pt3Circle.BackColor = PdfColor.LightSalmon;
page1.Layout(pt3Circle);
PdfCircle pt4Circle = new PdfCircle(pt4, 2);
pt4Circle.BackColor = PdfColor.LightSalmon;
page1.Layout(pt4Circle);
// draw the Bezier curve
PdfBezierCurve bezierCurve = new PdfBezierCurve(pt1, pt2, pt3, pt4);
bezierCurve.ForeColor = PdfColor.LightBlue;
bezierCurve.LineStyle.LineWidth = 2;
page1.Layout(bezierCurve);
#endregion
#region Layout a polygons
// layout a polygon without fill color
// the polygon points
PointFloat[] polyPoints = new PointFloat[]{
new PointFloat(crtXPos + 200, crtYPos + 50),
new PointFloat(crtXPos + 250, crtYPos),
new PointFloat(crtXPos + 300, crtYPos + 50),
new PointFloat(crtXPos + 250, crtYPos + 100)
};
// draw polygon points
foreach (PointFloat polyPoint in polyPoints)
{
PdfCircle pointCircle = new PdfCircle(polyPoint, 2);
pointCircle.BackColor = PdfColor.LightSalmon;
page1.Layout(pointCircle);
}
// draw the polygon line
PdfPolygon pdfPolygon = new PdfPolygon(polyPoints);
pdfPolygon.ForeColor = PdfColor.LightBlue;
pdfPolygon.LineStyle.LineWidth = 2;
pdfPolygon.LineStyle.LineCapStyle = PdfLineCapStyle.ProjectingSquareCap;
page1.Layout(pdfPolygon);
// layout a polygon with fill color
// the polygon points
PointFloat[] polyFillPoints = new PointFloat[]{
new PointFloat(crtXPos + 330, crtYPos + 50),
new PointFloat(crtXPos + 380, crtYPos),
new PointFloat(crtXPos + 430, crtYPos + 50),
new PointFloat(crtXPos + 380, crtYPos + 100)
};
// draw a polygon with fill color and thick rounded border
PdfPolygon pdfFillPolygon = new PdfPolygon(polyFillPoints);
pdfFillPolygon.ForeColor = PdfColor.LightBlue;
pdfFillPolygon.BackColor = PdfColor.LightSalmon;
pdfFillPolygon.LineStyle.LineWidth = 5;
pdfFillPolygon.LineStyle.LineCapStyle = PdfLineCapStyle.RoundCap;
pdfFillPolygon.LineStyle.LineJoinStyle = PdfLineJoinStyle.RoundJoin;
page1.Layout(pdfFillPolygon);
#endregion
try
{
// write the PDF document to a memory buffer
byte[] pdfBuffer = document.WriteToMemory();
// inform the browser about the binary data format
HttpContext.Current.Response.AddHeader("Content-Type", "application/pdf");
// let the browser know how to open the PDF document and the file name
HttpContext.Current.Response.AddHeader("Content-Disposition", String.Format("attachment; filename=PdfGraphics.pdf; size={0}",
pdfBuffer.Length.ToString()));
// write the PDF buffer to HTTP response
HttpContext.Current.Response.BinaryWrite(pdfBuffer);
// call End() method of HTTP response to stop ASP.NET page processing
HttpContext.Current.Response.End();
}
finally
{
document.Close();
}
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Master.SelectNode("pdfGraphics");
Master.LoadCodeSample("PdfGraphics");
}
}
}
}