Sharing the PDF Writer on a Network / PDF Printer
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 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 7 or later. Typically, the printer is shared from a print server running Windows Server 2012, 2016, 2019 or 2022.
Users of the shared printer run Windows 7 or later.
The current version is tested with Windows 7, 8, 8.1, 10, 11 and Windows Server 2012, 2016, 2019 and 2022. R2 editions of the Windows Server versions are also supported.
Please do not simply release the PDF printer as a network printer under Windows, this will not lead to success! Starting 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 automatically for sharing on a network. Note that the parameter is only available in the Setup of PROFESSIONAL Edition or EXPERT Edition. You have to use one of these editions! The
/SHARE 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_7PDF_10_5_0_2307_PRO_EXP.exe /SHARE /SILENT /PRINTERNAME="Network PDF Printer"
This will install a new PDF printer named Network PDF Printer and share it on the network.
Important: You have to use
/PRINTERNAME="_YOUR_INSTANCE NAME_" in addition to
/SHARE, to create an "own" printer instance name with it automatically, because only then we have also the configuration files, among other things an own global.ini to adjust the settings for this PDF network printer instance.
Changing File Locations
By default, the shared printer will save the pdf output (setting 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 first given over setup switch
/PRINTERNAME="Network PDF Printer". So 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.
The global.ini that is decisive for this printer instance can then (if necessary) be expanded with additional settings or adapted. For example, if you want to additionally configure an SFTP upload, a PDF background template (PDF stationery), or sending by email. The global.ini is automatically created by the setup program with the most important settings required for operation as a PDF network printer.
The figure shows an example of the automatically generated directory structure when selecting the setup parameters
/PRINTERNAME="PDF-EXP-Prt". The printer name PDF-EXP-Prt is purely an example, it is only intended to clarify that the setup then automatically creates a corresponding "printer instance folder" under
C:\ProgramData\... and contains in it the global.ini chosen for this instance name and also an "Output" folder in which the PDF files are stored. Your custom "configurations" for your instance must then be made in this global.ini file.
Important: The options dialog for configuring the PDF printer via GUI is then no longer relevant. In PDF network printer installations, the administrator has to change centrally the configuration manually in the corresponding "global.ini" - preferably with a text editor such as Notepad++. The administrator specifies a fixed, unchangeable configuration of one or more PDF printer instances, here.
Printer Settings in global.ini
As mentioned earlier, the shared printer uses a predefined set of settings. When installed as a PDF network printer, print users are not able to freely set various options such as the output file name or watermarks (because no printer dialog appears). Each shared printer instance has a fixed set of options (settings). However, you can install multiple PDF printers with different options/settings, configure them separately, and share them. For example, a network printer instance can store a different business paper in generated PDFs than another instance, etc. For more details, see Settings superimpose.
Options for a shared printer should be stored in the global.ini belonging to the shared printer. A sample global.ini is shown below.
<commonapplicationdata>\PDF Writer\<printername>\Output\<docusername>\<smarttitle> - <date> <time> - <guid>.pdf
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.
In addition, by changing the setting Output, at a central point in the printer's global.ini, the administrator can request the adjustment of a different output path. So deviate from the path set by
/SHARE! A detailed chapter on what to consider in the different use cases of the PDF printer so that this setting takes effect can be found here.
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.
The setting Superimpose defines a business paper which is to be printed as a background on all PDF pages. You can find more information about all settings in configuration files like global.ini, settings.ini or user.ini here.
Microsoft PS Class Driver vs. 7-PDF Printer Printer driver when installed as PDF network printer
The latest operating systems use a Postscript driver of the system (Microsoft PS Class Driver) when installing our printer for a higher compatibility level between the systems if 7-PDF Printer is installed with
/SHARE as a PDF network printer. This usually has only advantages for you due to increased speed and compatibility between the systems used.
However, it may happen that with this driver you may miss a few features that the locally usable standard driver, in this case "7-PDF Printer" itself, can not offer.
This concerns, among other things:
- You may get only "hieroglyphics" when extracting raw text from generated PDF files, either by Copy&Paste of PDF text via Acrobat Reader, or by using the 7-PDF Printer setting
- Also the page areas of generated PDF files are only limited "printable" with the Microsoft Postscript driver. So there remains a narrow free (white) margin which cannot be "printed" by this driver.
In practice, these restrictions usually play a minor role, but if necessary, you can manually change the printer driver of the PDF network printer installation from "Microsoft PS Class Driver" to "7-PDF Printer" via the printer properties in Windows, should you specifically miss such functionalities. So as in the following screenshot:
Please note, which should be tested here so if necessary after you manual driver conversion because of corresponding need again functionally everything exactly by you.
An alternative could also be to install another printer instance using
/SHARE /PRINTERNAME="7PDF_DRIVER", and only change the driver for this additional instance release, and then use this instance for "special requirements".
We recommend using the Microsoft PS Class Driver for PDF network printer installations.
Note: Starting with Windows 10, you must temporarily disable printer sharing for the duration of the driver change, otherwise you will receive an operating system error message.
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.
Using Version 3 Drivers
Some mostly older 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 following 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.
Go to HP Universal Print Driver für Windows PostScript (x86), to download the HP Universal Print Driver for Windows PostScript for 32-bit systems.
Go to HP Universal Print Driver für 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 Printer
Just follow the instructions in the installation section above. After the installation you follow these steps:
Locate the new Network PDF Printer and open the printer properties.
Click the Advanced tab and change the driver to HP Universal Printing PS and click Apply.
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-220.127.116.1134
OK your way back to the properties for the printer.
Click Close to close the properties.
Expert knowledge: 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.
Expert knowledge: 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 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
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"
Please use the contact form, to send feedback if you can help us improve this guide :-)