Есть ли способ проверить, поддерживает ли принтер PostScript, используя С#? Мне нужно проверить это, прежде чем делать что-либо с моим документом.
Спасибо, Бартош.
Есть ли способ проверить, поддерживает ли принтер PostScript, используя С#? Мне нужно проверить это, прежде чем делать что-либо с моим документом.
Спасибо, Бартош.
Вы можете потенциально использовать WMI, однако я не уверен, что это решение будет надежным.
System.Management.ObjectQuery oq = new System.Management.ObjectQuery("SELECT * FROM Win32_Printer");
ManagementObjectSearcher mos = new ManagementObjectSearcher(oq);
ManagementObjectCollection moc = mos.Get();
foreach( ManagementObject mo in moc )
{
string name = mo["Name"].ToString();
string language = mo["DefaultLanguage"].ToString();
MessageBox.Show(String.Format("Printer: {0} -- Language: {1}", name, language));
}
Обновить
Проверьте здесь, чтобы увидеть другие поля, которые могут иметь отношение
В частности uint16 LanguagesSupported[];
Код, который я наконец использовал, с небольшими изменениями:
System.Management.ObjectQuery oq = new System.Management.ObjectQuery("SELECT * FROM Win32_Printer");
ManagementObjectSearcher mos = new ManagementObjectSearcher(oq);
ManagementObjectCollection moc = mos.Get();
foreach (ManagementObject mo in moc)
{
string name = mo["Name"].ToString();
var language = mo["LanguagesSupported"];
Console.WriteLine(String.Format("Printer: {0} -- Language: {1}", name, language==null ? 0 : (language as ushort[])[0]));
}