PDFsharp-绘制文本,围绕自定义轴心点旋转并移动



我想画一个围绕x度旋转的文本。由于我不绕它的中心点旋转,我也想提供一个偏移。

首先,我围绕自定义轴心点旋转矩形

graphics.RotateAtTransform(RotationInDegrees, pivotPoint);

我知道我可以用移动变换

graphics.TranslateTransform(offsetX, offsetY);

但要计算偏移量,我需要知道新的方向,所以顶部可能是底部180度。

我有一个2D矢量,表示一个网格系统,其中中心位于(0|0(、左上角(-1|1(、右下角(1|-1(等。所以基本上我可以先旋转,然后绘制文本

textFormatter.DrawString(watermarkContent, Font, Brush, textBox, Format);

在画完文本框后,我翻译了它。然后我可以用这个计算来知道正确的旋转

graphics.TranslateTransform(alignmentVector.X * -horizontalOffset, alignmentVector.Y * verticalOffset);

但这是不可能的。我必须先应用转换,然后在最后绘制。那么,如何在旋转后(通过知道正确的方向(将水平和垂直偏移正确应用于矩形?

转换应用于设置转换后绘制的项目。这允许通过稍后更改转换,以30°角绘制文本,以60°角绘制其他文本。

因此,在绘制文本之前,必须应用转换。转换也适用于用于绘制文本的"文本框",无需更改该框。

另请参阅此示例:
http://www.pdfsharp.net/wiki/XForms-sample.ashx

最新更新