Components All New MacOS Windows Linux iOS
Examples Mac & Win Server Client Guides Statistic FMM Blog Deprecated Old

DynaPDF.RotateCoords

The function skews the coordinate system and sets the coordinate origin to the point OriginX, OriginY.

Component Version macOS Windows Linux Server iOS SDK
DynaPDF 3.2 ✅ Yes ✅ Yes ✅ Yes ✅ Yes ✅ Yes
MBS( "DynaPDF.RotateCoords"; PDF; a; x; y { ; RotateCoords } )   More

Parameters

Parameter Description Example Flags
PDF The PDF reference returned from DynaPDF.New. $pdf
a Angle alpha in degrees 30
x Origin of the x-axis $x
y Origin of the y-axis $y
RotateCoords Whether to rotate coordinate system.
This is now done by DynaPDF automatically, so for current version of the library, this must be zero. But older versions need the 1.
0 Optional

Result

Returns OK on success and error on failure.

Description

The function skews the coordinate system and sets the coordinate origin to the point OriginX, OriginY.
It is highly recommended to save the graphics state beforehand, otherwise it is very difficult or impossible to restore the coordinate system later.
After the coordinate system was changed by the function, bottom-up coordinates are active. It is not possible to use top-down coordinates with a skewed coordinate system.

To rotate a page you can use DynaPDF.SetOrientation or DynaPDF.SetOrientationEx.

See also RotateCoords function in DynaPDF manual.

Examples

Rotate and draw rectangle:

MBS( "DynaPDF.SaveGraphicState"; $PDF )
MBS( "DynaPDF.RotateCoords"; $PDF; 30; 150; 450)
MBS( "DynaPDF.Rectangle"; $PDF; 0; 0; 200; 100; "stroke" )
MBS( "DynaPDF.RestoreGraphicState"; $PDF )

Rotate graphics system 270° for whole page:

MBS("DynaPDF.TranslateCoords"; $pdf; MBS("DynaPDF.GetPageWidth";$pdf)/2; MBS( "DynaPDF.GetPageHeight";$pdf)/2)
MBS("DynaPDF.RotateCoords"; $pdf; 270; 0; 0)
MBS("DynaPDF.TranslateCoords"; $pdf; -MBS( "DynaPDF.GetPageHeight";$pdf)/2; -MBS("DynaPDF.GetPageWidth";$pdf)/2)

Draw text rotated:

# save
Set Variable [$r; Value: MBS("DynaPDF.SaveGraphicState"; $pdf)]
# get page size
Set Variable [$w; Value: MBS("DynaPDF.GetPageWidth"; $pdf)]
Set Variable [$h; Value: MBS("DynaPDF.GetPageHeight"; $pdf)]
# move center to middle of page
Set Variable [$r; Value: MBS("DynaPDF.TranslateCoords"; $PDF; $w/2; $h/2)]
# rotate here by 30 degree
Set Variable [$r; Value: MBS("DynaPDF.RotateCoords"; $PDF; 30; 0; 0)]
# move center back
Set Variable [$r; Value: MBS("DynaPDF.TranslateCoords"; $PDF; -$w/2; -$h/2)]
# now draw some text
Set Variable [$r; Value: MBS("DynaPDF.SetTextRect"; $pdf; 0; 500; MBS("DynaPDF.GetPageWidth"; $pdf); -1)]
Set Variable [$r; Value: MBS("DynaPDF.WriteFText"; $pdf; "center"; Watermark pages::WatermarkText )]
# restore
Set Variable [$r; Value: MBS("DynaPDF.RestoreGraphicState"; $pdf)]

See also

Example Databases

This function checks for a license.

Created 18th August 2014, last changed 4th December 2018


DynaPDF.RestoreGraphicState - DynaPDF.RotateTemplate