Das Programm ist im höchsten Maße durch die vielen Einstellungsmöglichkeiten kontrollierbar. Jede der möglichen Einstellungen kann sich direkt auf die Ausgabe oder auf die Anwendererfahrung auswirken. Wenn das Programm ausgeführt wird, werden die Einstellungen aus einer Reihe von Konfigurationsdateien gelesen. Diese Dateien und ihre Speicherorte sollen im nachfolgenden genauer beschrieben werden.

Konfigurationsdateien sind grundsätzlich Textdateien die in einer INI-Dateistruktur notwendige Einstellungen des Programms enthalten. Die Einstellungen können über den Optionen-Dialog des Programms oder der Printer API verändert werden. Auch die Änderung durch das Öffnen der Dateien mit Notepad, oder jedem anderem möglichen Texteditor ist grundsätzlich möglich. Die Dateien können im Unicode, UFT-8 oder einfach im Plain ANSI Encoding gespeichert werden.

Runonce Einstellungen

Wenn ein Druckauftrag an das Programm gesendet wird, wird nach einer Runonce-Datei gesucht. Die runonce-Konfigurationsdatei (runonce.ini) wird verwendet, um die PDF-Erstellung von einem anderen Programm aus zu steuern. Eine runonce-Konfigurationsdatei ist nur für einen Druckauftrag gültig und wird danach automatisch vom PDF-Drucker gelöscht. Alle anderen Konfigurationsdateien werden ignoriert, wenn eine runonce-Datei existiert.

Normale Einstellungen

Für den Fall, dass keine runonce.ini - Konfigurationsdatei existiert (meist nur benötigt und sinnvoll für programatische Nutzung oder Multiuserumgebungen), prüft das Programm ob es eine Konfigurationsdatei settings.ini für normale Einstellungen finden kann. Die Konfigurationsdatei settings.ini wird unmittelbar vom Optionen-Dialog verändert, welchen Sie über das Startmenü aufrufen können. Sie beinhaltet die Normalkonfiguration des PDF Druckers im jeweiligen Anwender Kontext.

Globale Einstellungen

Die Einstellungen der normal - Konfigurationsdatei können von der global - Konfigurationsdatei (global.ini) überschrieben werden. Eine global - Konfigurationsdatei kann global gesetzte Einstellungen, gegenüber der normalen Einstellung, erzwingen die für alle Anwender auf einem System aktiviert sein sollen (Beispiel: PDF Netzwerkdrucker). Wenn es dabei Einstellungen gibt die es in der normal - Konfigurationsdatei und in der global - Datei gibt, so haben die Einstellungen in der global - Konfigurationsdatei immer Vorrang. Das Vorhandensein einer global - Konfigurationsdatei hat keinerlei Effekt, wenn es eine runonce - Konfigurationsdatei gibt - dann wird diese verwendet!

Default Einstellungen

Default Einstellungen (defaults.ini) sind die Einstellungen, die verwendet werden, wenn an anderer Stelle keine Werte angegeben wurden.

Anwender Einstellungen

Eine User - Konfigurationsdatei (user.ini) wird erzeugt um Speicherpfadinformationen abzuspeichern, wie beispielsweise die der letzten Datei oder des letzten aktiven Verzeichnisses des Anwenders.

Runonce - Einstellungen - Programatische bzw. für zugriffsgesicherte PDF Erzeugung in Multiuser Umgebungen (Citrixumgebungen, Terminalserver)

Wenn ein Printjob an das Programm gerichtet wird, so wird zu allererst nach einer runonce Datei gesucht. Die runonce - Konfigurationsdateien haben die größte Priorität für 7-PDF Printer. Die runonce - Konfigurationsdatei wird dazu verwendet die PDF -Erzeugung von einem anderem Fremdprogramm (eigenes Programm das den 7-PDF Printer beispielsweise über COM vorkonfigurtiert, VBScript Macros etc.) heraus zu steuern. Eine runonce - Konfigurationsdatei ist nur jeweils für einen Printjob gültig und wird danach automatisch vom PDF-Drucker gelöscht. Alle anderen Konfigurationsdateien werden bei der Existenz einer runonce - Datei ignoriert.

Handling von gleichzeitig programatisch angestoßenen PDF Druckjobs

Gleichzeitige ausgelöste PDF Druckjobs dieser Art könnten unter Umständen ein Problem darstellen, da eine runonce.ini durch einen zweiten, gleichzeitig programatisch ausgelösten Printjob von demselbigen überschrieben werden könnte. Um dies zu verhindern, kann man eine spezielle runonce - Konfigurationsdatei programatisch, aus der zusätzlichen Angabe des Dokumentnamens, erzeugen. Das Vorhandensein einer solchen runonce_documentname.ini Datei wird vom 7-PDF Printer erkannt und für das jeweilig nach PDF zu konvertierende Dokument genutzt, bevor nach einer normalen runonce.ini Konfigurationsdatei gesucht wird. Man kann also dynamische Konfigurationen des Druckers über Angabe des Dokumentnamens an den PDF Druckjob binden, und verhindert zudem noch das bei simultan ausgelösten Druckjobs Konfigurationsdateien überschrieben werden.

Wie nun erhält man den Dokumentnamen für einen PDF Druckjob um ihn nach diesem Schema programatisch zur Bildung einer speziellen runonce_dokumentnamen.ini Konfigurationsdatei im Sourcecode bilden zu können? Am einfachsten ist es dafür den Spoolerdialog des 7-PDF Printers zu beobachten.

Die nachfolgende Abbildung zeigt den Spoolerdialog eines PDF Druckjobs an 7-PDF Printer, der aus der Windowsanwendung Microsoft Word Viewer für ein Worddokument mit dem Dateinamen infile.doc angestoßen wurde.

Spoolerdialog

Für diesen Spoolauftrag würde eine passende runonce_documentname.ini Konfigurationsdatei genau so aussehen, wie in der nachfolgenden Abbildung zu sehen ist:

Spoolerauftrag

Man sieht, das die Leerzeichen im Dokumentnamen der runonce_documentname.ini Konfigurationsdatei durch URL Encoding konforme Codes %20 = Leerzeichen ersetzt wurden.

In Delphi wurde dies im Sourcecode so realisiert:

djobname:= 'Microsoft Word Viewer - ' + ExtractFileName(txtInFile.Text);
rp:=oPDF.getSettingsFilePath(true);
djobname := StringReplace(djobname, '#','%23',[rfIgnoreCase, rfReplaceAll]);
djobname := StringReplace(djobname, ' ','%20',[rfIgnoreCase, rfReplaceAll]);
oPDF.WriteSettingsFile(ExtractFilePath(rp)+'runonce_'+djobname+'.ini');

Ein vorhandenes # - Zeichen im zu druckenden Dokument, würde also durch das URL Encoding %23 ersetzt, ein Leerzeichen passend durch %20 usw.

Den Pfad, in dem die zu erzeugende runonce Datei abzulegen ist, wird im Source durch die COM Methode getSettingsFilePath() ermittelt. Die runonce_documentname.ini Konfigurationsdatei wird über die COM Methode WriteSettingsFile() in der letzten Anweisung gespeichert.

Dateinamen und Speicherorte

Die nachfolgende Tabelle listet die verschiedenen Konfigurationsdateien des Programms auf und deren Speicherorte. In der Tabelle sind auch Konstanten enthalten, wie CSIDL_LOCAL_APPDATA, CSIDL_APPDATA, und CSIDL_COMMON_APPDATA. Sie stehen für die speziellen Userprofil-Verzeichnisse oder Systemverzeichnisse des Betriebssystems. Diese Speicherorte variieren je nach Betriebssystemversion und Betriebssystemsprache.

Runonce Settings runonce.ini {CSIDL_LOCAL_APPDATA}\PDF Writer\printername\
Normale Einstellungen settings.ini {CSIDL_APPDATA}\PDF Writer\printername\
Globale Einstellungen global.ini {CSIDL_COMMON_APPDATA}\PDF Writer\printername\
Standardeinstellungen defaults.ini {CSIDL_COMMON_APPDATA}\PDF Writer\printername\
User Settings user.ini {CSIDL_APPDATA}\PDF Writer\printername\


Der Druckernamen muss vom Dateinamen bzw. o.g. Pfad abstrahiert werden, den Sie mit den Einstellungen in den Konfigurationsdatei(en) steuern möchten.

Wenn Sie die Werte ihres Systems für CSIDL_LOCAL_APPDATE, CSIDL_APPDATA, und CSIDL_COMMON_APPDATA einsehen möchten, dann können sie die gui.exe von 7-PDF Printer mit dem info Parameter starten. Es erscheint danach ein Meldungsfenster mit den Speicherpfaden der einzelnen Konfigurationsdateien.

Vollständiger DOS-Befehl: gui.exe info printer="7-PDF Printer"

gui.exe Kommandline Befehl zur Ermittlung der PDF Drucker Pfade WIN7

Die Pfadangaben der Konfigurationsdateien unter einer deutschen Windows 7 Installation.


gui.exe Kommandline Befehl zur Ermittlung der PDF Drucker Pfade WIN XP

Die Pfadangaben der Konfigurationsdateien unter einer deutschen Windows XP Installation.

Encoding

Die Konfigurationsdateien unterstützen mehrer Encodingtypen. Je nachdem welche Codierung verwendet wird, muss im Header der Konfigurationsdatei das verwendete Encoding eingefügt werden. Nur ANSI benötigt dies nicht. Wie auch immer - ANSI kann nicht alle möglichen internationalen Zeichen enthalten. Wenn Sie die Printer API verwenden, wird das Encoding von der API selbst bestimmt.

Unicode Dateien enthalten im Dateiprefix 0xFF und 0xFE. Diese Signatur spezifiziert dabei "Little Endian Unicode". Der andere Unicode Typ ist "Big Endian Unicode" und wird mit einem vorangestellten 0xFE gefolgt von 0xFF gekennzeichnet. "Little Endian" wird vorzugsweise verwendet.

UTF-8 Dateien müssen mit vorangestellter Byte Sequense 0xEF, 0xBB, 0xBF beginnen.

LiveZilla Live Chat Software
Top