ImageData.SetRotation
не устанавливает значение поворота, используемое всякий раз, когда этот экземпляр ImageData
визуализируется iText, оно просто перезаписывает метаданные изображения, указывающие, как изображение должно отображаться в вертикальном положении. Насколько я вижу, соответствующий GetRotation
в настоящее время вообще не вызывается кодом iText, поэтому ваше значение поворота игнорируется.
Вместо того, чтобы устанавливать это значение поворота данных изображения, просто поверните холст перед вставкой изображения, например, так:
canvas.SaveState();
canvas.ConcatMatrix(AffineTransform.GetRotateInstance(Math.PI / 4, x, y));
canvas.AddImage(imageData, x - imageData.GetWidth() / 2, y - imageData.GetHeight() / 2, false);
canvas.RestoreState();