我需要访问打印机才能知道是否有效并且有纸张。
我正在使用Silverlight 4开箱即可提升信任度。
此时我有:
string cFileName = "temp.txt";
string cAction = "print";
using (dynamic fso = AutomationFactory.CreateObject(@"Scripting.FileSystemObject"))
{
dynamic file = fso.CreateTextFile(cFileName, true);
file.WriteLine("First line text");
file.WriteLine("second line text");
file.Close();
}
//Print
dynamic shell = AutomationFactory.CreateObject("Shell.Application");
shell.ShellExecute(cFileName, "", "", cAction, 1);
我正在使用临时文件txt来创建我的打印页面。
顺便说一句,它可以直接向打印机发送字符串或类似内容吗?
使用该代码,我无法看到打印机是否处于活动状态或查看操作是否成功完成。
我看到我可以在C#using System.Drawing.Printing;
或using System.Management;
中使用,但我认为银光不可能。
一些建议?
- 编辑 -
我找到了解决方案。 现在我正在使用Win32_Printer类从打印机获取信息。
string name;
int printerStatus;
int detectedErrorState;
using (dynamic locatorService = AutomationFactory.CreateObject("WbemScripting.SWbemLocator"))
{
locatorService.Security_.ImpersonationLevel = 3;
locatorService.Security_.AuthenticationLevel = 4;
var wmiService = locatorService.ConnectServer(".", @"root\cimv2");
using (dynamic result = wmiService.ExecQuery("Select * from Win32_Printer where Default = True"))
{
name = result.ItemIndex(0).Name;
printerStatus = result.ItemIndex(0).PrinterStatus;
detectedErrorState = result.ItemIndex(0).DetectedErrorState;
}
}
link:http://msdn.microsoft.com/en-us/library/aa394363(v=VS.85).aspx
现在我正在尝试打印没有临时文件.txt。
我想直接从代码打印到打印机。
如果有人有建议,请告诉我。