‘IronPython’ カテゴリーの投稿

IronPythonで印刷

IronPythonで印刷処理をします。
 
とりあえず印刷プレビューを表示してみましょう。
簡単なコードを書いてipyで実行
 
# -*- encoding: utf-8 -*-
import clr
clr.AddReferenceByPartialName(“System.Drawing”)
clr.AddReferenceByPartialName(“System.Windows.Forms”)
from System.Drawing import *
from System.Drawing.Printing import *
from System.Windows.Forms import PrintPreviewDialog
f = Font(“MS UI Gothic”, 12.0, FontStyle.Regular)
def doc_PrintPage(sender, e):
    e.Graphics.DrawString(“Test”, f, SolidBrush(Color.Black), PointF(0, 0))
doc = PrintDocument()
doc.PrintPage += doc_PrintPage
dlg = PrintPreviewDialog()
dlg.Document = doc
dlg.ShowDialog()
実行するとおなじみの.NET Frameworkの印刷プレビューが表示されます。
印刷ダイアログを表示して印刷の場合はPrintPreviewをPrintDialogに変更して
ShowDialogメソッドを呼べばできますね。
 
こんなに簡単にできるなんて!
C#をやってる人間には驚きです。
 
Ipythonを使う理由が分かってきました。

2009年4月6日 at 5:11 PM コメントする

C#とIron Python2.0

C#とIron Pythonを連携しようとしてハマったのでメモ。
 
Web上でみかけたサンプルを見かけたので実行しようとしたら
Iron Python2.0ではPythonEngineクラスがありませんでした。
 
なんとなくIronPython.dllの中身をオブジェクトブラウザで探すと
 
Python.CreateEngine()
 
を発見。
PythonEngineじゃなくてScriptEngineだけど
IronPythonフォルダにMicrosoft.Scripting.dllがあったので参照
 
using Microsoft.Scripting.Hosting;
で使おう。
 
試行錯誤でなんとか動いた
 
C#のコードは
 
using IronPython.Hosting;
using Microsoft.Scripting.Hosting;
でインポートして
 
      ScriptEngine engine = Python.CreateEngine();
      ScriptSource source = engine.CreateScriptSourceFromFile(“test.py”,
                                           System.Text.Encoding.UTF8,
                                           Microsoft.Scripting.SourceCodeKind.Expression);
      int result = source.Execute<int>();
Pythonのソース(test.py)は
 
# coding: utf-8
2 + 2
 
で実行。
 
4が戻ってきた!
 
やったね。
たったこれだけなのに時間がかかってしまった。
 
 

2009年4月1日 at 4:52 PM コメントする


カレンダー

2012年5月
« 5月    
 123456
78910111213
14151617181920
21222324252627
28293031  

月別アーカイブ

カテゴリー別アーカイブ


フォロー

Get every new post delivered to your Inbox.