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.

Content

Prerequisites

Before you are able to run the program you need the following installed on your system:

Installation

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.

Settings

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 settings file.

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.

SettingDescription
PDF Printer Settings
Output

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. C:\TEMP\TEST.PDF where c:\temp is a valid folder. If the output folder does not exist then the PDF generation will fail.

Beginning with version 2.0.0.22 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.
<docname>Document name
<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:

Output=<env:appdata>\<docname> <date>.pdf
ShowPDFSpecifies if the resulting PDF file should be shown after generation. This setting can have the following values: yes, no, ask.
SettingsProgramThis 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.
AfterPrintProgramThe 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
WatermarkTextThe text you want in your watermark.
WatermarkSizeAn integer value between 1 and 100 indicating the size of the watermark text. The default value is 6.
WatermarkTransparencyA 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.
WatermarkRotationThe 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 Corner'.
PDF Merge Settings
MergeFileSpecifies a PDF file name if you want to merge the current output with an existing PDF file.
MergePositionIf 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.
SuperimposeWith 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
OwnerPasswordPassword for the owner of the document.
UserPasswordPassword for the users of the document.
KeyLengthSpecifies the length of the encryption key. Valid lengths are 40 and 128 bits. The default key length is 40 bits.
PermissionsPermissions that apply to the users who access the document via the user password. See the permissions section for more details.
PDF Document Settings
TargetThe 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.
AuthorAuthor of the PDF document.
TitleTitle of the PDF document.
SubjectSubject of the PDF document.
KeywordsKeywords 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.

Advanced Settings

The advanced settings are stored in the registry under the key:

HKEY_LOCAL_MACHINE\SOFTWARE\Bullzip\PDF Printer\Settings

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 default values.

SettingDescription
GhostscriptFolderFull 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 HKEY_LOCAL_MACHINE\SOFTWARE\GPL Ghostscript\8.15
DataAreaThe data area setting specifies a folder where the settings.ini is located. Settings.ini is created and updated by the CONFIG utility.
WorkAreaThe 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.

Settings File

[PDF Settings]
Title=Registry Editor
Creator=PScript5.dll Version 5.2.2
Author=jr
Output=c:\test.pdf

Frequently Asked Questions

Q: Can I direct the output to a specific file every time?
A: Yes. Please see the Settings section of this document.

Unattended Installation

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, /VERYSILENTInstructs 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.
/SUPPRESSMSGBOXESInstructs Setup to suppress message boxes. Only has an effect when combined with '/SILENT' and '/VERYSILENT'.
/NOCANCELPrevents 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'.
/NORESTARTInstructs Setup not to reboot even if it's necessary.
/RESTARTEXITCODE=exit codeSpecifies 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.

Distributing GPL Ghostscript

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.

  1. Locate folder where you have the printer driver setup program.
  2. Create a folder named GS next to the setup program.
  3. Locate a normal installation of Ghostscript installed by the Ghostscript setup program.
  4. Copy the contents of the FONTS, BIN and LIB folders to the created GS folder.
  5. 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.

Network Distribution

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:

To solve these problems we have developed the batch file shown here.

@ECHO OFF
@SET SetupFileName=BullZipPDFPrinter(1.0.0.16).exe
@SET VersionName=version1

@SET Destination=%ProgramFiles%\Bullzip\PDF Printer
@SET VersionFile=%Destination%\%VersionName%.version

IF NOT EXIST "%VersionFile%" GOTO INSTALL
GOTO NOINSTALL

:INSTALL
@ECHO Install Program
"%SetupFileName%" /sp /silent /norestart /nocancel
IF ERRORLEVEL==1 GOTO INSTALLERROR

@ECHO Remove old version files
DEL "%Destination%\*.version"

@ECHO Create Version file
@ECHO %USERNAME% > "%VersionFile%"
@GOTO END

:NOINSTALL
@ECHO Program is up to date
GOTO END

:INSTALLERROR
@ECHO Installation failed

:END

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.

PDF Permissions

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 complete reference.

BIT POSITION MEANING
1–2 Reserved; must be 0.
3 (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).
4 Modify the contents of the document by operations other than
those controlled by bits 6, 9, and 11.
5 (Revision 2) Copy or otherwise extract text and graphics from the
document, including extracting text and graphics (in support of accessibility
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.
6 Add or modify text annotations, fill in interactive form fields, and,
if bit 4 is also set, create or modify interactive form fields (including
signature fields).
7–8 Reserved; must be 1.
9 (Revision 3 only) Fill in existing interactive form fields (including
signature fields), even if bit 6 is clear.
10 (Revision 3 only) Extract text and graphics (in support of accessibility
to disabled users or for other purposes).
11 (Revision 3 only) Assemble the document (insert, rotate, or delete
pages and create bookmarks or thumbnail images), even if bit 4 is
clear.
12 (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 lowlevel
representation of the appearance, possibly of degraded quality.
(See implementation note 16 in Appendix H.)
13–32 (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.