biopdf logo

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.

Network PDF Printer

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_4_0_2963.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"

Registry Settings

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.

  1. Search for HP Universal Print Driver for Windows PostScript (x86) to download the HP Universal Print Driver for Windows PostScript for 32-bit systems.
  2. Search for HP Universal Print Driver for Windows PostScript (x64) to download the HP Universal Print Driver for Windows PostScript for 64-bit systems.
  3. You need to download both the 32-bit and the 64-bit package.
  4. 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.
  5. Run the downloaded executable for 64-bit.
  6. Select to install in Traditional Mode.
  7. It will try to search for printers but you should stop it. Select The printer that I want isn't listed (Windows Server 2012).
  8. Add a local printer.
  9. Select the FILE: port.
  10. Select the HP Universal Printing PS driver.
  11. Next, Next, Do not share the printer.
  12. Finish the installation wizard.
  13. Now you have a printer named HP Universal Printing PS but more importantly, you have the 64-bit driver installed on your system.
  14. 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:

  1. Install the printer and tell the installer to use the new driver. Use the following command line: Setup_PDFWriter_bioPDF_14_4_0_2963.exe /SHARE /SILENT /PRINTERNAME="Network PDF Printer" /DRIVER="HP Universal Printing PS"
  2. Locate the new Network PDF Printer and open the printer properties.
  3. Click the Sharing tab.
  4. Click the Additional Drivers… button.
  5. Check the x86 driver and click OK.
  6. 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.
  7. OK your way back to the properties for the printer.
  8. 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 :-)

 
McAfee SiteAdvisor Norton Safe Web