Wenn Sie einmal drucken können, können Sie unendlich oft drucken.
Stellen Sie sich einen Netzwerkdrucker vor: Die zu druckenden Rohdaten müssen an ein Remote-Embedded-Gerät gesendet werden, das Ihr Programm nicht einschränken könnte, selbst wenn es irgendwie den Besitz des gesamten Computers des Benutzers übernimmt (was bereits als äußerst anstößig angesehen würde) (siehe Sony-Rootkit-Skandal für die Art der Reaktion).
Wie können Sie feststellen, dass das Gerät, mit dem der Computer des Benutzers spricht, ein echter HP LaserJet ist und nicht etwas, das vorgibt, eines zu sein? anstatt es zu drucken? Da diese Daten ausreichen, um den Auftrag zu drucken, müssen Sie sie nur mehrmals auf einem echten Drucker abspielen, um mehrere Kopien zu erhalten. Sie können auch einen Sniffer (wie in @dlamblin erwähnt) verwenden und sich die Emulation des Druckers ersparen.
Man könnte sich das Verbot von Netzwerkdruckern vorstellen, aber nur Netzwerkdrucker im Büro zu haben (nicht einfache Drucker, die an einen Universal-PC angeschlossen sind, sondern große Drucker, die direkt an den Ethernet-Switch angeschlossen sind) sind nicht ungewöhnlich. Aus diesem Grund könnten einige Ihrer Nutzer (wie viele davon stark von der Zielgruppe abhängen würden) nicht drucken, was keine gute PR darstellt.
Und selbst USB ist nicht unempfindlich (obwohl dazu mehr technisches Wissen und möglicherweise spezielle Hardware erforderlich wäre). Es gibt USB-Sniffer. Und auch ohne sie könnte ein USB-Drucker "Gadget-Treiber" auf einem Embedded-Linux-Gerät ausreichen (beachten Sie jedoch, dass ich zum jetzigen Zeitpunkt keinen USB-Drucker-Gadget-Treiber für Linux kenne).
Dies ist alles vorausgesetzt, das Programm hat es irgendwie geschafft, die vollständige Kontrolle über den Computer des Benutzers zu erlangen. Wie die verschiedenen fehlgeschlagenen Versuche des Kopierschutzes zeigen, ist dies leichter gesagt als getan. Woher wissen Sie, dass der von Ihnen verwendete Druckertreiber nur eine ungewöhnliche Version des Druckertreibers für eine bekannte Druckermarke ist und keine gehackte Version, um den Stream auf der Festplatte zu speichern? Woher wissen Sie, dass sich im Druckstapel kein Treiber befindet, der alle USB-Transaktionen auf der Festplatte protokolliert? Und wie können Sie einen normalen Benutzer von virtuellen Maschinen von jemandem unterscheiden, der sie verwendet, um die Kommunikation mit den USB-Geräten abzufangen?
Alles in allem müssen Sie nicht so weit gehen. Die meisten Leute werden, selbst wenn sie über das technische Know-how verfügen, nicht versuchen, auch die schwächsten Versuche zu umgehen, Doppeldruck zu vermeiden. In der Tat wäre ich nicht überrascht, wenn die meisten Benutzer freiwillig nicht mehr als einmal drucken würden, wenn die Datei nur einmal gedruckt werden muss (dann würden jedoch mehr Fälle versehentlich doppelt gedruckt). Machen Sie also ein einfaches Programm, das einmal druckt und dann die Originaldaten löscht. Weisen Sie den Benutzer darauf hin, dass die Daten nach dem Drucken einmal gelöscht werden. Akzeptieren Sie, dass einige Benutzer mehr Male drucken, als Sie erlaubten, und dass einige Leute weniger als Sie zulassen (Stromstörungen, defekte Drucker, falsch konfigurierte Systeme oder der gefürchtete PC LOAD LETTER)können alle dazu führen, dass der Druck fehlschlägt). Seien Sie darauf vorbereitet.
Für Menschen, die mehrmals drucken als erlaubt, akzeptieren Sie einfach die Verluste. Auf die gleiche Weise muss ein Ladengeschäft akzeptieren, dass ein Bruchteil seines Lagerbestands versehentlich beschädigt wird oder auf irgendeine Weise verloren geht. Haben Sie einen Weg, die größten Täter zu finden und mit ihnen umzugehen (das Rechtssystem scheint eine beliebte Wahl zu sein).
Für Benutzer, die weniger Zeit als zulässig drucken, wäre etwa eine telefonische Unterstützung, bei der der Benutzer eine neue Kopie anfordern kann, eine Option (dies funktioniert bei Microsoft, oder?). Natürlich missbrauchen manche Leute dies, aber siehe den vorherigen Absatz.