2012-10-16 11 views
5

Ich muss einen Passwortschutz zu PDF-Dateien mit Ghostscript in PHP setzen.Passwortgeschützte PDF mit Ghostscript

Diese Dateien werden mit einem einfachen Formular auf den Server hochgeladen (ich brauche keine Hilfe dabei), aber sie haben zunächst keinen Schutz. Ich möchte ihnen einen Passwortschutz geben, indem ich die exec-Funktion und Ghostscript verwende. Aber ich konnte nirgendwo finden, wie die Ghostscript-Abfrage aussehen sollte.

Zum Beispiel habe ich eine PDF-Datei namens File.pdf. Ich lade es hoch, und dann muss ich Schutz darauf setzen und es File_protected.pdf nennen.

Ich habe versucht, es so zu tun, aber zu viel‘.ps' Dateigewichte und es gibt kein Passwort in dem letzten File_protected.pdf:

exec("gs -dNOPAUSE -dBATCH -sDEVICE=pswrite -sOutputFile=File.ps File.pdf"); 
exec("gs -dNOPAUSE -dBATCH -sPDFPassword=password -sDEVICE=pdfwrite -sOutputFile=File_protected.pdf File.ps"); 

Antwort

10

OK so erstens Sie nicht konvertieren müssen die Datei zu PostScript. Ghostscript ist perfekt in der Lage, die PDF-Datei als Eingabe zu verwenden und eine PDF-Datei als Ausgabe zu produzieren, viele Leute tun dies aus vielen Gründen.

Sie müssen jedoch beachten, dass Ghostscript, wenn Sie dies tun, nicht nur die PDF-Datei oder etwas "stempelt", es vollständig zu markieren Operationen und dann eine komplett neue PDF-Datei, die enthält diese Zeichen. Aber wenn Sie mit der Konvertierung zu PostScript und zurück zu PDF zufrieden waren, sollten Sie dies als befriedigend empfinden, es ist tatsächlich besser als diese 2-Stufen-Konvertierung.

Zweitens, es gibt keinen 'PDFPassword' Schalter für das pdfwrite Gerät, weshalb es keinen Effekt hat. Es gibt Schalter: -sOwnerPassword und -sUserPassword. Sie können auch den -dPermissions Switch bereitstellen.

Sie sollten das PDF Referenzhandbuch lesen, um die Details zu lesen, aber kurz gesagt, der Besitzer kann alles mit der Datei machen, der Benutzer ist auf die Berechtigungen beschränkt (was ein Bitfeld ist). Wenn Sie kein Benutzerkennwort angeben, kann jeder die Datei öffnen (beschränkt auf Berechtigungen). Sie müssen jedoch das Benutzerkennwort eingeben, um alles zu tun, was nicht von den Berechtigungen zugelassen wird. Ich vermute, das ist was du willst, aber es liegt an dir.

+0

vielen Dank –

Verwandte Themen