It sounds like you need to send raw data straight to the printer! (sorry it's in C#)
I did manage to silently print to a network printer by converting the PDF to a byte array and then sending it directly to the printer using TCP.
If you know your printer's IP address it might be possible to send the file directly to the printer using TcpClient. I've got this to work for my printer, but have only tried it for PDFs so I don't know how well it will work for other printers/file types.
You will have to change your printer settings so that it is using a tcp port (In devices and printers select your printer (single click), then click print server properties, in the wizard that opens you can add a new TCP port). You will also have to set the [printer to raw rather than lpc][2] settings
I then used something similar to the following method;
Public Sub SilentPrint(filePath As String, printerIPAddress As string)
Dim bytes = System.IO.File.ReadAllBytes(filePath)
Dim client = new TcpClient(printerIPAddress, 9100) '9100 is the default print port for raw data
using myStream = client.GetStream()
myStream.Write(bytes, 0, bytes.Length)
myStream.Close()
End Using
End Sub
It worked for me but I can't be certain it will work in all cases.