The program is controlled by a wide variety of settings. Each of these
settings can influence the output or the user experience. When the program runs
it looks for the settings in a set of setting files. These files and their
location are described in more detail below.
Configuration files are basically text files similar to INI files in
structure. They can be modified using the Options dialog or the Printer API. You
can also open and edit the files using Notepad or any other suitable editor. The
files can be saved using Unicode, UTF-8, or just plain ANSI
When a print job is sent to the program it will look for a runonce file. The
runonce setting file is used to control the PDF creation from another program. A
runonce settings file is only valid for one print job and will be removed
automatically when it is read. All other settings files are ignored if a runonce
In case there is no runonce file, the program will look for a normal settings
file. The normal settings file is written by the options dialog, which can be
launched from the Start menu.
The settings read from the normal settings file can be overwritten by
settings in a global settings file. A global settings file can contain a list of
forced settings that apply to all users on the system. If the same setting is
specified in both the normal setting file and the global setting file then the
resulting value is taken from the global setting file. The global settings does
not have any effect when a runonce settings file is used.
Default settings are the values that are used in case no values was specified
A user file is created to store information such as the last file and folder
name used by the user.
File Names and Location
The table below lists the configuration files and their location. In the
table below you will find the following constants: CSIDL_LOCAL_APPDATA,
CSIDL_APPDATA, and CSIDL_COMMON_APPDATA. They refer to special folders in the
operating system. These locations vary with different versions of the Microsoft
Windows. Their values also change for different language versions of the
The pritnername part of the file names must be substituted with the
name of the printer that you want to control with the settings in the file.
If you want to see the values of CSIDL_LOCAL_APPDATA, CSIDL_APPDATA, and
CSIDL_COMMON_APPDATA then you can run the
gui.exe with the
info command line switch. That will bring up a message box where
you can see the calculated location of each of the settings files.
File locations on an English Windows 7 for the TestUser
File locations on an English Windows XP for the
The configuration files support different types of encoding. Depending on the
type of encoding you choose, you must prefix the file content with a signature
that identifies the encoding. Only ANSI files do not require any encoding.
However, ANSI files cannot contain any international characters. When you use
the printer API the encoding will be done by the API itself.
Unicode files are prefixed with two bytes 0xFF and 0xFE. This signature is
for Little Endian Unicode. The other type of Unicode is named Big Endian Unicode
and is prefixed with 0xFE followed by 0xFF. Little endian is preferred over big
UTF-8 encoded files must be prefixed with the byte sequence 0xEF, 0xBB, 0xBF.
File Names and Location before version 7
The file locations listed below were changed in version 7. %APPDATA%
and %ProgramFiles% refers to the value of the APPDATA and ProgramFiles
Before version 5
Prior to version 5 you could control the settings for individual printers by
using something called instance names. With version 5 instance names are no
longer supported. A printer named My Printer [Invoice] would have the
instance name Invoice prior to version 5. The corresponding setting
file would be settings-Invoice.ini. Starting with version 5 the
settings-Invoice.ini file should be named settings@My Printer
[Invoice].ini. The - is replaced by an @ and the instance name is replaced
by the full printer name.
In order to make upgrading easier the printer will try to rename the files
automatically to match the new naming conventions.