Moin Moin!
Naja, du mußt ja gar nicht diesen ganzen Overkill betreiben. Aber Du könntest (mit etwas Aufwand auf PDF-Seite) herausfinden, ob eine Rechnung gedruckt wurde oder nicht, in dem Du in der PDF-Datei eine Rechnungs-ID (Rechnungsnummer) ablegst, beim (genauer vor dem) Ausdrucken einen Server informierst. Und wenn der Zweitdruck irgendwie markiert werden soll, läßt sich das über den gleichen Mechanismus erledigen.
'tschuldige, aber jetzt steh' ich auf der Leitung;) Zur Erklärung: das ganze läuft über einen Apachen (Datenbank, PDF-Generierung etc, Authentifizierung etc.), clientseitig rennt eine js-Anwendung im Browser. Ich weiss also, wann ein PDF-generiert wurde, auch wann und ob es per email (über einen externen smtp-server) verschickt wurde. Aber zwischen Generieren und Drucken kann der Server und auch der Client leider nicht unterscheiden.
Ist ja auch nicht notwendig, denn darum kümmert sich das PDF:
Du generierst ein spezielles PDF, dass sich nach Druck auf einen PDF-Formular-Button über PDF-Javascript-Mechanismen selbst ausdruckt. Innerhalb des PDF-Javascripts läuft eine HTTP-Abfrage zum Rechnung-Ist-Gedruckt-Server (für alle Rechnungsempfänger erreichbar), der ...
1. notiert, dass die Rechnung (mal wieder) gedruckt wird
2. dem Javascript mitteilt, wie oft die Rechnung bislang schon gedruckt wurde.
Innerhalb des Javascripts kannst Du ggf. noch einen Layer über das Dokument legen, z.B. zum schwärzen von Barcodes oder für ein "Zweitdruck"-Pseudo-Wasserzeichen.
In HTML/JS-Pseudocode:
<script>
function druckmich(button)
{
var nr=button.form.elements['rechnungsnummer'].value;
var ret=http_get("http://dein.apache/rechnung/count.cgi?nr="+nr);
if (ret==null) {
alert("Oops, Server tot?");
} else if (ret=="0") {
self.print();
} else {
document.getElementsByTagName("body")[0].class="zweitdruck";
self.print();
}
}
</script>
<form>
<input type="hidden" name="rechnungsnummer" value="47110815">
<input type="button" onclick="druckmich(this)" value="Drucken">
</form>
So ungefähr funktionierte das jedenfalls mit der Gratis-Paketmarke. Wie man überhaupt JS in ein PDF bekommt, weiß ich nicht, mit irgendwelchen Adobe-Tools muß das auf jeden Fall gehen. Wie weit freie Tools das können, weiß Google vermutlich. Ich meine mich zu erinnern, dass die normale Druckfunktion lahmgelegt war, das geht über ein Flag beim Generieren des PDFs.
Alexander
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".