AddPageRotation Method (GdPicturePDF)
In This Topic
Modifies the current transformation matrix (CTM) applying the clockwise rotation by a specified angle to the actual page. The applied rotation affects all subsequent drawing operations on the currently selected page of the loaded PDF document. This method can be particularly useful when you need to write text (or any other kind of page content) on a rotated page without applying the page rotation on the current content, as it is shown on the example below.
The CTM parameter is part of the graphics state parameters. These parameters are initialized to their default values at the beginning of each page (see PDF Reference, Section "Graphics State").
Syntax
Parameters
- Angle
- The rotation angle, in degrees, determining the clockwise rotation. This parameter can be only set to 90, -90, 180, -180, 270, -270, otherwise the method will fail.
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 apply the rotation of the CTM on the current page to draw text without altering the page content.
Dim caption As String = "Example: AddPageRotation"
Dim gdpicturePDF As New GdPicturePDF()
Dim status As GdPictureStatus = gdpicturePDF.NewPDF()
If status = GdPictureStatus.OK Then
Dim fontName As String = gdpicturePDF.AddStandardFont(PdfStandardFont.PdfStandardFontCourierBold)
status = gdpicturePDF.GetStat()
If status = GdPictureStatus.OK Then
Dim rotationAngle As Integer = 90
If (gdpicturePDF.NewPage(PdfPageSizes.PdfPageSizeA4) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.SetTextSize(50) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.SetFillColor(0, 0, 255) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.DrawText(fontName, 50, 50, "normal text") = GdPictureStatus.OK) AndAlso
(gdpicturePDF.SetFillColor(255, 0, 0) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.DrawRotatedText(fontName, 50, 50, "rotated text", rotationAngle) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.RotatePage(rotationAngle) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.AddPageRotation(360 - rotationAngle) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.SetFillColor(165, 42, 42) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.DrawText(fontName, 100, 500, "same as rotated text") = GdPictureStatus.OK) AndAlso
(gdpicturePDF.AddPageRotation(rotationAngle) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.SetFillColor(255, 165, 0) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.DrawText(fontName, 250, 20, "same as normal text") = GdPictureStatus.OK) Then
status = gdpicturePDF.SaveToFile("test_AddPageRotation.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 AddStandardFont() method has failed with the status: " + status.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: AddPageRotation";
GdPicturePDF gdpicturePDF = new GdPicturePDF();
GdPictureStatus status = gdpicturePDF.NewPDF();
if (status == GdPictureStatus.OK)
{
string fontName = gdpicturePDF.AddStandardFont(PdfStandardFont.PdfStandardFontCourierBold);
status = gdpicturePDF.GetStat();
if (status == GdPictureStatus.OK)
{
int rotationAngle = 90;
if ((gdpicturePDF.NewPage(PdfPageSizes.PdfPageSizeA4) == GdPictureStatus.OK) &&
(gdpicturePDF.SetTextSize(50) == GdPictureStatus.OK) &&
(gdpicturePDF.SetFillColor(0, 0, 255) == GdPictureStatus.OK) &&
(gdpicturePDF.DrawText(fontName, 50, 50, "normal text") == GdPictureStatus.OK) &&
(gdpicturePDF.SetFillColor(255, 0, 0) == GdPictureStatus.OK) &&
(gdpicturePDF.DrawRotatedText(fontName, 50, 50, "rotated text", rotationAngle) == GdPictureStatus.OK) &&
(gdpicturePDF.RotatePage(rotationAngle) == GdPictureStatus.OK) &&
(gdpicturePDF.AddPageRotation(360 - rotationAngle) == GdPictureStatus.OK) &&
(gdpicturePDF.SetFillColor(165, 42, 42) == GdPictureStatus.OK) &&
(gdpicturePDF.DrawText(fontName, 100, 500, "same as rotated text") == GdPictureStatus.OK) &&
(gdpicturePDF.AddPageRotation(rotationAngle) == GdPictureStatus.OK) &&
(gdpicturePDF.SetFillColor(255, 165, 0) == GdPictureStatus.OK) &&
(gdpicturePDF.DrawText(fontName, 250, 20, "same as normal text") == GdPictureStatus.OK))
{
status = gdpicturePDF.SaveToFile("test_AddPageRotation.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 AddStandardFont() method has failed with the status: " + status.ToString(), caption);
}
else
MessageBox.Show("The NewPDF() method has failed with the status: " + status.ToString(), caption);
gdpicturePDF.Dispose();
Example
How to apply the rotation of the CTM on the current page to draw text without altering the page content.
Dim caption As String = "Example: AddPageRotation"
Dim gdpicturePDF As New GdPicturePDF()
Dim status As GdPictureStatus = gdpicturePDF.NewPDF()
If status = GdPictureStatus.OK Then
Dim fontName As String = gdpicturePDF.AddStandardFont(PdfStandardFont.PdfStandardFontCourierBold)
status = gdpicturePDF.GetStat()
If status = GdPictureStatus.OK Then
Dim rotationAngle As Integer = 90
If (gdpicturePDF.NewPage(PdfPageSizes.PdfPageSizeA4) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.SetTextSize(50) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.SetFillColor(0, 0, 255) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.DrawText(fontName, 50, 50, "normal text") = GdPictureStatus.OK) AndAlso
(gdpicturePDF.SetFillColor(255, 0, 0) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.DrawRotatedText(fontName, 50, 50, "rotated text", rotationAngle) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.RotatePage(rotationAngle) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.AddPageRotation(360 - rotationAngle) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.SetFillColor(165, 42, 42) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.DrawText(fontName, 100, 500, "same as rotated text") = GdPictureStatus.OK) AndAlso
(gdpicturePDF.AddPageRotation(rotationAngle) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.SetFillColor(255, 165, 0) = GdPictureStatus.OK) AndAlso
(gdpicturePDF.DrawText(fontName, 250, 20, "same as normal text") = GdPictureStatus.OK) Then
status = gdpicturePDF.SaveToFile("test_AddPageRotation.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 AddStandardFont() method has failed with the status: " + status.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: AddPageRotation";
GdPicturePDF gdpicturePDF = new GdPicturePDF();
GdPictureStatus status = gdpicturePDF.NewPDF();
if (status == GdPictureStatus.OK)
{
string fontName = gdpicturePDF.AddStandardFont(PdfStandardFont.PdfStandardFontCourierBold);
status = gdpicturePDF.GetStat();
if (status == GdPictureStatus.OK)
{
int rotationAngle = 90;
if ((gdpicturePDF.NewPage(PdfPageSizes.PdfPageSizeA4) == GdPictureStatus.OK) &&
(gdpicturePDF.SetTextSize(50) == GdPictureStatus.OK) &&
(gdpicturePDF.SetFillColor(0, 0, 255) == GdPictureStatus.OK) &&
(gdpicturePDF.DrawText(fontName, 50, 50, "normal text") == GdPictureStatus.OK) &&
(gdpicturePDF.SetFillColor(255, 0, 0) == GdPictureStatus.OK) &&
(gdpicturePDF.DrawRotatedText(fontName, 50, 50, "rotated text", rotationAngle) == GdPictureStatus.OK) &&
(gdpicturePDF.RotatePage(rotationAngle) == GdPictureStatus.OK) &&
(gdpicturePDF.AddPageRotation(360 - rotationAngle) == GdPictureStatus.OK) &&
(gdpicturePDF.SetFillColor(165, 42, 42) == GdPictureStatus.OK) &&
(gdpicturePDF.DrawText(fontName, 100, 500, "same as rotated text") == GdPictureStatus.OK) &&
(gdpicturePDF.AddPageRotation(rotationAngle) == GdPictureStatus.OK) &&
(gdpicturePDF.SetFillColor(255, 165, 0) == GdPictureStatus.OK) &&
(gdpicturePDF.DrawText(fontName, 250, 20, "same as normal text") == GdPictureStatus.OK))
{
status = gdpicturePDF.SaveToFile("test_AddPageRotation.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 AddStandardFont() method has failed with the status: " + status.ToString(), caption);
}
else
MessageBox.Show("The NewPDF() method has failed with the status: " + status.ToString(), caption);
gdpicturePDF.Dispose();
See Also