2011-08-08 73 views
3

我試圖從沒有打印對話框的Silverlight打印,併爲此使用System.Runtime.InteropServices.Automation;使用Silverlight和COM-interop打印

現在我正在創建一個包含要發送到打印機的文本的臨時txt文件。

using (dynamic fso = AutomationFactory.CreateObject(@"Scripting.FileSystemObject")) 
{ 
    dynamic file = fso.CreateTextFile(cFileName, true); 
    file.Write(printText); 
    file.Close(); 
} 

之後,我使用shell.Aplication打印該文檔。

dynamic shell = AutomationFactory.CreateObject("Shell.Application"); 
shell.ShellExecute(cFileName, "", "", "print", 1); 

問題是,如何在沒有臨時txt文件的情況下直接打印到打印機?

不要忘記我在瀏覽器中使用Silverlight 4並且信任度提高了。

+0

你不能。沒有哪個流程足夠強大,無法到達流程內部,知道流程並獲得字符串。不要爲了小事而流汗,文件不是問題。 –

+0

@Hans Passant,無法使用記事本直接打印?除了使用臨時文本文件是否可能的解決方案來打印屏幕內容? –

回答

0

你應該能夠啓動記事本,並把你的內容雖然這沒有什麼好玩的解決方案:

閱讀:Silverlight 4 - send text to Notepad 和:http://msdn.microsoft.com/en-us/library/8c6yea83(v=vs.85).aspx

所以基本上, 1.啓動記事本的一個實例。 2.等一段時間。 3.發送文本複製到記事本 4.發送{} PRTSC打印 5. Ofcourse,關閉實例;)

祝你好運!

+0

無法使用記事本直接打印?除了使用臨時文本文件是否可能的解決方案來打印屏幕內容? –