Man kann in den Einstellungen des PDF Druckers einen benutzerdefinierten PDF Speicherpfad festlegen. Wie man das PDF Drucker Ausgabeverzeichnis klassisch in einer Desktop Installation via Druckdialog, oder aber auch in einer PDF Netzwerkdrucker Installation, einstellt und was zu beachten ist zeigen wir in diesem Kapitel!

Ausgabespeicherpfad festlegen in PDF Netzwerkdrucker Installationen

Man kann dem PDF Drucker beispielsweise in der global.ini Konfigurationsdatei ein festes PDF Speicher-Verzeichnis (Setting: Output) für erzeugte PDF Dateien mitgeben. Arbeitet man ohne einen Druckdialog, also beispielsweise so, dass man unseren PDF Drucker als PDF Netzwerkdrucker installiert, so gibt man mit der Einstellungsoption Output hier einen Pfad vor. Das ganze Thema, wie man das mit einem PDF Netzwerkdrucker einrichtet, haben wir hier beschrieben. Soweit also nicht wirklich schwierig. Erwähnenswert ist vielleicht hier nur noch, das jede PDF Druckerinstanz seine eigene global.ini hat, bzw. verallgemeinert beschrieben...jede PDF Druckerinstanz hat eigene Konfigurationsdateien.

Unsere Empfehlung

Wenn sie den PDF Drucker als Netzwerkdrucker mit /SHARE /PRINTERNAME="MY_NETWORK_PRINTER" installieren (Installationsparameter für das Setup), dann wird unter C:\ProgramData\PDF Writer\MY_NETWORK_PRINTER\Output automatisch mit Ausführung des Setups (als Admin!) eine Verzeichnisstruktur angelegt, unter der jeder Benutzer der den PDF Netzwerkdrucker anspricht und druckt, automatisch sein eigenes Benutzerverzeichnis erhält. Von hier kann er sich dann seine PDFs herunterziehen bzw. aufrufen. Als Admin kann man diesen Benutzerordner dann selektiv freigeben, beispielsweise ein Volume damit verbinden auf das jeder Benutzer innerhalb seiner Session zugreifen kann.

Wir empfehlen als Hersteller die Nutzung des Standardpfades unter C:\ProgramData\PDF Writer\MY_NETWORK_PRINTER\Output auf dem sog. "Printer Server System" zu verwenden, auf dem 7-PDF Printer als PDF Netzwerkdrucker eingerichtet wurde.

Wenn sie davon abweichen möchten...

Will man diese Verzeichnisstruktur ändern und einen eigenen Pfad (UNC wird auch unterstützt) nutzen, so muss man bedenken das der User SYSTEM entsprechend Schreibrechte auf dieses Ausgabeverzeichnis erhält. Wenn man unsere Software im Kontext eines PDF Netzwerkdruckers verwendet, wird selbiger Dienst als SYSTEM User des PDF Printserver-Systems ausgeführt.

Als PDF Netzwerkdrucker installiert, wird der PDF Drucker als SYSTEM Benutzer ausgeführt
Als PDF Netzwerkdrucker installiert, wird der PDF Drucker als SYSTEM Benutzer (Computerkonto) ausgeführt.

(!) Wichtig zu wissen...

Werden also PDF Dateien nicht auf einen geänderten Output Pfad geschrieben (beispielsweise auf eine entfernte UNC Freigabe), hat der SYSTEM User unter dem 7-PDF Printer läuft häufig keine Schreibrechte! Die Lösung hier ist meistens dann das Computerkonto des Printservers als Mitglied in die AD-Gruppe, welche die entsprechende Berechtigung auf die Freigabe hat, mit aufzunehmen.

