OSXで実行するために、C#.NETアプリケーションをMono .NETに移植します。アプリケーションの一部にはイメージの印刷が含まれます。 .NETではかなり簡単で、PrintDocumentのPrintPageイベントでは、主にGTKSharpでイメージを印刷する方法
e.Graphics.DrawImage(img, new Rectangle(x, y, printSize.Width, printSize.Height));
になっています。 MonoはSystem.Drawing.Printingを完全に実装していないので、これを行う最善の方法はGtkSharpを使用することです。私はGtk.PrintOperationを使ってテキストを印刷する方法についてオンラインでいくつかの例を見つけました。 PrintOperationにはPrintPageと似たイベントDrawPageがありますが、このイベントでPangoSharpを使ってテキストを印刷する方法しか見つけられませんでした。
私が知っていることを説明するだけで十分ですが、その質問はかなり単純です。 GtkSharpの印刷がうまく文書化されていないので、誰かが助けになることを願っています。 GtkSharpの外でこれを行うより良い方法があれば、私はすべての耳です。
多くのありがとうございます。
EDIT
だから私は、印刷が、しかし、それは常に空白のページで何かを得ることができました。ここでは、コードは次のとおりです。
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);
ありがとうございます。 Gtk.Application.Invokeを使ってメインスレッド上で呼び出す必要があることがわかるまで、私はこれをうまく動作させることができませんでした。これは、PNG画像の横にある画像では機能しません。なぜなら、私はそれを正解とすることを躊躇しています。私は、すべての画像タイプで動作するソリューションが必要です。 –
あなたはこのような私の質問を見ていただけますか?http://stackoverflow.com/questions/12873640/how-to-print-plain-text-using-monodevelop-and-c –