Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to Print any document in a SELECTED printer

I would like to print any document such as pdf,word,excel or text files in a selected printer using .net .I have got success to do such printing in the default printer .The only issue now is to print in the selected printer.

Here is the code for the printing.

public bool Print(string FilePath)
    {
        if (File.Exists(FilePath)) {
            if (ShellExecute((System.IntPtr )1, "Print", FilePath, "", Directory.GetDirectoryRoot(FilePath), SW_SHOWNORMAL).ToInt32() <= 32) {
                return false;
            } else {
                return true;
            }
        } else {
            return false;
        }
    }
like image 412
Thunder Avatar asked Jun 29 '10 05:06

Thunder


2 Answers

Process printJob = new Process();
printJob.StartInfo.FileName = path;
printJob.StartInfo.UseShellExecute = true;
printJob.StartInfo.Verb = "printto";
printJob.StartInfo.CreateNoWindow = true;
printJob.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
printJob.StartInfo.Arguments = "\"" + printerAddress + "\"" + " " + printerExtraParameters;
printJob.StartInfo.WorkingDirectory = Path.GetDirectoryName(path);
printJob.Start();
like image 139
Dmitry Avatar answered Nov 06 '22 16:11

Dmitry


What file format are you testing with success to the default printer?

Its not possible to just send "any" document to a printer, generally the specific file format needs to be interpretted by an application that can read the file format then render it to a printer or a file that can be interpretted by the printer.

In most cases if you can render to a PostScript or PDF you can get its to print using a single interpretter.

like image 42
Mark Redman Avatar answered Nov 06 '22 16:11

Mark Redman