PDF Printer - User Guide - Version 2.x
Click here for the latest version
This documentation will try to describe the installation and usage of the PDF Printer driver.
The documentation is a changing document and your input is appreciated.
Today there are a lot of ways to produce PDF documents. This program will install itself as a printer on your computer.
When you print to this printer it will generate a PDF document instead of producing output on paper.
Unlike many other freeware PDF printers this printer will allow you to control the file name of the PDF document
without having to use a "Save As" dialog each time you print to PDF. You will also be able to control
whether or not the printer should ask if you want to see the document after the PDF generation is complete.
Before you are able to run the program you need the
following installed on your system:
- Microsoft Windows 2000/XP/2003/Vista/7 (32 bit x86 or 64 bit x64)
- GPL Ghostscript 8.64
The installation is very simple. Just download the setup
program and run it. A wizard will guide you through the installation.
If you are distributing the printer driver in a network environment
please see the network distribution section.
If you use this printer from a program it is possible to change the settings directly from within your program.
This can be done using the CONFIG utility or writing the values directly to the
Using the CONFIG command line utility you can change some of the settings that control the behavior of the printer.
You can change the settings listed in the table below.
|PDF Printer Settings|
The output setting allows you to direct the output of the PDF printer
to a specific file. When this setting is set the printer will not ask the user for
a destination file name. When setting the output it must specify a valid file name
including the full path for a PDF document. I.e.
where c:\temp is a valid folder. If the output folder does not exist then the PDF
generation will fail.
Beginning with version 220.127.116.11 the output setting allows macro names as part of the file name.
The following macro names can be used:
|<date>||The current date in the format yyyy-mm-dd.|
|<time>||The current time in the format hh.mm.ss.|
|<basedocname>||Base part of the document name. This macro gives you the part of document name up to the last dot.
If the document name is a file name then the resulting value is the file name without an extension.|
|<env:environmentstring>||This macro allows you to query the values of the environment variables. I.e. <env:username> is substituted with the logged in user name.|
When using the macro names in the settings.ini file the output parameter could look something like this:
|ShowPDF||Specifies if the resulting PDF file should be shown after generation. This setting can have the following values: yes, no, ask.|
|SettingsProgram||This setting allows you to hook into the printing process and change some of the settings used to generate the PDF document. Using this setting you can specify an external program which will be launched by the printer before the PDF document is generated. The program will receive a file name as parameter. This file contains the current settings for the PDF document. The program can read these settings and modify them. The modified settings should be saved to the same settings file and the program must terminate after that. When the external program has terminated the printing process will continue based on the changed settings in the settings file. In the current version you can change the Title, the Creator and the Author settings.|
|AfterPrintProgram||The AfterPrintProgram setting is a hook into the printing process. If you specify this setting it must contain a file name of an external program to launch when the PDF document is created. The external program will receive the file name of the settings file as a parameter. The printer will not continue before the external program has terminated.|
|PDF Watermark Settings|
|WatermarkText||The text you want in your watermark.|
|WatermarkSize||An integer value between 1 and 100 indicating
the size of the watermark text. The default value is 6.|
|WatermarkTransparency||A transparency percentage from 0 to
100 determines the darkness of the watermark. 0 is black and 100 is
white (invisible). Normal values are in the range from 70 to 90.|
|WatermarkRotation||The water mark can be rotated. Specify an
integer value between 0 and 360. You can also specify the value 'c2c' or
'-c2c'. This will rotate the watermark in the direction 'Corner to
|PDF Merge Settings|
|MergeFile||Specifies a PDF file name if you want to merge the
current output with an existing PDF file.|
|MergePosition||If you specify a merge file this parameter
will determine the position of current PDF output in the merged result.
Valid values are 'bottom' (append) and 'top' (prepend). The default is
'bottom', which will append your current PDF output to the PDF file
specified in the MergeFile parameter.|
|Superimpose||With the superimpose parameter you can lay two
documents on top of each other. The superimpose parameter must point to
a PDF file name, which will be the template. All pages of your current
output will be created with the first page of the superimposed PDF file
as background. Please note that if your current output paints the
background you will not be able to see the template underneath.|
|PDF Security Settings|
|OwnerPassword||Password for the owner of the document.|
|UserPassword||Password for the users of the document.|
|KeyLength||Specifies the length of the encryption key. Valid
lengths are 40 and 128 bits. The default key length is 40 bits.|
|Permissions||Permissions that apply to the users who access
the document via the user password. See the
permissions section for more details.|
|PDF Document Settings|
|Target||The target device sets the quality of the PDF
document. Better quality results in larger PDF files. Available targets
are screen, ebook, printer, prepress and default. Please note that it is case sensitive. Specifying an invalid value will most likely result in an empty pdf file.|
|Author||Author of the PDF document.|
|Title||Title of the PDF document.|
|Subject||Subject of the PDF document.|
|Keywords||Keywords of the PDF document.|
The values of these settings are stored in a file called settings.ini. This
file is located in the folder specified by the DataArea setting in the registry.
Please refer to the Advanced Settings section of the documentation for at
description of this paramenter.
The advanced settings are stored in the registry under the key:
This applies to the settings DataArea, GhostscriptFolder and WorkArea.
These settings are written to the registry during the installation of the
printer driver. Normally you do not need to change these settings from their
|GhostscriptFolder||Full path to the folder where the
Ghostscript is installed. If this is not specified the program will
look in the registry for settings under the key
|DataArea||The data area setting specifies a folder where the
settings.ini is located. Settings.ini is created and updated by the
|WorkArea||The full path to where the printer will work with
temporary files. This path must exist. Otherwise the PDF
generation will fail.|
Remember that messing around with your registry can be a dangerous thing.
Don't do this unless you know what you are doing.
Creator=PScript5.dll Version 5.2.2
Q: Can I direct the output to a specific file every time?
A: Yes. Please see the Settings section of this document.
In network environments it is often an advantage if you can run a setup program unattended.
Unattended installation is supported by this program and described in this section of the documentation.
When running the setup program in an unattended mode you will have to specify a set of command line parameters to the setup program.
The command line parameters will determine where the program is installed and what the user will see when the installation is in progress.
Command Line Parameters
|/SP-||Disables the startup prompt.|
|/SILENT, /VERYSILENT||Instructs Setup to be silent or very silent. When Setup is silent the wizard and the background window are not displayed but the installation progress window is. When a setup is very silent this installation progress window is not displayed.
If a restart is necessary and the '/NORESTART' command isn't used (see below) and Setup is silent, it will display a Reboot now? message box. If it's very silent it will reboot without asking. |
|/SUPPRESSMSGBOXES||Instructs Setup to suppress message boxes. Only has an effect when combined with '/SILENT' and '/VERYSILENT'.|
|/NOCANCEL||Prevents the user from canceling during the installation process, by disabling the Cancel button and ignoring clicks on the close button. Useful along with '/SILENT' or '/VERYSILENT'.|
|/NORESTART||Instructs Setup not to reboot even if it's necessary.|
|/RESTARTEXITCODE=exit code||Specifies the custom exit code that Setup is to return when a restart is needed. Useful along with '/NORESTART'. Also see Setup Exit Codes.|
|/DIR="x:\dirname"||Overrides the default directory name displayed on the Select Destination Location wizard page. A fully qualified pathname must be specified.|
Instead of running the Ghostscript installation program every time you want to install the printer driver on a new computer you can
make the Bullzip PDF Printer setup program distribute the files needed to run Ghostscript on the target computer.
The setup program will look for a folder called GS next to where the setup program is placed on your hard drive or network folder.
If it finds a GS folder it will automatically copy the contents to where the printer is installed and create
a registry entry so that the printer driver can find the Ghostscript application.
Here is a description of how to create this GS folder.
- Locate folder where you have the printer driver setup program.
- Create a folder named GS next to the setup program.
- Locate a normal installation of Ghostscript installed by the Ghostscript setup program.
- Copy the contents of the
LIB folders to the created GS folder.
- That's it!
Next time you run the setup program it will see the GS folder and install the Ghostscript files with the printer driver.
This will save you a lot of time if you have to install this to multiple computers or you want to use the unattended installation.
If you want to distribute the printer driver to a lot of computers
on your enterprise network this section will give you some ideas on
how to do that.
This part of the documentation assumes that you have read about the
unattended installation and
distributing GPL Ghostscript.
The problems we want to address in a network rollout are the following:
- Make sure that all computers have the program installed.
- Make sure that all computers have the latest version.
- Doing the above without having to run the setup program every time a user logs on.
- Automatic distribution of GPL Ghostscript as well as the printer driver.
To solve these problems we have developed the batch file shown here.
@SET Destination=%ProgramFiles%\Bullzip\PDF Printer
IF NOT EXIST "%VersionFile%" GOTO INSTALL
@ECHO Install Program
"%SetupFileName%" /sp /silent /norestart /nocancel
IF ERRORLEVEL==1 GOTO INSTALLERROR
@ECHO Remove old version files
@ECHO Create Version file
@ECHO %USERNAME% > "%VersionFile%"
@ECHO Program is up to date
@ECHO Installation failed
We name this batch file
DISTRIB.BAT. If you place this batch file in a folder together with the setup program
the installed version can be checked every time you run the batch file. If the version does not match the one set
in the VersionName variable the setup program is started. Change the settings in the beginning of the batch file
to match your environment. You can include the Ghostscript distribution folder GS together with this if you
want to distribute Ghostscript with the batch file.
When you protect your PDF documents with passwords you can
optionally specify a set of permissions. The permissions determine which kind of
access the user password will provide. Using the permissions you can prohibit
the user from printing and using cut and paste operations. See the table below
for a complete overview. The table is part of the PDF reference (third edition).
Go to www.adobe.com for a
||Reserved; must be 0.
||(Revision 2) Print the document.
(Revision 3) Print the document (possibly not at the highest quality
level, depending on whether bit 12 is also set).
||Modify the contents of the document by operations other than
those controlled by bits 6, 9, and 11.
||(Revision 2) Copy or otherwise extract text and graphics from the
document, including extracting text and graphics (in support of
to disabled users or for other purposes).
(Revision 3) Copy or otherwise extract text and graphics from the
document by operations other than that controlled by bit 10.
||Add or modify text annotations, fill in interactive form fields,
if bit 4 is also set, create or modify interactive form fields
||Reserved; must be 1.
||(Revision 3 only) Fill in existing interactive form fields
signature fields), even if bit 6 is clear.
||(Revision 3 only) Extract text and graphics (in support of
to disabled users or for other purposes).
||(Revision 3 only) Assemble the document (insert, rotate, or delete
pages and create bookmarks or thumbnail images), even if bit 4 is
||(Revision 3 only) Print the document to a representation from
which a faithful digital copy of the PDF content could be generated.
When this bit is clear (and bit 3 is set), printing is limited to a
representation of the appearance, possibly of degraded quality.
(See implementation note 16 in Appendix H.)
||(Revision 3 only) Reserved; must be 1.
A number of the bits listed above are reserved and must be 0
whereas others must be 1. If you combine all the mandatory reserved bits you get
a decimal value of 61632. With that number as a base you can add the bit values
of the permissions you want. Let's say you want the user to have print and copy
permissions then you add bit 3 for printing and bit 5 for copy. The permission
value is then 61632 + 4 + 16 = 61652.