staging.inyokaproject.org

KDE Servicemenü "pdf_encryption" PDF mit Passwort schützen

Status: Ungelöst | Ubuntu-Version: Kubuntu 21.10 (Impish Indri)
Antworten |

trollsportverein

Avatar von trollsportverein

Anmeldungsdatum:
21. Oktober 2010

Beiträge: 2627

Benötigt wird kdialog, ghostscript, libnotify-bin und das breeze-icon-theme für das Krokodil vom Pop-Up zum kontrollieren des gesetzten PDF-Passworts.

sudo apt-get install kdialog ghostscript libnotify-bin breeze-icon-theme

Der Inhalt der /home/USERNAME/.local/share/kservices5/ServiceMenus/pdf_encryption.desktop:

[Desktop Entry]
Type=Service
ServiceTypes=KonqPopupMenu/Plugin
MimeType=application/pdf
Actions=01_pdf_encyption;
X-KDE-Submenu= PDF encyption ==>
X-KDE-Submenu[de]=PDF verschlüsseln ==>
Icon=application-pdf

[Desktop Action 01_pdf_encyption]
Icon=application-pdf
Name=PDF encyption
Name[de]=PDF verschlüsseln
Exec=[ -f "`echo "%f" | sed -e s/[^.]*$/encrypted.pdf/I`" ] && notify-send -i window-close.png "STOP! File exists! `echo "%f" | sed -e s/[^.]*$/encrypted.pdf/I | xargs basename`" ; [ ! -f "`echo "%f" | sed -e s/[^.]*$/encrypted.pdf/I`" ] && PW=`kdialog --inputbox "Password for PDF Encryption:"` &&  gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dBATCH -dNOPROMPT -dNOPAUSE -dQUIET -sOwnerPassword=$PW -sUserPassword=$PW -sOutputFile="`echo "%f" | sed -e s/[^.]*$/encrypted.pdf/I`" "%f" &&  notify-send -i /usr/share/icons/breeze/apps/48/alligator.svg "PDF-Password:  `echo $PW`"

USERNAME im Dateipfad muss durch den eigenen Usernamen ersetzt werden.

Dann noch zur Sicherheit einmal kbuildsycoca5 durchlaufen lassen:

kbuildsycoca5 --noincremental

Dann sollte es auch schon funktionieren. Wenn die entsprechende Ausgabe der PDF Datei BEISPIEL.pdf bereits als BEISPIEL.encrypted.pdf existiert, stoppt das Servicemenü und gibt ein Warn-Pop-Up aus.

Die Test-Datei die ich verwendet hatte, war diese:

Google spuckte mir das als Testdatei für PDF aus. Es ist mit Acrobat Distiller 7.0.5 (Windows) erstellt und war PDF-Version 1.6.

trollsportverein

(Themenstarter)
Avatar von trollsportverein

Anmeldungsdatum:
21. Oktober 2010

Beiträge: 2627

Update: entweder war die Tastatur müde, oder es war der Tippfehlerteufel, der das "r" in "encyption" gefressen hatte. ☺ Funktioniert hat es trotzdem, weil Fehler durch Fehler ausgeglichen war. 😎 Nun aber korrigiert und mit zusätzlicher Entschlüsselungsfunktion angereichert:

Der Inhalt vom neuen erweiterten /home/USERNAME/.local/share/kservices5/ServiceMenus/pdf_encryption.desktop:

[Desktop Entry]
Type=Service
ServiceTypes=KonqPopupMenu/Plugin
MimeType=application/pdf
Actions=01_pdf_encryption;02_pdf_decryption;
X-KDE-Submenu= PDF encyption or encryption ==>
X-KDE-Submenu[de]=PDF verschlüsseln oder entschlüsseln ==>
Icon=application-pdf

[Desktop Action 01_pdf_encryption]
Icon=application-pdf
Name=PDF encryption
Name[de]=PDF verschlüsseln
Exec=[ -f "`echo "%f" | sed -e s/[^.]*$/encrypted.pdf/I`" ] && notify-send -i window-close.png "STOP! File exists! `echo "%f" | sed -e s/[^.]*$/encrypted.pdf/I | xargs basename`" ; [ ! -f "`echo "%f" | sed -e s/[^.]*$/encrypted.pdf/I`" ] && PW=`kdialog --inputbox "Password for PDF Encryption:"` &&  gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dBATCH -dNOPROMPT -dNOPAUSE -dQUIET -sOwnerPassword=$PW -sUserPassword=$PW -sOutputFile="`echo "%f" | sed -e s/[^.]*$/encrypted.pdf/I`" "%f" &&  notify-send -i /usr/share/icons/breeze/apps/48/alligator.svg "PDF-Password:  `echo $PW`"

[Desktop Action 02_pdf_decryption]
Icon=application-pdf
Name=PDF encryption
Name[de]=PDF entschlüsseln
Exec=[ -f "`echo "%f" | sed -e s/[^.]*$/decrypted.pdf/I`" ] && notify-send -i window-close.png "STOP! File exists! `echo "%f" | sed -e s/[^.]*$/decrypted.pdf/I | xargs basename`" ; [ ! -f "`echo "%f" | sed -e s/[^.]*$/decrypted.pdf/I`" ] && PW=`kdialog --inputbox "Password for PDF Decryption:"` &&  gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -sOutputFile="`echo "%f" | sed -e s/[^.]*$/decrypted.pdf/I`" -sPDFPassword=$PW -f  "%f" &&  notify-send -i /usr/share/icons/breeze/apps/48/alligator.svg "PDF-Password was:  `echo $PW`"

Auch bei der Entschlüsslungsfunktion gibt es als Schutz vor überschreiben von BEISPIEL.decrypted.pdf stoppen und ausgeben vom Warn-Pop-Up.

Antworten |