Я портирую приложение C # .NET на Mono .NET для выполнения в OSX.Часть приложения включает в себя печать изображения.Довольно легко в .NET и сводится в основном к
e.Graphics.DrawImage(img, new Rectangle(x, y, printSize.Width, printSize.Height));
в событии PrintPocument PrintDocument.Mono не имеет полной реализации System.Drawing.Printing, поэтому кажется, что лучший способ сделать это - использовать GtkSharp.В Интернете я нашел несколько примеров того, как печатать текст с помощью Gtk.PrintOperation.У PrintOperation есть событие DrawPage, которое должно быть похоже на PrintPage, однако я мог только найти способ использовать PangoSharp для печати текста в этом событии.
Достаточно объясняя, что я знаю, я думаю, что вопрос довольно прост.Я надеюсь, что кто-то может быть полезен, поскольку печать GtkSharp плохо документирована.Если есть лучший способ сделать это за пределами GtkSharp, я все уши.
Большое спасибо.
РЕДАКТИРОВАТЬ
Так что мне удалосьчтобы что-то напечатать, однако, это всегда пустая страница.Вот код:
var print = new PrintOperation();
print.BeginPrint += (obj, args) => { print.NPages = 1; };
print.DrawPage += (obj, args) => {
PrintContext context = args.Context;
Cairo.Context cr = context.CairoContext;
var imageSurface = new Cairo.ImageSurface(printImage.FileName);
cr.MaskSurface(imageSurface, 0, 0);
};
print.EndPrint += (obj, args) => { };
print.Run(PrintOperationAction.Print, null);