Выполнение некоторой работы по управлению печатью через инфраструктуру System.Printing (основными классами являются PrintQueue, PrintTicket и PrinterCapabilities). Как и с большинством вещей, над которыми я работал в последнее время, чертовски мало информации об этом. Я надеюсь собрать некоторую полезную информацию в этом вопросе, чтобы помочь конкретизировать эту тему.
PrintTickets дает разработчикам хорошее представление о наиболее распространенных настройках конфигурации для печати. Это повезло, потому что я не хотел бы делать это старым способом DEVMODE (вы можете конвертировать двоичный поток DEVMODE в и из PrintTickets, что удобно!).
Проблема в том, что существует много принтеров, каждый из которых имеет уникальную конфигурацию. Они не попадают в красивые свойства и перечисления, созданные для PrintTickets. Если вам нужно настроить принтер, параметры которого выходят за рамки этого интерфейса, вам нужно сериализовать ваш PrintTicket в xml и изменить его там.
Когда вы работаете с PrintTicket xml, ваша жизнь управляется тремя или более схемами: две от Microsoft и одна или более от производителя принтера. Две схемы MS:
Одна из первых проблем, с которыми я столкнулся при работе с необработанным xml, заключается в том, что я не могу найти никаких XSD, охватывающих эти схемы.
Кто-нибудь знает, где я могу получить XSD для этих схем?
Вторая большая проблема, с которой я столкнулся, - это отображение ввода пользователя в PrintTicket xml. Оптимально, я хотел бы взять пользовательский ввод, скажем, «Лоток 3», и отобразить его через PrintCapabilities, чтобы определить значение параметра, устанавливаемого для этой функции. Документация по возможностям печати несколько неясна, и я боюсь, что она полна крайних случаев, которые вернутся и укусят меня, если я не сделаю это правильно.
У кого-нибудь есть хорошие примеры для изменения PrintTicket XML?
Это хорошая отправная точка для этой вики ...
Обновление по вопросу 1:
Отправил электронное письмо на адрес, полученный от WinHEC PPT в 2005 году, и получил реальный ответ от Джастина Хатчингса, менеджера программы для Windows Experience - Документы и печать (круто, нет?):
Will
Нет XSD для пространств имен схемы печати. Вам следует ознакомиться со спецификацией схемы печати 1.0 и проверить соответствие с ней. http://www.microsoft.com/whdc/xps/downloads.mspx
У нас также есть проверка PrintSchema, встроенная в PrintVerifier. Более подробную информацию о получении и настройке Print Verifier можно получить по следующим ссылкам: