PDF
 

Sharing the PDF Writer on a Network

Originally the PDF Writer was not designed to be shared on a network. The setup program can be highly customized and fully automated. This makes it easy to roll out the software in a network environment. However, as the number of request grew we decided to make it possible to create a shared PDF printer with the bioPDF PDF Writer. This document was made to help you set it up as a shared printer. It is a working document and what you find here is not officially supported but it might be what you are looking for.

It is still a bit technical to set it up as a shared printer and the operation is also limited to a fixed set of printer settings. When running as a shared printer the users are not prompted for file names or other settings. Everything must be set up using the global.ini settings file.

Shared Printer

Step by Step

Let's try to look at how the printer can be set up for sharing.

  1. Run the setup as you normally would. This installs a virtual PDF printer named "PDF Writer - bioPDF".
  2. Share the printer as you would do with any other printer. We will not cover normal printer sharing in this small guide. When the printer is shared the network users can connect to 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. The following steps will show you how this is done.
  3. 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\PDF Writer - bioPDF and add a string value named Disable Impersonation. Set the value of this setting to 1.
  4. When impersonation is disabled the printer will run in the user context of the spooler service. That is normally a local service account. It is recommended that you override the values for the special folders used in the PDF creation process. Doing so requires some additional registry settings.
        "Application Data"="C:\PDF Writer\Application Data"
        "Common Application Data"="C:\PDF Writer\Common Application Data"
        "Local Application Data"="C:\PDF Writer\Local Application Data"
        "LogFolder"="C:\PDF Writer\Log"
        "TempFolder"="C:\PDF Writer\Temp"
    Registry Settings
  5. Create the folders you specified in the registry above.
  6. Create a global.ini file in the folder C:\PDF Writer\Common Application Data\PDF Writer\PDF Writer - bioPDF
  7. For this example you can put the following content in the global.ini file.
        [PDF Printer]
        Output=C:\PDF Writer\Output\<docusername>\<date> <time> <title>.pdf
        ShowPDF=no
        ShowSettings=never
        ShowSaveAs=never
        ConfirmOverwrite=no
        ShowProgress=no
        ShowProgressFinished=no
    Adding date and time to the document name helps avoid that documents are overwritten. 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 pick up the document.
  8. By default the installation of the printer only installed the driver that matches the processor architecture of machine where the installation took place. This means that if you installed on a 64 bit system then the only driver installed is the 64 bit version.

    When a printer is shared you should choose a printer driver that will run on most current platforms. We have found that the HP Universal Postscript driver is suitable and runs on Windows XP and above.

You can download a Sample.zip that contains some files that will help you update the registry and create the folders of this example.

That's it!