Thanks god, I have finally found a solution to this problem.

The idea is that instead of having the print document aligned from right to left ( no such property for the print document exists), I must format every string drawn in the document as follows:

step 1: create a StringFormat instance:

StringFormat sf = new StringFormat();

step 2: assign the right to left direction to this instance:

sf.FormatFlags = StringFormatFlags.DirectionRightToLeft;

step 3: use this format to draw the specified string (RK: f is a Font object and ptf is a PointF object. Review the DrawString method)

e.Graphics.DrawString("any text", f, Brushes.Black, ptf, sf);

Finally, my text is being printed starting from right to left