 <p>I only see two options here. Unfortunately, one of them isnt feasible and the other one doesnt exactly fit your criterions. Let's see:</p> <ol> <li>Write a PDF interpretor. Obviously, this cannot be done easily, but it is the only way to get rid of files. Why? Because typical applications are not designed to receive some .Net stream or byte array, they take file path and read them the way they want.</li> <li>Add some third party PDF reader. <a href="http://stackoverflow.com/questions/549504/net-open-pdf-in-winform-without-external-dependencies">This Q/A</a> should cover what you need. As mentionned, this solution wont be a perfect fit since it will need you to at least save the file to a temporary location. Let's say you use Acrobat or Foxit, you cannot pass a stream directly, they need a file path.</li> </ol> <p>EDIT: Why do you want to avoid writing a file? If you draw the big picture, we might be able to figure a way arround your problem.</p>