Можно распечатать из командной строки с помощью следующего:
rundll32.exe %WINDIR %\System32\mshtml.dll, PrintHTML "%1"
, Где %1 путь к файлу файла HTML, который будет распечатан.
, Если Вы не должны печатать из памяти (или может позволить себе записать в диск во временном файле) можно использовать:
using (Process printProcess = new Process())
{
string systemPath = Environment.GetFolderPath(Environment.SpecialFolder.System);
printProcess.StartInfo.FileName = systemPath + @"\rundll32.exe";
printProcess.StartInfo.Arguments = systemPath + @"\mshtml.dll,PrintHTML """ + fileToPrint + @"""";
printProcess.Start();
}
N.B. Это только работает над Windows 2000, и выше я думаю.
В Linux и Mac OS X вы можете использовать программу командной строки «lpr», передав ей имя файла PDF (хотя насчет Windows не уверен). Например:
def print_to_paper
your_code_to_write_a_pdf_file("file.pdf")
system("lpr", "file.pdf") or raise "lpr failed"
end
Вот решение в среде Windows: Foxit! http://www.foxitsoftware.com/pdf/reader/
Вы можете вызвать foxit.exe (автономный исполняемый файл), чтобы молча распечатать PDF-файл в фоновом режиме.
Синтаксис: foxit.exe / t "ваш файл.pdf" "Имя принтера"
shell = WIN32OLE.new ('Shell.Application')
shell.ShellExecute ("foxit.exe", " / t \ "# {filename} \" \ "# {printer} \" ")
Я не уверен, есть ли способ распечатать что-то на принтере по умолчанию из Интернета. В моем банке, когда я хочу получить подтверждение платежа, они дают мне pdf, и я должен распечатать его вручную. Я думаю, это хорошее решение. Просто добавьте немного информации об этом.