Building a custom virtual printer driver with PDFTron Virtual Driver SDK

Q:

I need a PDF virtual printer driver SDK that could be seamlessly integrated with our own software.

The following is what we are expecting from the virtual printer driver sdk:

  • On the output we receive EMF or PDF file (PDF is the most desirable)

  • It could be installed from our setup app (even parameterized msi would do the job)

  • Custom name for virtual printer

  • Redirection to another printer

  • Notification (executing app with parameters or event sent via namedpipe) about start (nice to have) and end (must have) of the process

  • Ability to work without the windows user logged in

  • Ability to work as a network shared printer (nice to have)

  • Printer need to be configurable somehow

  • We need to hide ALL additional printer related software, control panels etc - it would be REALLY nice if our users have no obvious clues that the printer is provided by the third company

  • Customizable DPI

  • PDF can have embedded fonts (nice to have)

  • Text extraction (plain text format - ANSI, Unicode or UTF-8)

  • PDF Searchable format

  • Supported OS Windows 2008R2/2012/Vista/7/8/8.1 driver

The printer will be integrated within our own software which will be publicly available to download. Please specify how the pricing would look like for such a solution.

A:

PDFNet SDK comes with a built-in virtual driver (e.g. Convert sample - http://www.pdftron.com/pdfnet/samplecode.html#Convert), however this default driver does not have any GUI (it is primarily used for programmatic conversion as shown in the Convert sample) and can’t be customized as per your requirements.

PDFTron ‘Virtual Driver SDK’ extends PDFNet SDK with source code for a complete virtual printer driver (including GUI, installer, etc.). The source code for Virtual Driver SDK is written in C++ and depends on WDK (Widows Driver Kit). There is no additional API or significant documentation beyond what is included as part of WDK and PDFNet SDK. The sample driver implements GUI, configures the driver, and implements the installer. It also relies on PDFNet SDK to covert captured XPS spool files to PDF (i.e. pdftron.PDF.Convert.FromXps()). Because of its source code form, we can’t provide with an evaluation version except for the precompiled sample driver. The following is a pre-compiled sample driver:

http://www.pdftron.com/downloads/PDFTronCreator32.exe

http://www.pdftron.com/downloads/PDFTronCreator64.exe

With Virtual Driver SDK you would effectively gain source code access to this driver and would be able to customize to meet all your requirements. The driver is supported on 32 and 64-bit Windows XP, Vista, Windows 7, Windows 2003 Server, Windows 2008 Server, Windows 8, and Windows 8.1.

Because the driver supports XPS Print path it has many quality and speed advantages over legacy GDI printer drivers. For example, current MS Office applications or any .NET/WPF application will take advantage of the XPS print path to produce higher-quality output (http://blogs.msdn.com/b/xps/archive/2009/07/23/new-office-2010-printing-functionality.aspx).

Regarding licensing there are two parts to the solution:

  1. Virtual Driver SDK (i.e. source code for the printer driver) a one-time flat-fee, 10K USD. This source includes everything required to build ‘PDFTronCreator’ except for the production license for PDFNet SDK.

  2. A redistributable license for relevant parts of PDFNet. At minimum you would need to convert Windows spool file to PDF (i.e. pdftron.PDF.Convert.FromXps()), however you could also license additional features such as stamping, text extraction, rasterization, redaction, PDF/A conversion etc. (http://www.pdftron.com/pdfnet/features.html). To apply for an OEM license please fill out http://www.pdftron.com/store/oem.html with detailed requirements for your application.

For addition information, please contact pdftron sales or support.