6

A network postscript printer was manually configured to use the "Microsoft PS Class Driver" and it will print. However, the driver knows nothing about the printer, like resolution or duplexing (higher and possible, neither of which are represented in the "advanced" options with this driver.) The PPD file is in hand which contains all this information. Unfortunately there does not seem to be an option under properties or preferences that will accept that PPD. How on Windows 10 does one set this up? This printer has worked with that PPD going all the way back to WNT, but for W10, nope. Also following today's 1903 upgrade "add printers" no longer lists any manufacturers, only MS drivers, so picking a similar printer from that was not possible. (Note added: click the "windows update" button on the screen missing printer drivers and then Windows 10 will download and fill in the missing drivers. None named "generic postscript with PPD" though! Also, this "fill" does not persist, which is a PITA, because it takes a long time for the list to fill each time.)

Solved, sort of, at least for Windows 10 1903, until some other Windows change breaks it. See post 9 here:

https://www.tenforums.com/drivers-hardware/143467-postscript-printer-driver-can-use-ppd.html

In brief, install the "HL-5250DN BR-Script3" driver, then deletes is BPD and replace its PPD file with the one for the desired printer, but retain the BR5250_2.PPD name, reboot to generate a new BPD. Then make some change to the printer's device settings so that the real properties will be read out of the PPD. Finally figure out the mapping of the Brother's tray names to your printers and set up the trays appropriately.

mathog
  • 191
  • 1
  • 1
  • 4

2 Answers2

4

Both reliable OS - macOS and Linux - use the CUPS printing subsystem. In past Adobe offered for MS-Windows up to XP the AdobePS driver which was perfect way for Postscript output oriented graphic programs. As described here Adobe colaborate with MS to create a Windows Postscript driver, what finaly included the PSCRIPT5.DLL as a part of MS-Windows instalation. You can now use this correct PS driver in MS-Windows-10 by Create a new printer; Local or Network manualy; Choose existing or Create a new Port; Vendor: Generic, Printer: MS Publisher Color Printer (or Imagesetter - for some other features); give it the name and finish.

To complete the job, you have to make a changes in the folder: C:\Windows\System32\spool\drivers\x64\3\ where you have to delete both files: MSGENCOL.PPD and MSGENCOL.BPD, and then rename your myprinter.ppd file to MSGENCOL.PPD and move it in the folder.

Caveat: Carefully read and set up the features that you can find in the Printer Property ; for example the parameter: TrueType Fonts - do not use Substitute with Printer Fonts , but use Include (or Send) the Font!

Eventualy, if you know what you do, you can create your own PPD file with your features and defaults, for example to print PDF files to file.

With this Printer driver, you can unify the driver behaviour on your heterogeneous computer network (macOS, Linux, MS-Windows) and direct all your printer jobs to GhostScript server and its intelligent spools nad queues.

schweik
  • 165
  • 1
  • 8
1

The official from Microsoft intended way seems to be to create an inf file that references the ppd file, create a cat file from the inf file and than sign that cat file. However this requires either an officially recognized certificate or a selfsigned one, which then has to be imported into the trusted publisher certificate stores of all computers which want to use that driver.

See this woshub article on how to create a cat file and self sign it. This answer explains it as well, but without the self-signing aspect. To see the format of the inf file, you can for example look at the inf file that is included under /lib in the ghostscript distibution (also contains a signed cat file to install the ghostscript printer).

If all that seems to complicated, and you have just one printer you want to use with a custom ppd, you can (as described in schweiks answer) just use the MS Publisher Color Printer and replace its ppd file.

If you have multiple printers with different ppd files, it actually seems to work to just add the drivers directly to the registry via a reg file like this:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Environments\Windows x64\Drivers\Version-3\FreePDF-XP] "Dependent Files"=hex(7):50,00,53,00,43,00,52,00,49,00,50,00,54,00,2e,00,4e,00,
54,00,46,00,00,00,00,00 "Configuration File"="PS5UI.DLL" "Data File"="freepdfxp.ppd" "Driver"="PSCRIPT5.DLL" "Help File"="PSCRIPT.HLP" "Monitor"="" "Datatype"="RAW" "Previous Names"=hex(7):00,00,00,00 "Version"=dword:00000003 "TempDir"=dword:00000000 "Attributes"=dword:00000000 "Manufacturer"="" "OEM URL"="" "HardwareID"="" "Provider"="" "Print Processor"="" "VendorSetup"="" "ColorProfiles"=hex(7):00,00,00,00 "Base Driver"="" "PrinterDriverID"="" "App Registration"=hex(7):00,00,00,00 "InfPath"="" "PrinterDriverAttributes"=dword:00000000 "LastServicedBuild"=dword:00004a64 "CoreDependencies"=hex(7):00,00,00,00 "DriverDate"="01/01/1601" "DriverVersion"="0.0.0.0" "MinInboxDriverVerDate"="01/01/1601" "MinInboxDriverVerVersion"="0.0.0.0"

Thats just the registry key of another postscript printer driver exported, InfPath set to empty string, Data File set to your ppd file name and the Name of the registry key itself set to the Name you want for your driver.

Copy the ppd file manually to C:\Windows\System32\spool\drivers\x64\3. To get the remaining files (pscript5.dll, ...) install the MS Publisher Color Printer. You probably need to restart the spooler service, as otherwise the the new driver won't be detected.

Note that this is definitely not a Microsoft recommended way to install a printer driver.

T S
  • 253