Wie verschlüssele ich ein Dokument und Zugriffsrechte durch ein Passwort mit arara?
**Wurde nochmal nochmal überarbeitet-....**
Hallo!
Ich habe, basierend auf [Wie verschlüssle ich PDF-Dateien mit einem Passwort?][1], folgendes (funktionierendes) arara-Programm geschrieben:
!config
# GhostScript-ps2pdf password-security rule for arara
# version: 0.1b
# requires arara 3.0+
identifier: secure
name: Secure
command: <arara> @{program} -sOwnerPassword=@{ownerpw} -sUserPassword=@{userpw} -dEncryptionR=@{encryptionmethode} -dKeyLength=@{keylength} -dPermissions=@{permission} @{getBasename(file)}.pdf @{outputpath}@{getBasename(file)}@{nameaffix}.pdf
arguments:
- identifier: program
flag: <arara> @{parameters.program}
default: ps2pdf
- identifier: ownerpw
flag: <arara> @{parameters.ownerpw}
default: aaa
- identifier: userpw
flag: <arara> @{parameters.userpw}
default: bbb
- identifier: encryptionmethode
flag: <arara> @{parameters.encryptionmethode}
default: 3
- identifier: keylength
flag: <arara> @{parameters.keylength}
default: 128
- identifier: permission
flag: <arara> @{parameters.permission}
default: 0
- identifier: nameaffix
flag: <arara> @{parameters.nameaffix}
default: _sec
- identifier: outputpath
flag: <arara> @{parameters.outputpath}
default: C:\Secret\
Ich würde gerne die letzten beiden `identifier` ändern:
**1. Problem "`nameaffix`**"
Nimmt man `outputpath` raus, wird die Ausgabedatei im selben Arbeitsordner erstellt. Wie kann ich hier dafür sorgen, daß man den Namenszusatz, per default `_sec`, *zwar nach eigenen Vorstelllungen setzen, aber* bei Bedarf auch abschalten kann, m.a.W. den Parameterwert leer setzt?
`--->` Das hätte dann auch zur Folge, daß die mittels `pdflatex` ausgegebene Datei überschrieben wird.
ALLERDINGS: Nimmt man den identifier `nameaffix` ganz raus, wird die Ausgabedatei überschrieben mit einer zwar namensgleichen, aber leeren Datei - das verstehe ich nicht ???
____
€dit:
====
Das "1. Problem 'nameaffix'" ist dann mal kompletter Quatsch (und bedarf keiner Änderung), weil
% arara: pdflatex
% #arara: secure: { userpw: foo }
% #arara: secure: { userpw: foo , nameaffix: -mostsecret }
% #arara: secure: { userpw: foo , nameaffix: "" }
% in this order:
% <"nothing"> yields: jobname_sec.pdf, the default
% <nameaffix: -mostsecret> yields jobname-mostsecret.pdf
% <nameaffix: ""> yields jobname.pdf; but a different outputpath is needed!!!
\documentclass{article}
\begin{document}
\section{My very secret Text}
......
\end{document}
Beachte aber auch den letzten Hinweis, sonst wird nämlich eine leere PDF erzeugt.
____
____
**2. Problem "`outputpath`**"
Wie kann ich hier dafür sorgen, daß dieser Parameter rein optional ist, also per Default leer ist.
Das heißt, bei Default wird eine Ausgabedatei u.U. mit Namenszusatz, etwa `jobname_sec.pdf` *im selben Ordner* erstellt.
___
___
€dit:
====
Das 2. Problem sollte irgendwie so lösbar sein:
- identifier: outputpath
flag: <arara> @{parameters.outputpath}
default: <arara> @{ getDirname(file) }
*Allerdings kann die Eingabe so noch nicht stimmen!*
Im Fall
% #arara: secure: { userpw: foo , outputpath: \GeheimeDokumente\AktuelleGeheimdokumente }
wird, wenn man das so eingebeben hat, ein outputpath verwendet (darin dann alles gut!).
*"wenn man das so eingebeben hat" soll heißen, hier darf nicht noch `C:` vorne dranstehen, sonst geht es nicht. Das ist wahrscheinlich aus irgendwlechen Gründen klar, gut ist es aber auch nicht - was, wenn es z.B. unter `K:/...` gespeichert werden soll?*
Im Fall
% arara: secure: { userpw: foo }
also ohne outputpath wird aber im Arbeitsordner eine Datei `nulljobname_sec.pdf`.
Dieser seltsame Beisatz "**null**" deutet doch darauf hin, daß irgendein Mechanismus eingesetzt hat - **wie kann man das beheben**?
___
___
**Danke fürs Lesen und das Interesse!**
PS:
===
**Verbesserungsvorschläge allgemeiner Natur sind auch willkommen!**
PPS:
===
*Es wurde hier m.E. nichts Windos-, Linux-spezifisches gemacht, aber: Ich kann das Programm selbst nur unter `windows` testen; eine Rückmeldung der Linux-Nutzer wäre also nett.*
[1]: http://texwelt.de/wissen/fragen/6647/wie-verschlussle-ich-pdf-dateien-druckoptionen-auswahlmoglichkeit-etc-mit-einem-passwort