Да, это так.Я сделал это на C #, создав PDF-принтер, управляемый программным обеспечением.
Шаги для достижения вашей цели:
- Создание нового порта с использованием RedMon
- Установить порт для отправки вывода в ваше приложение
- Напишите приложение, которое получает входящий поток, и отправьте его куда хотите
Вот куча кода для вашегоПользовательское приложение:
string fname = Environment.GetEnvironmentVariable("TEMP") + @"\";
fname += DateTime.Now.ToString("yyyyMMdd-hhmmss-fffff") + ".ps";
FileStream fs = new FileStream(fname, FileMode.Create);
StreamWriter sw = new StreamWriter(fs);
StreamReader sr = new StreamReader(Console.OpenStandardInput());
sw.Write(sr.ReadToEnd());
sw.Flush();
sw.Close();
sr.Close();
Я редактирую свой пост, чтобы ответить на ваш комментарий:
- Вы можете легко использовать Redmon на Windows7.Я без проблем справляюсь с принтером и думаю, что вы можете сделать это и в Windows 2008.Если вы хотите узнать, как можно установить порт redmon без установщика, взгляните на исходный код установки PDFCreator.Если вы хотите, я могу объяснить, как это сделать, и опубликовать реализацию C #, но я не думаю, что это то, что вам сейчас нужно.
- Вы можете использовать свой единственный порт Redmon с любым количеством принтеров,не только один;когда ваше программное обеспечение получает задание из буфера с помощью среды vars Redmon, настроенной для вас, вы можете прочитать имя принтера, отправляющего задание ... так что вы можете решить, что делать в соответствии с этим.