Konkreter beschrieben: Damit der Netzwerk PDF Drucker auf eine Freigabe eines anderen Servers zugreifen kann, muss das Computerkonto des Printservers Schreib- und Lesezugriff darauf bekommen. Wenn man beispielsweise bereits eine entsprechende Gruppe besitzt, welche bereits die passenden Zugriffsberechtigungen auf diese Freigabe hat, so kann man einfach das Computerkonto des Printservers dieser Gruppe hinzufügen. Damit hat dann der Benutzerkontext SYSTEM ebenfalls auf die Freigabe Schreib/Lese Zugriff und das PDF kann vom PDF Drucker auf diesen UNC Pfad geschrieben werden. Bei der Suche nach dem Computerkonto muss der Objekttyp „Computer“ nur vorher noch ausgewählt werden. Dieser ist standardmäßig nicht aktiviert.

Die nachfolgenden Screenshots zeigen die nötigen Schritte noch mals anschaulich:

Select Users

Activate Object Type Computer

AD Member Group

Das Thema ist hier auch noch mal genauer beschrieben.

Auch müssen nicht dynamische Teile des Pfads exitieren (keine Macro Tags) wenn sie Teil des Gesamtpfades sind. Denn ansonsten geht das PDF das gedruckt wurde ins Nirvana. Das ist ein wichtiger Hinweis für alle die den Drucker entsprechend so einrichten möchten. In seltenen Fällen kann auch eine AV bzw. Security Software dem PDF Drucker das Ablegen von PDF Dateien verweigern. Alles schon dagewesen...

Wir haben hier auch alle möglichen "Macro Tags", wie beispielsweise <smarttitle>, dokumentiert...die man im Ausgabepfad verwenden kann. Sie sind dynamisch weil sie vom PDF Drucker "befüllt" werden.

Auch soll hier noch mal gezeigt werden das bei einer PDF Netzwerkdrucker Installation der Druckjob zwar den User kennt der den Druckauftrag absetzte, die Prozesse auf dem Printserver selbst im Rechtekontext des SYSTEM Benutzers laufen.

Der Spooler kennt den Benutzer der den Druckauftrag absetzte
Der Spooler kennt den Benutzer der den Druckauftrag absetzte.

Die Prozesse werden ausgeführt mit dem SYSTEM Benutzer
Die Prozesse werden ausgeführt mit dem SYSTEM Benutzer.

Ausgabespeicherpfad festlegen in Standard Desktop Installationen unter Verwendung des PDF Drucker Dialogs

Hier gibt es eine Besonderheit zu beachten, wenn man einen PDF Ausgabespeicherpfad (auch UNC Pfade sind möglich) vorgeben möchte, also den klassischen PDF Druckdialog nutzt. Dann reicht es nicht aus, nur in der globalen Konfigurationsdatei global.ini einen Output Pfad festzulegen. Denn, der Druckdialog merkt sich hier in dieser Verwendung, den letztmalig genutzen Pfad und Dateinamen (GUI Häckchen) hartnäckig. Die dafür verantwortlichen "Häckchen" sind hier im nachfolgenden Screenshot rot umrahmt.

Diese Einstellungen muss man im GUI Mode des PDF Druckers deaktivieren, wenn man den Ausgabespeicherpfad fest vorgeben möchte
Diese Einstellungen muss man im GUI Mode des PDF Druckers deaktivieren, wenn man den Ausgabespeicherpfad fest vorgeben möchte. Der Screenshot zeigt die Optionen hier im 7-PDF Printer Optionen Dialog.

Diese Einstellungsoptionen muss man also deaktivieren. Um das "global" für den PDF Drucker zu machen, reicht es nicht die Häckchen über den Optionen Dialog des PDF Druckers herauszunehmen, dann wäre das nur für den einen Anwender gemacht, unter dem man den Optionen Dialog gestartet hat.

Will man es GLOBAL festlegen, so muss man die dafür verantwortlichen Einstellungen in einer Konfigurationsdatei wie der global.ini fest deaktivieren. Die Settings hierfür lauten RememberLastOptionSet, RememberLastFolderName und RememberLastFileName. Wie das zu machen ist zeigt die nachfolgende global.ini

