Sharing the PDF Writer on a Network
Before you start sharing a PDF printer on the network there are
some considerations to make.
This guide will try to show you how to do it and what you should
consider.
The printer can be installed in two different ways.
Either as a normal installation where you run the setup on all the
computers where the program should be used or as a shared network
printer where you only run the installation on the print server.
When you install the full program on the user's desktop or on a
Terminal Server, RDP, or in a Citrix environment, the user will have access
to all the features of the program. When they print to PDF, they can
see the dialog where all the PDF settings can be made.
Alternatively, if the user connects to a shared PDF printer, there
will be no additional dialogs. All the settings for the PDF creation
are predefined on the server. The resulting PDF document will be
placed in a folder on the print server.
Supported Operating Systems
The PDF printer can be shared on Windows XP or later.
Typically, the printer is shared from a print server running
Windows Server 2003, 2008, 2012, 2016, or 2019.
Users of the shared printer run Windows XP or later. The current
version is tested with Windows XP, Vista, 7, 8, 8.1 and Windows Server 2003,
2008, 2012, 2016, 2019. R2 editions of the Windows Server versions are also supported.
Version 3 vs. Version 4 Printer Drivers
Starting with Windows 8 and Windows Server 2012, you can use
version 4 printer drivers. These drivers makes it easier to share the
printer over the network.
If the consumers of the shared printer are running
Windows XP or Windows Server 2003 then you have to use a version 3
printer driver. This is also the case if the print server is running
Windows 2003 or 2008.
You can use a version 4 printer driver if your printer server is running
Windows 8, 8.1 or Windows Server 2012. The consumers must run Windows Vista
or later.
Installation
Stating with version 10.5 of the PDF printer it is relatively
easy to share the printer. The installation program was added a new
/SHARE command line switch to prepare the printer for sharing on a network.
This switch will add entries to the registry and create extra folders
for the shared printer. It is now possible to install a shared PDF printer
using a command line such as this:
Setup_PDFWriter_bioPDF_14_5_0_2974.exe /SHARE /SILENT /PRINTERNAME="Network PDF Printer"
This will install a new PDF printer named Network PDF Printer
and share it on the network.
Changing File Locations
By default, the shared printer will save the output to a predefined
folder on the print server. This folder can be changed if you want to
save files to a different location.
When you use the /SHARE switch on the installation program it will create
a special folder for the installed printer name. On most systems this
folder is located here:
C:\ProgramData\PDF Writer\Network PDF Printer
Please note that the last part of the name is the actual printer name.
This will change if you install a printer with a different name.
On older versions of Windows this folder may be located in this location:
C:\Documents and Settings\All Users\Application Data\PDF Writer\Network PDF Printer
You may not be able to browse to these folders if your Windows File Explorer
does not show hidden files and folders.
Registry settings and the global.ini file will tell the printer to use
this folder for settings,
logs, temporary files, and the PDF printer output.
Security Context and Impersonation
When the printer is shared, the network users can connect to it and start
printing. The problem here is that the PDF creation will try to run in the user context of
the user that created the print job. Sometimes that user does not have a user profile on the
machine that shares the printer. Impersonation of the printing user must be turned off for the
PDF creation process to work.
With the impersonation turned off, the PDF creation will run in the
context of the spooler service. That is normally a local service account.
It is recommended that the default
location for files used by the printer is changed to a new structure
that is customized for this use. This allows us to manipulate the file
system security for these folders without affecting the rest of the
server. The /SHARE installation switch will create such a structure for you.
Registry Settings
When a print job is sent from the spooler to the virtual printer port,
the port will look to the registry for information on which folders and
configuration settings to use.
You can either add these settings manually or let the /SHARE switch
create them during installation.
Impersonation
Impersonation of the printing user is turned off by adding a value in the registry.
Browse to the key belonging to the printer
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Printers\Network PDF Printer
and add a string value named Disable Impersonation . Set the value
of this setting to 1.
Files and Folders
Use the following values in the registry to override the special
folders used in the PDF creation process.
"Application Data"="C:\ProgramData\PDF Writer\Network PDF Printer\Application Data"
"Local Application Data"="C:\ProgramData\PDF Writer\Network PDF Printer\Local Application Data"
"TempFolder"="C:\ProgramData\PDF Writer\Network PDF Printer\Temp"
Printer Settings in global.ini
As mentioned earlier on this page, the shared printer will use a
predefined set of settings. The printing users will not be able
to set different options such as output file name or watermarks.
Each shared printer will have a fixed set of options.
However, you can install and share multiple PDF printers with different
options.
Options for a shared printer should be stored in the global.ini belonging
to the shared printer. A sample global.ini is shown below.
[PDF Printer]
ShowPDF=no
ShowSettings=never
ShowSaveAs=never
ConfirmOverwrite=no
Output=<commonapplicationdata>\PDF Writer\<printername>\Output\<docusername>\<smarttitle> - <date> <time> - <guid>.pdf
ShowProgress=no
ShowProgressFinished=no
SuppressErrors=yes
The most important purpose of the global.ini for a shared printer is to make
sure that no dialogs are shown. If dialogs are shown, then the printing can
stop and wait for user interaction. This can lock up the process because
no user can see what happens in the context of the print spooler service.
Therefore, you have to make sure that all dialogs are turned off.
Adding date and time to the document name helps avoid that documents are overwritten.
In addition, the <guid> macro that creates a unique system id will make sure that the same file name is not used twice.
The <docusername> macro is the name of the user, who sent the print job to the spooler.
This is typically the network user name of the printing user.
On a domain, this could be used to separate the documents in folders where only the creating
user has access to read the document.
Using Version 3 Drivers
Some versions of Windows does not support version 4 printer drivers and
require that you install a version 3 printer driver before you can share
the printer to both 32 and 64-bit systems.
Here are the steps needed to create a shared PDF Printer with a version 3
printer driver.
Installing a Version 3 Driver
When a printer is shared, it is important to install drivers that support the
operating systems that we want to share it to. These drivers must be
installed on the computer that shares the printer.
In this walk through, we use a 64-bit system for sharing the printer.
However, we must make sure that we also install a 32-bit driver to
support users coming from an x86 based 32-bit operating system.
Running multiple tests with many different drivers, we found that the
HP Universal Print Driver for Windows - Postscript was suited
for the task at hand. You could use other Postscript drivers with support for your
target platforms if you prefer.
Here are the steps for installing the driver.
- Search for HP Universal Print Driver for Windows PostScript (x86)
to download the HP Universal Print Driver for Windows PostScript for 32-bit systems.
- Search for HP Universal Print Driver for Windows PostScript (x64)
to download the HP Universal Print Driver for Windows PostScript for 64-bit systems.
- You need to download both the 32-bit and the 64-bit package.
- Run the downloaded executable for 32-bit. It will unpack itself and try
to run the setup. If you are on a 64-bit system then the setup will
complaint. That does not matter. We just need the unpacked files.
- Run the downloaded executable for 64-bit.
- Select to install in Traditional Mode.
- It will try to search for printers but you should stop it. Select The printer that I want isn't listed (Windows Server 2012).
- Add a local printer.
- Select the FILE: port.
- Select the HP Universal Printing PS driver.
- Next, Next, Do not share the printer.
- Finish the installation wizard.
- Now you have a printer named HP Universal Printing PS but more importantly, you have the 64-bit driver installed on your system.
- You can delete the installed printer now. We do not need it.
Just the drivers it put on your system.
Installing the PDF Writer
Just follow the instructions in the installation section above.
After the installation you follow these steps:
- Install the printer and tell the installer to use the new driver. Use the following command line:
Setup_PDFWriter_bioPDF_14_5_0_2974.exe /SHARE /SILENT /PRINTERNAME="Network PDF Printer" /DRIVER="HP Universal Printing PS"
- Locate the new Network PDF Printer and open the
printer properties.
- Click the Sharing tab.
- Click the Additional Drivers… button.
- Check the x86 driver and click OK.
- When prompted for printer driver click Browse and locate
the 32-bit driver folder. The default location is
C:\HP Universal Print Driver\ps-x32-5.5.0.12834 .
- OK your way back to the properties for the printer.
- Click Close to close the properties.
That's it!
Feedback
Please use the contact form to send feedback if you can help us improve
this guide :-)
|