Я использую PDFsharp, чтобы нарисовать линии довольно сложной формы. Чтобы упростить этот процесс и сделать его более понятным, я хотел бы изменить начало координат в верхнем левом углу страницы в левом нижнем углу. В настоящее время изменение исходного кода - not yet implemented. Есть ли способ переместить начало в нижний левый угол, используя методы, такие как RotateTransform
и TranslateTransform
или иначе? Насколько я могу судить, вращательное преобразование вращается вокруг начала координат. Может быть, трюк я не знаю. ИспользованиеPDFsharp Change Origin
gfx.RotateTransform(180);
gfx.TranslateTransform(-612, -792); // Assumes 8.5 inch x 11 inch at 72 points/inch
Я могу переместить его в нижнее правое положение так, чтобы х увеличивалось, оставаясь слева, но добавленный текст перевернулся.
Есть ли способ по-настоящему переместить начало в левое нижнее положение так, чтобы y увеличивалось, а x увеличилось и направо? Заранее спасибо.
EDIT: Ответ ThomasH перемещает начало координат в левое нижнее положение, но текст по-прежнему переворачивается. Есть ли способ преодолеть это? См. Приведенный здесь пример: http://pastebin.com/fgfjDXF1
Спасибо! Это переместило начало в нижний левый, но текст все еще перевернут. Это побочный эффект ScaleTransform? Если это так, некоторые изменения могут его избежать? –
Вот пример, иллюстрирующий проблему с текстом: http://pastebin.com/fgfjDXF1 –
Решил перевернутый текст для моего конкретного приложения с помощью методов Save() и Restore() XGraphics. Я делаю два прохода. Сохраните исходное состояние. Первое масштабирование и перевод на этот ответ, нарисуйте фигуру и запишите точки, где должны быть нарисованы метки. Затем восстановите исходное состояние. Теперь второй проход включает в себя выполнение перевода, но не масштабирование, а затем запись меток в точках. Таким образом, они появляются справа и вверх в правильном положении. –