Itext PDF-Ausdruck verhindern

javama

Erfahrenes Mitglied
Anhand Itext erstelle ich ein paar PDFs, die im browser angezeigt werden können, ich möchte jetzt verhindern dass diese PDFs ausgeduckt werden (SAVE und PRINT Deaktivieren), wie kann ich das erreichen.
danke im voraus
 
1. Wozu soll das gut sein?
2. geht nicht. Der Inhalt, der beim Nutzer angezeigt wird, kann auch von ihm gedruckt werden. Wenn du das Drucken verhindern willst, darfst du dem User den Inhalt nicht geben.
 
wirklichen Schutz gibt es nicht. Es gibt ein paar pseudo-Maßnahmen (siehe Post von Tom), aber die sind ungefähr so nützlich wie wenn man auf HTML-Seiten über die Bilder transparente Bilder drüber legt. Der Nutzer könnte z.B. einen PDF-Reader nutzen, der das „Feature“, dass das Dokument nicht gedruckt werden kann, nicht unterstützt (gibt es sicher ne Menge). Außerdem kann der Nutzer das Dokument abgreifen und abspeichern, Drucken ist heute sowieso nicht mehr relevant.
 
die Vorschläge von Tom habe ich ausprobiert aber geht nicht
Java:
PdfReader reader = new PdfReader("my-old-file.pdf");
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream("my-new-file.pdf"));
stamper.setEncryption("my-owner-password".getBytes(), "my-user-password".getBytes(),
    PdfWriter.AllowPrinting | PdfWriter.AllowCopy, PdfWriter.STRENGTH40BITS);
stamper.close();

PdfWriter.AllowPrinting | PdfWriter.AllowCopy, PdfWriter.STRENGTH40BITS
IS DEPRECATED

als alternativ habe ich folgendes:
Java:
stamp.setEncryption(System.getProperty("user.name").getBytes(), System.getProperty("user.name").getBytes(), PdfWriter.ALLOW_PRINTING | PdfWriter.ALLOW_COPY, PdfWriter.STANDARD_ENCRYPTION_40);
aber das funktioniert nicht
 
STRENGTH40BITS ist Deprecated. Dann nimm doch eine ernsthafte Schlüssellänge. 512Bit ist heute Standard.

Trotzdem: Das ganze ist zwecklos vergeudete Arbeitszeit, weil es immer Wege gibt, die „Schutzmaßnahmen“ zu umgehen.
 
512Bit gibt es gar nicht
ich weiss es gibt andere wege das ganze auszudrucken, aber was ich brauche ist intern auf der Arbeit
und keiner darf die anderen wege benutzen.
 
vielleicht gibt es so was wie 256Bit, 128Bit, … ?

wenns nur unternehmensintern läuft, könnte man ja einfach hinschreiben „darf nicht gedruckt werden“ – fertig.
 
mit
Java:
System.getProperty("user.name")
bekomme ich meinen Benutzername, und das ist das kennwort für das PDF, ich möchte aber anstatt benutzername, das PASSWORT mit dem ich mich einlogge als kennwort für pdf.
wie kann ich drauf zugreifen?
 

Neue Beiträge

Zurück