Situace: mám zaheslované pdf, potřebuju ho co nejjednodušším způsobem zbavit hesla (tj. zadat heslo a znovu uložit bez něj). Zdůrazňuji, že nejde o "crack", heslo musím znát!
Hledal jsem a všude nacházel jen mně už dříve známé postupy v konzoli přes qpdf nebo pdftk, případně tiskem z některého prohlížeče opět do pdf souboru.
qpdf v konzoli sice funguje, ale postrádá jakoukoliv eleganci, neb do příkazu je vždycky potřeba napsat vstupní soubor, výstupní soubor a heslo. To je problém zejména u většího množství různých souborů s různými hesly... Ano, zase by šel napsat nějaký jednoúčelový skript, různě měnit jména souborů atd. apod., ale dohromady by to nic moc nepřineslo.
Tisk z prohlížečů sice nějak funguje taky, ale obvykle převede text v pdf souboru na rastr, takže k ničemu. Zbývá tisk přes virtuální tiskárnu (Boomaga) a vyvedení souboru z ní do pdf, tam fonty zůstanou, ale zase Boomaga na Linux Mintu neumožňuje ono vyvedení. Nevím proč - možná jen nastavení? V Kubuntu 18.04 to jde, nezkoumal jsem blíže.
Našel jsem i nějaké pokusy o GUI třeba v Javě (už nevím, zda pro qpdf nebo pdftk), ale např. to neumělo dnes docela běžně používané 256 bit AES šifrování, takže bohužel...
Pořád jsem si říkal, že přece není možné, aby tak jednoduchá klikací věc neexistovala....a pokud ne, tak že by ji to chtělo vytvořit
No a jelikož nejsem programátor, tak jsem si vzpomněl na Zenity a ejaj (jakkoliv ji nemám rád). Zadal jsem jí:
Napiš skript pro Zenity, který:
1) vyzve k otevření pdf souboru
2) vyzve k zadání hesla
3) zavolá program qpdf
4) vyzve k uložení nově vytvořeného souboru
Odpověď přišla obratem a její obsah je v příloze (jediná věc, kterou jsem musel opravit, byla špatná čeština v některých řetězcích). No a vše funguje "na první dobrou", ve skriptu jsou dokonce i ošetřeny nestandardní stavy...
Celá věc se dá následně integrovat třeba do Krusaderu přes Uživatelské činnosti (kudy se pak spouští onen skript a lze na to mít i ikonu v nástrojové liště plus nabídku v menu vyvolaném pravým myšítkem).
Co víc si přát...
Pro méně znalé dodávám, že pro běh skriptu je samozřejmě v systému nutné mít nainstalované prostředí Zenity a program qpdf, tedy případně sudo apt install zenity
asudo apt install qpdf
a skript musí mít příslušná práva (zejména musí být spustitelný pro uživatele).