Diese Einstellungen werden im GUI Mode hier ind er global.ini Konfigurationsdatei deaktiviert
Diese Einstellungen werden für den GUI Mode hier in der global.ini Konfigurationsdatei "deaktiviert", also auf "no" gesetzt.

Zum Herauskopieren des nötigen global.ini Einstellungsinhalt hier noch mal anders aufgeführt:


[PDF Printer]
; This is a sample global.ini file.
; It illustrates some common settings that can be found of this type of ini file.
; All lines prefixed with a semicolon are comment lines. Remove the semicolon on the lines below to activate the settings.
; More information on the individual settings can be found in the documentation.

;DisableOptionDialog=yes
;WipeMethod=3pass
;ShowSaveAS=always
;ShowSettings=never

Output=\\Server\Freigabe\<smarttitle>.pdf
RememberLastOptionSet=no
RememberLastFolderName=no
RememberLastFileName=no

Im Benutzerkontext ausgeführt, wird unser 7-PDF Printer also die Schreib/Lese Rechte des aktuellen Benutzers haben. Hier im nachfolgenden Screenshot also unter thorsten:

7-PDF Printer wird mit Benutzerrechten ausgeführt
7-PDF Printer wird mit Benutzerrechten ausgeführt.

Ausgabespeicherpfad festlegen mit VBScript Macros

Ein VBScript Macro zum Festlegen eines festen Ausgabespeicherpfades sähe vom Coding her also so aus, denn hier gibt es im GUI Mode genau das gleiche "Thema" zu erledigen:

Sub OnConfigLoaded()
	Rem -- geht auch wenn man es so setzt in der Global INI
	context("Config")("rememberlastoptionset") = "no"
	context("Config")("rememberlastfoldername") = "no"
	context("Config")("rememberlastfilename") = "no"
	context("Config")("output") = "\\Server\Freigabe\<smarttitle>.pdf"
End Sub

Wenn man also dieses Coding unter dem Installationspfad des PDF Druckers, und dort in das Macros Verzeichnis kopiert und die VBScript Datei beispielsweise pfad_aendern.vbs nennt, so würde das Macro automatisch vom Drucker ausgeführt und den Ausgabespeicherpfad fest mit \\Server\Freigabe\<smarttitle>.pdf vorbelegen.

Im GUI Mode wird nach dem Absetzen eines Druckauftrags auf 7-PDF Printer der Druckdialog angezeigt, hier wurde der Speicherausgabepfad wie gewünscht global geändert!
Im GUI Mode wird nach dem Absetzen eines Druckauftrags auf 7-PDF Printer der Druckdialog angezeigt, hier wurde der Speicherausgabepfad wie gewünscht global geändert!

Drückt man dann auf "Speichern" wird das PDF in diesen Ausgabeverzeichnispfad geschrieben, wenn es denn existiert und "beschreibbar" ist (Windows Schreibrechte) ... ;-)!

Hinweis: Bedenken sie, das der Anwender immer noch frei entscheiden kann - ob er diesen festen Speicherpfad nutzt. Er kann ihn über die GUI noch ändern. Sicher vor Anwendermanipulation ist eine Konfiguration ohne GUI wie beispielsweise als PDF Netzwerkdrucker oder wenn man die GUI Nutzung global deaktiviert. Auch hierfür gibt es Einstellungen die man setzen kann um das zu erreichen. Die Wichtigsten finden sie im Kapitel zur Einrichtung des Druckers als Netzwerkdrucker (weiter unten, siehe ShowSettings=never usw.).

Eine Alternative die aufzeigt wie flexibel und individuell konfigurierbar 7-PDF Printer ist, ist die Möglichkeit auch bestimmte Steuerelemente und Teile der Druckdialog-Benutzeroberfläche fest über die global.ini Konfigurationsdatei deaktivieren/verstecken zu können wenn man das möchte. Auch hier bietet unser PDF Drucker einige Optionen an. Diese Alternative beugt eventuell auch Anwendermanipulation vor die man nicht möchte, trotzdem behält man den Komfort einer GUI für weite Teile der PDF Erzeugung.

Top