send pdf file to a printer - print pdf
93,563
this has already been asked and answered here: How can I send a file document to the printer and have it print?
The code that was used:
private void SendToPrinter()
{
ProcessStartInfo info = new ProcessStartInfo();
info.Verb = "print";
info.FileName = @"c:\output.pdf";
info.CreateNoWindow = true;
info.WindowStyle = ProcessWindowStyle.Hidden;
Process p = new Process();
p.StartInfo = info;
p.Start();
p.WaitForInputIdle();
System.Threading.Thread.Sleep(3000);
if (false == p.CloseMainWindow())
p.Kill();
}
it basicly opens a "hidden" pdf-reader, tells it to print, waits for it to finish then close it down
Related videos on Youtube
Author by
Alsan
Updated on February 06, 2020Comments
-
Alsan over 4 years
I'm programming a web application with Visual Studio 2010 (C#). I want to send a PDF (saved in my computer) to a printer when I click a button.
To create the PDF I used iTextSharp. I tried this, but it just opens Adobe Reader:
proc.StartInfo.FileName = @"C:\Archivos de programa\Adobe\Reader10.0\Reader\AcroRd32.exe"; proc.StartInfo.Arguments = String.Format(@"/p /h {0}", pdfFileName); proc.StartInfo.UseShellExecute = false; proc.StartInfo.CreateNoWindow = true; proc.Start();
Thank you in advance!!!
-
Hakoo Desai about 10 yearsThis is good solution, but what if I want to print document with manual printer setting?
-
user1027167 over 9 yearsWaitForInputIdle() has no effect. It seems that p is in idle-Mode after Start(). Only the sleep for 3 seconds allows Adobe to finish the spooling. This might be a problem for large documents.
-
Artem A over 8 yearsIt doesn't work no more on Windows 8+
-
sohaiby almost 7 yearsAlthough it is printing the file without any issue, but
p.WaitForInputIdle();
doesn't return any value and the program remain stuck on this line of code