How to work with Virtual Printer using VB6

Home       Download       Pricing       FAQ       Manual       Tutorials       Known issues       News


Virtual Printer VB6 Examples

1. Sample Client application used for testing and development purposes. This application demonstrates how to use an INI file to write print job information and paths to the generated files.

Download Sample Client Application: Virtual Printer for VB6

2. Collecting Multiple Documents – in this example we’ll create a more powerful client which will be able to collect files from multiple printed documents into collection and transfer them in a zip archive to a remote machine using ftp or http protocols.

Download Collecting Multiple Documents: Virtual Printer for C#/C++, VB6/VB.NET

3. How to print files programmatically using the ShellExecute function– see below.


How to print files programmatically using the ShellExecute function

The code sample below demonstrates how to print files programmatically on either a physical or a virtual printer using the ShellExecute function. It also demonstrates how to change the default system printer.

Private Declare Function GetDefaultPrinter Lib "winspool.drv" Alias 
"GetDefaultPrinterA" (ByVal szPrinter As String, bufferSize As Long) As Long
Private Declare Function SetDefaultPrinter Lib "winspool.drv" Alias 
"SetDefaultPrinterA" (ByVal szPrinter As String) As Long
Public Sub PrintDocumentUsingShellExecute(szPrinter As String, szDocumentPath As String)
    Dim szDefaultPrinter, szNamePrinterBuff As String
    Dim bufferSize As Long
    <font color="green">' get the default printer</font>
    GetDefaultPrinter vbNullChar, bufferSize
    szNamePrinterBuff = Space$(bufferSize)
    GetDefaultPrinter szNamePrinterBuff, bufferSize
    szDefaultPrinter = Left$(szNamePrinterBuff, InStr(szNamePrinterBuff, vbNullChar) - 1)
    <font color="green">' change the default printer</font>
    If szPrinter <> szDefaultPrinter Then
        SetDefaultPrinter szPrinter
    End If
    <font color="green">' send the document to the print</font>
    ShellExecute 0, "print", szDocumentPath,  vbNullString, vbNullString, SW_HIDE
    <font color="green">' set the default printer back to original</font>
    If szPrinter <> szDefaultPrinter Then
        SetDefaultPrinter szDefaultPrinter
    End If
End Sub


Then it’s necessary to call these functions with the required parameters. For example, you can print MS Word and PDF documents this way:

PrintDocumentUsingShellExecute "Your Virtual Printer", "c:\Documents\AnyDocument.doc"
PrintDocumentUsingShellExecute "Your Virtual Printer", "c:\ Documents \AnyDocument.pdf"


Home       Download       Pricing       FAQ       Manual       Tutorials       Known issues       News