Mobile Line Of Business

Richard Jones (MVP)

  Home  |   Contact  |   Syndication    |   Login
  202 Posts | 0 Stories | 36 Comments | 0 Trackbacks


Welcome to the Mobile Line Of Business Blog

Tag Cloud

Article Categories



I’ve been playing around today, wanting to print PDF’s automatically triggering them from my mobile device.

I was left with the final hurdle of needing to programmatically print a PDF unattended running on a server.

I tried all sorts, of COM interoperability to Acrobat,  which just seemed too difficult.   I wanted this thing to be simple.

We’ll here’s what I came up with.   The good old fashioned command line print, using Acrobat…

This bit of C# will print a PDF (then delete it).    It does the trick nicely.

public class PrintIt
        private string quoteme(string instr)
            string retstr=instr;
            if (!retstr.StartsWith(@""""))
                retstr = "\"" + retstr + "\"";
            return retstr;
        public bool Print(string filename)
            if (!File.Exists(filename)) return false;
            string acropath = ConfigurationSettings.AppSettings["acropath"];
            if (!File.Exists(acropath)) return false;
            string printer = ConfigurationSettings.AppSettings["printer"];
            Process proc = new Process();
            proc.StartInfo.FileName = quoteme(acropath);
            proc.StartInfo.Arguments = @"/t "+quoteme(filename)+" " + quoteme(printer);
            proc.StartInfo.CreateNoWindow = true;
            return true;


I use a couple of values in a config file as follows -


<add key="printer" value="Laser"/>  <----------- name of printer
<add key="acropath" value="C:\Program Files\Adobe\Reader 9.0\Reader\AcroRd32.exe"/>    <---------- Acrobat Reader path


I don’t like having to use the Thread.Sleep statement in the above, but for a multi-threaded application this isn’t too much of a big deal.


posted on Friday, February 13, 2009 9:14 PM