FillAndStrokePath Method (GdPicturePDF)
In This Topic
Fills and then strokes the current path, defined within a currently selected page of the loaded PDF document, using the nonzero winding number rule to determine the region to fill. More precisely, this method sets the path-painting operator "B". Any sub-paths, that are open, are implicitly closed before being filled (see PDF Reference, Section "Path-Painting Operators").
The use of this method has the same effect as constructing two identical path objects, painting the first using the GdPicturePDF.FillPath method and the second using the GdPicturePDF.StrokePath method. Therefore all details related to the GdPicturePDF.FillPath and the GdPicturePDF.StrokePath method remain in effect. Be aware of your currently defined graphics state parameters, that both filling and stroking operations put into effect.
Syntax
Return Value
A member of the GdPictureStatus enumeration. If the method has been successfully followed, then the return value is GdPictureStatus.OK.
We strongly recommend always checking this status first.
Example
How to fill and stroke the current path at the same time.
Dim caption As String = "Example: FillAndStrokePath"
Dim gdpicturePDF As New GdPicturePDF()
Dim status As GdPictureStatus = gdpicturePDF.NewPDF()
If status = GdPictureStatus.OK Then
gdpicturePDF.SetOrigin(PdfOrigin.PdfOriginTopLeft)
gdpicturePDF.SetMeasurementUnit(PdfMeasurementUnit.PdfMeasurementUnitMillimeter)
If (gdpicturePDF.NewPage(210, 297) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.SetLineWidth(2) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.SetLineColor(255, 0, 0) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.SetFillColor(0, 0, 255) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.BeginPath(100, 10) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.AddLineToPath(20, 50) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.AddLineToPath(190, 50) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.FillPath() = GdPictureStatus.OK) AndAlso
(gdpicturePDF.BeginPath(100, 80) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.AddLineToPath(20, 120) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.AddLineToPath(190, 120) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.StrokePath() = GdPictureStatus.OK) AndAlso
(gdpicturePDF.BeginPath(100, 150) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.AddLineToPath(20, 200) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.AddLineToPath(190, 200) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.FillAndStrokePath() = GdPictureStatus.OK) Then
status = gdpicturePDF.SaveToFile("test_FillAndStroke1.pdf")
If status = GdPictureStatus.OK Then
MessageBox.Show("The example has been followed successfully and the file has been saved.", caption)
Else
MessageBox.Show("The example has been followed successfully, but the file can't be saved. Status: " + status.ToString(), caption)
End If
Else
MessageBox.Show("The example has not been followed successfully." + vbCrLf + "The last known status is " + gdpicturePDF.GetStat().ToString(), caption)
End If
Else
MessageBox.Show("The NewPDF() method has failed with the status: " + status.ToString(), caption)
End If
gdpicturePDF.Dispose()
string caption = "Example: FillAndStrokePath";
GdPicturePDF gdpicturePDF = new GdPicturePDF();
GdPictureStatus status = gdpicturePDF.NewPDF();
if (status == GdPictureStatus.OK)
{
gdpicturePDF.SetOrigin(PdfOrigin.PdfOriginTopLeft);
gdpicturePDF.SetMeasurementUnit(PdfMeasurementUnit.PdfMeasurementUnitMillimeter);
if ((gdpicturePDF.NewPage(210, 297) == GdPictureStatus.OK) &&
(gdpicturePDF.SetLineWidth(2) == GdPictureStatus.OK) &&
(gdpicturePDF.SetLineColor(255, 0, 0) == GdPictureStatus.OK) &&
(gdpicturePDF.SetFillColor(0, 0, 255) == GdPictureStatus.OK) &&
(gdpicturePDF.BeginPath(100, 10) == GdPictureStatus.OK) &&
(gdpicturePDF.AddLineToPath(20, 50) == GdPictureStatus.OK) &&
(gdpicturePDF.AddLineToPath(190, 50) == GdPictureStatus.OK) &&
(gdpicturePDF.FillPath() == GdPictureStatus.OK) &&
(gdpicturePDF.BeginPath(100, 80) == GdPictureStatus.OK) &&
(gdpicturePDF.AddLineToPath(20, 120) == GdPictureStatus.OK) &&
(gdpicturePDF.AddLineToPath(190, 120) == GdPictureStatus.OK) &&
(gdpicturePDF.StrokePath() == GdPictureStatus.OK) &&
(gdpicturePDF.BeginPath(100, 150) == GdPictureStatus.OK) &&
(gdpicturePDF.AddLineToPath(20, 200) == GdPictureStatus.OK) &&
(gdpicturePDF.AddLineToPath(190, 200) == GdPictureStatus.OK) &&
(gdpicturePDF.FillAndStrokePath() == GdPictureStatus.OK))
{
status = gdpicturePDF.SaveToFile("test_FillAndStroke1.pdf");
if (status == GdPictureStatus.OK)
MessageBox.Show("The example has been followed successfully and the file has been saved.", caption);
else
MessageBox.Show("The example has been followed successfully, but the file can't be saved. Status: " + status.ToString(), caption);
}
else
MessageBox.Show("The example has not been followed successfully.\nThe last known status is " + gdpicturePDF.GetStat().ToString(), caption);
}
else
MessageBox.Show("The NewPDF() method has failed with the status: " + status.ToString(), caption);
gdpicturePDF.Dispose();
Dim caption As String = "Example: FillAndStrokePath"
Dim gdpicturePDF As New GdPicturePDF()
Dim status As GdPictureStatus = gdpicturePDF.NewPDF()
If status = GdPictureStatus.OK Then
gdpicturePDF.SetOrigin(PdfOrigin.PdfOriginTopLeft)
gdpicturePDF.SetMeasurementUnit(PdfMeasurementUnit.PdfMeasurementUnitMillimeter)
If (gdpicturePDF.NewPage(210, 297) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.SetLineWidth(2) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.SetLineColor(255, 0, 0) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.SetFillColor(138, 43, 226) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.BeginPath(100, 10) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.AddLineToPath(20, 50) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.AddLineToPath(190, 50) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.FillAndStrokePath() = GdPictureStatus.OK) AndAlso
(gdpicturePDF.BeginPath(100, 80) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.AddLineToPath(20, 120) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.AddLineToPath(190, 120) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.ClosePath() = GdPictureStatus.OK) AndAlso
(gdpicturePDF.FillAndStrokePath() = GdPictureStatus.OK) AndAlso
(gdpicturePDF.BeginPath(180, 150) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.AddLineToPath(20, 205) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.AddLineToPath(180, 180) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.AddLineToPath(20, 150) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.AddLineToPath(180, 205) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.ClosePath() = GdPictureStatus.OK) AndAlso
(gdpicturePDF.FillAndStrokePathOdd() = GdPictureStatus.OK) Then
status = gdpicturePDF.SaveToFile("test_FillAndStrokePath2.pdf")
If status = GdPictureStatus.OK Then
MessageBox.Show("The example has been followed successfully and the file has been saved.", caption)
Else
MessageBox.Show("The example has been followed successfully, but the file can't be saved. Status: " + status.ToString(), caption)
End If
Else
MessageBox.Show("The example has not been followed successfully." + vbCrLf + "The last known status is " + gdpicturePDF.GetStat().ToString(), caption)
End If
Else
MessageBox.Show("The NewPDF() method has failed with the status: " + status.ToString(), caption)
End If
gdpicturePDF.Dispose()
string caption = "Example: FillAndStrokePath";
GdPicturePDF gdpicturePDF = new GdPicturePDF();
GdPictureStatus status = gdpicturePDF.NewPDF();
if (status == GdPictureStatus.OK)
{
gdpicturePDF.SetOrigin(PdfOrigin.PdfOriginTopLeft);
gdpicturePDF.SetMeasurementUnit(PdfMeasurementUnit.PdfMeasurementUnitMillimeter);
if ((gdpicturePDF.NewPage(210, 297) == GdPictureStatus.OK) &&
(gdpicturePDF.SetLineWidth(2) == GdPictureStatus.OK) &&
(gdpicturePDF.SetLineColor(255, 0, 0) == GdPictureStatus.OK) &&
(gdpicturePDF.SetFillColor(138, 43, 226) == GdPictureStatus.OK) &&
(gdpicturePDF.BeginPath(100, 10) == GdPictureStatus.OK) &&
(gdpicturePDF.AddLineToPath(20, 50) == GdPictureStatus.OK) &&
(gdpicturePDF.AddLineToPath(190, 50) == GdPictureStatus.OK) &&
(gdpicturePDF.FillAndStrokePath() == GdPictureStatus.OK) &&
(gdpicturePDF.BeginPath(100, 80) == GdPictureStatus.OK) &&
(gdpicturePDF.AddLineToPath(20, 120) == GdPictureStatus.OK) &&
(gdpicturePDF.AddLineToPath(190, 120) == GdPictureStatus.OK) &&
(gdpicturePDF.ClosePath() == GdPictureStatus.OK) &&
(gdpicturePDF.FillAndStrokePath() == GdPictureStatus.OK) &&
(gdpicturePDF.BeginPath(180, 150) == GdPictureStatus.OK) &&
(gdpicturePDF.AddLineToPath(20, 205) == GdPictureStatus.OK) &&
(gdpicturePDF.AddLineToPath(180, 180) == GdPictureStatus.OK) &&
(gdpicturePDF.AddLineToPath(20, 150) == GdPictureStatus.OK) &&
(gdpicturePDF.AddLineToPath(180, 205) == GdPictureStatus.OK) &&
(gdpicturePDF.ClosePath() == GdPictureStatus.OK) &&
(gdpicturePDF.FillAndStrokePathOdd() == GdPictureStatus.OK))
{
status = gdpicturePDF.SaveToFile("test_FillAndStrokePath2.pdf");
if (status == GdPictureStatus.OK)
MessageBox.Show("The example has been followed successfully and the file has been saved.", caption);
else
MessageBox.Show("The example has been followed successfully, but the file can't be saved. Status: " + status.ToString(), caption);
}
else
MessageBox.Show("The example has not been followed successfully.\nThe last known status is " + gdpicturePDF.GetStat().ToString(), caption);
}
else
MessageBox.Show("The NewPDF() method has failed with the status: " + status.ToString(), caption);
gdpicturePDF.Dispose();
Example
How to fill and stroke the current path at the same time.
Dim caption As String = "Example: FillAndStrokePath"
Dim gdpicturePDF As New GdPicturePDF()
Dim status As GdPictureStatus = gdpicturePDF.NewPDF()
If status = GdPictureStatus.OK Then
gdpicturePDF.SetOrigin(PdfOrigin.PdfOriginTopLeft)
gdpicturePDF.SetMeasurementUnit(PdfMeasurementUnit.PdfMeasurementUnitMillimeter)
If (gdpicturePDF.NewPage(210, 297) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.SetLineWidth(2) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.SetLineColor(255, 0, 0) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.SetFillColor(0, 0, 255) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.BeginPath(100, 10) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.AddLineToPath(20, 50) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.AddLineToPath(190, 50) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.FillPath() = GdPictureStatus.OK) AndAlso
(gdpicturePDF.BeginPath(100, 80) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.AddLineToPath(20, 120) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.AddLineToPath(190, 120) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.StrokePath() = GdPictureStatus.OK) AndAlso
(gdpicturePDF.BeginPath(100, 150) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.AddLineToPath(20, 200) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.AddLineToPath(190, 200) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.FillAndStrokePath() = GdPictureStatus.OK) Then
status = gdpicturePDF.SaveToFile("test_FillAndStroke1.pdf")
If status = GdPictureStatus.OK Then
MessageBox.Show("The example has been followed successfully and the file has been saved.", caption)
Else
MessageBox.Show("The example has been followed successfully, but the file can't be saved. Status: " + status.ToString(), caption)
End If
Else
MessageBox.Show("The example has not been followed successfully." + vbCrLf + "The last known status is " + gdpicturePDF.GetStat().ToString(), caption)
End If
Else
MessageBox.Show("The NewPDF() method has failed with the status: " + status.ToString(), caption)
End If
gdpicturePDF.Dispose()
string caption = "Example: FillAndStrokePath";
GdPicturePDF gdpicturePDF = new GdPicturePDF();
GdPictureStatus status = gdpicturePDF.NewPDF();
if (status == GdPictureStatus.OK)
{
gdpicturePDF.SetOrigin(PdfOrigin.PdfOriginTopLeft);
gdpicturePDF.SetMeasurementUnit(PdfMeasurementUnit.PdfMeasurementUnitMillimeter);
if ((gdpicturePDF.NewPage(210, 297) == GdPictureStatus.OK) &&
(gdpicturePDF.SetLineWidth(2) == GdPictureStatus.OK) &&
(gdpicturePDF.SetLineColor(255, 0, 0) == GdPictureStatus.OK) &&
(gdpicturePDF.SetFillColor(0, 0, 255) == GdPictureStatus.OK) &&
(gdpicturePDF.BeginPath(100, 10) == GdPictureStatus.OK) &&
(gdpicturePDF.AddLineToPath(20, 50) == GdPictureStatus.OK) &&
(gdpicturePDF.AddLineToPath(190, 50) == GdPictureStatus.OK) &&
(gdpicturePDF.FillPath() == GdPictureStatus.OK) &&
(gdpicturePDF.BeginPath(100, 80) == GdPictureStatus.OK) &&
(gdpicturePDF.AddLineToPath(20, 120) == GdPictureStatus.OK) &&
(gdpicturePDF.AddLineToPath(190, 120) == GdPictureStatus.OK) &&
(gdpicturePDF.StrokePath() == GdPictureStatus.OK) &&
(gdpicturePDF.BeginPath(100, 150) == GdPictureStatus.OK) &&
(gdpicturePDF.AddLineToPath(20, 200) == GdPictureStatus.OK) &&
(gdpicturePDF.AddLineToPath(190, 200) == GdPictureStatus.OK) &&
(gdpicturePDF.FillAndStrokePath() == GdPictureStatus.OK))
{
status = gdpicturePDF.SaveToFile("test_FillAndStroke1.pdf");
if (status == GdPictureStatus.OK)
MessageBox.Show("The example has been followed successfully and the file has been saved.", caption);
else
MessageBox.Show("The example has been followed successfully, but the file can't be saved. Status: " + status.ToString(), caption);
}
else
MessageBox.Show("The example has not been followed successfully.\nThe last known status is " + gdpicturePDF.GetStat().ToString(), caption);
}
else
MessageBox.Show("The NewPDF() method has failed with the status: " + status.ToString(), caption);
gdpicturePDF.Dispose();
Dim caption As String = "Example: FillAndStrokePath"
Dim gdpicturePDF As New GdPicturePDF()
Dim status As GdPictureStatus = gdpicturePDF.NewPDF()
If status = GdPictureStatus.OK Then
gdpicturePDF.SetOrigin(PdfOrigin.PdfOriginTopLeft)
gdpicturePDF.SetMeasurementUnit(PdfMeasurementUnit.PdfMeasurementUnitMillimeter)
If (gdpicturePDF.NewPage(210, 297) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.SetLineWidth(2) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.SetLineColor(255, 0, 0) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.SetFillColor(138, 43, 226) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.BeginPath(100, 10) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.AddLineToPath(20, 50) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.AddLineToPath(190, 50) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.FillAndStrokePath() = GdPictureStatus.OK) AndAlso
(gdpicturePDF.BeginPath(100, 80) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.AddLineToPath(20, 120) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.AddLineToPath(190, 120) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.ClosePath() = GdPictureStatus.OK) AndAlso
(gdpicturePDF.FillAndStrokePath() = GdPictureStatus.OK) AndAlso
(gdpicturePDF.BeginPath(180, 150) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.AddLineToPath(20, 205) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.AddLineToPath(180, 180) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.AddLineToPath(20, 150) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.AddLineToPath(180, 205) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.ClosePath() = GdPictureStatus.OK) AndAlso
(gdpicturePDF.FillAndStrokePathOdd() = GdPictureStatus.OK) Then
status = gdpicturePDF.SaveToFile("test_FillAndStrokePath2.pdf")
If status = GdPictureStatus.OK Then
MessageBox.Show("The example has been followed successfully and the file has been saved.", caption)
Else
MessageBox.Show("The example has been followed successfully, but the file can't be saved. Status: " + status.ToString(), caption)
End If
Else
MessageBox.Show("The example has not been followed successfully." + vbCrLf + "The last known status is " + gdpicturePDF.GetStat().ToString(), caption)
End If
Else
MessageBox.Show("The NewPDF() method has failed with the status: " + status.ToString(), caption)
End If
gdpicturePDF.Dispose()
string caption = "Example: FillAndStrokePath";
GdPicturePDF gdpicturePDF = new GdPicturePDF();
GdPictureStatus status = gdpicturePDF.NewPDF();
if (status == GdPictureStatus.OK)
{
gdpicturePDF.SetOrigin(PdfOrigin.PdfOriginTopLeft);
gdpicturePDF.SetMeasurementUnit(PdfMeasurementUnit.PdfMeasurementUnitMillimeter);
if ((gdpicturePDF.NewPage(210, 297) == GdPictureStatus.OK) &&
(gdpicturePDF.SetLineWidth(2) == GdPictureStatus.OK) &&
(gdpicturePDF.SetLineColor(255, 0, 0) == GdPictureStatus.OK) &&
(gdpicturePDF.SetFillColor(138, 43, 226) == GdPictureStatus.OK) &&
(gdpicturePDF.BeginPath(100, 10) == GdPictureStatus.OK) &&
(gdpicturePDF.AddLineToPath(20, 50) == GdPictureStatus.OK) &&
(gdpicturePDF.AddLineToPath(190, 50) == GdPictureStatus.OK) &&
(gdpicturePDF.FillAndStrokePath() == GdPictureStatus.OK) &&
(gdpicturePDF.BeginPath(100, 80) == GdPictureStatus.OK) &&
(gdpicturePDF.AddLineToPath(20, 120) == GdPictureStatus.OK) &&
(gdpicturePDF.AddLineToPath(190, 120) == GdPictureStatus.OK) &&
(gdpicturePDF.ClosePath() == GdPictureStatus.OK) &&
(gdpicturePDF.FillAndStrokePath() == GdPictureStatus.OK) &&
(gdpicturePDF.BeginPath(180, 150) == GdPictureStatus.OK) &&
(gdpicturePDF.AddLineToPath(20, 205) == GdPictureStatus.OK) &&
(gdpicturePDF.AddLineToPath(180, 180) == GdPictureStatus.OK) &&
(gdpicturePDF.AddLineToPath(20, 150) == GdPictureStatus.OK) &&
(gdpicturePDF.AddLineToPath(180, 205) == GdPictureStatus.OK) &&
(gdpicturePDF.ClosePath() == GdPictureStatus.OK) &&
(gdpicturePDF.FillAndStrokePathOdd() == GdPictureStatus.OK))
{
status = gdpicturePDF.SaveToFile("test_FillAndStrokePath2.pdf");
if (status == GdPictureStatus.OK)
MessageBox.Show("The example has been followed successfully and the file has been saved.", caption);
else
MessageBox.Show("The example has been followed successfully, but the file can't be saved. Status: " + status.ToString(), caption);
}
else
MessageBox.Show("The example has not been followed successfully.\nThe last known status is " + gdpicturePDF.GetStat().ToString(), caption);
}
else
MessageBox.Show("The NewPDF() method has failed with the status: " + status.ToString(), caption);
gdpicturePDF.Dispose();
See Also