PDFsharp - 绘制文本,围绕自定义枢轴点旋转并移动它
PDFsharp - draw text, rotate it around a custom pivot point and move it
我想绘制一个旋转了 x 度的文本。由于我不围绕它的中心点旋转它,所以我也想提供一个偏移量。
首先我围绕自定义轴心点旋转矩形
graphics.RotateAtTransform(RotationInDegrees, pivotPoint);
而且我知道我可以使用
移动变换
graphics.TranslateTransform(offsetX, offsetY);
但是为了计算偏移量,我需要知道新的方向,所以顶部现在可能是底部 180 度。
我有一个代表网格系统的二维矢量,其中中心位于 (0|0)、左上角 (-1|1)、右下角 (1|-1) 等。所以基本上我可以先旋转,然后绘制文字
textFormatter.DrawString(watermarkContent, Font, Brush, textBox, Format);
绘制文本框后我翻译了它。然后我可以使用这个计算来知道正确的旋转
graphics.TranslateTransform(alignmentVector.X * -horizontalOffset, alignmentVector.Y * verticalOffset);
但这是不可能的。我必须先应用转换并在最后绘制。那么如何在旋转后正确地将水平和垂直偏移应用于矩形(通过知道正确的方向)?
变换适用于在设置变换后绘制的项目。这允许通过稍后更改转换以 30° 角绘制文本和以 60° 角绘制其他文本。
因此您必须在绘制文本之前应用转换。该转换也适用于用于绘制文本的 "textbox",无需更改该框。
我想绘制一个旋转了 x 度的文本。由于我不围绕它的中心点旋转它,所以我也想提供一个偏移量。
首先我围绕自定义轴心点旋转矩形
graphics.RotateAtTransform(RotationInDegrees, pivotPoint);
而且我知道我可以使用
移动变换graphics.TranslateTransform(offsetX, offsetY);
但是为了计算偏移量,我需要知道新的方向,所以顶部现在可能是底部 180 度。
我有一个代表网格系统的二维矢量,其中中心位于 (0|0)、左上角 (-1|1)、右下角 (1|-1) 等。所以基本上我可以先旋转,然后绘制文字
textFormatter.DrawString(watermarkContent, Font, Brush, textBox, Format);
绘制文本框后我翻译了它。然后我可以使用这个计算来知道正确的旋转
graphics.TranslateTransform(alignmentVector.X * -horizontalOffset, alignmentVector.Y * verticalOffset);
但这是不可能的。我必须先应用转换并在最后绘制。那么如何在旋转后正确地将水平和垂直偏移应用于矩形(通过知道正确的方向)?
变换适用于在设置变换后绘制的项目。这允许通过稍后更改转换以 30° 角绘制文本和以 60° 角绘制其他文本。
因此您必须在绘制文本之前应用转换。该转换也适用于用于绘制文本的 "textbox",无需更改该框。