Программно отключить "печать в файл"

У нас есть существующее кросс-платформенное (Mac, Windows, Linux) приложение, написанное на Java, которое программно отправляет документ на принтер по умолчанию без отображения диалога печати.

для разных платформ можно настроить принтер для печати в файл. Например, в Windows можно установить XPS Document Writer в качестве принтера по умолчанию или изменить свойства принтера так, чтобы он сохранял файловую копию всех документов.

Это возможно ли это обнаружить? Я открыт для любых предложений, но решение должно работать кросс-платформенный. Я предполагаю, что такие детали слишком низки (и зависят от платформы), поэтому решение Java, вероятно, не возможно, но было бы идеальным, если это возможно.

мы не обязательно ищем пуленепробиваемое решение, поэтому любые предложения были бы полезны, независимо от того, насколько дурацкими!

Edit:

Я понимаю, что есть целый ряд нетехнических вопросов здесь, что может вызвать много дискуссий (кто бы мог подумать?). Я хочу дать понять, что я не поклонник DRM (как это было уподоблено) и не пытаюсь быть злым :).

Я понимаю, что эти проблемы реальны, и при моих рекомендаций я сделаю это очень ясно. Однако мне нужно изучить техническое решение, прежде чем я смогу это сделать.

1 ответов


нет.

Вы можете делать все виды странного обнаружения, зависящего от ос (он использует somedriver.dll?), или обнюхивание имен ("содержит ли он "XPS"?") а в конце:

  • 1) это не ваше дело, как я печатаю свои документы,
  • 2) из-за абстракций практически невозможно определить, будет ли данный логический принтер фактически печатать на физическом принтере или где-то еще;
  • 3) это не говоря сетевые драйверы (что такое \joescomputer\someprinter? Трудно сказать: может быть принтер, может быть генератор PDF, может быть тетя Матильда; сеть добавляет еще один уровень абстракции между вашей программой и физическим оборудованием)
  • 4) Если я действительно очень хочу неофициальную копию, я сделаю скриншот или даже фактическую фотографию, или
  • 5) Возьмите чертову распечатку бумаги с физического принтера и подайте ее через сканер, ругая вас за то, что вы мешаете моему рабочему процессу причина.
  • обратите внимание также, что 6) есть средне - и крупномасштабные печати которые предоставляют интерфейс "сетевой принтер", а затем позволяют пользователю делать много вещей с документом (который в этот момент существует только как файл катушки на сервере где-то): печать на любом из n принтеры, подключенные к системе, электронной почте, факсу, что угодно-так что вы не знаете заранее, будет ли документ физически печатать (или где), даже как задание печати оставляет компьютер.

вы, по сути, боретесь с DRM-битвой в немного другой обстановке( это не моральное суждение ,а утверждение факта:" я хочу ограничить выбор, который имеют пользователи моего программного обеспечения", является ядром DRM, и вашего вопроса - независимо от любого мнения, которое я могу иметь по этому вопросу); как вы можете знать, они грязны и имеют неприятные побочные эффекты ("что вы имеете в виду, я не могу печатать на своем физическом принтере, потому что он называется WinXPStation?!?"мой антивирус говорит, что ваше программное обеспечение пытается возиться с моими драйверами печати, вы толкаете шпионское ПО?!?"), и они непобедимы - всегда есть обходной путь.

даже не думайте на самом деле отключение что-то думаю является драйвером для печати в файл: обратите внимание на фиаско DRM Sony и обратите внимание, что вы можете получить иск за незаконное вмешательство в компьютер.

на более прагматичной ноте, если ваше программное обеспечение отключается какая-то другая часть системы, а затем эта другая часть не работает, потому что это отключен, слово выйдет. "Я установил SomeSoftware от NigelSoft, и он сломал мой принтер" не является хорошей репутацией для приобретения, и трудно стереть - люди будут жаловаться, и, ну, что бы ни происходило в Интернете, может остаться там навсегда (обратите внимание на различные подобные инциденты, которые вы обнаружите при поиске "(антивирусный поставщик) разбивает окна"). Обратите также внимание, что данный поставщик будет меньше чем доволен:"ваше программное обеспечение #@$@ умышленно нарушает мой замечательный специальный Радужный принтер (tm), вы должны нам деньги, которые мы должны были вернуть, aaand вот несколько судебных исков против вас".