Печать файла к принтеру в Ruby

Можно распечатать из командной строки с помощью следующего:

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, и выше я думаю.

5
задан AMIC MING 18 December 2015 в 00:55
поделиться

3 ответа

В 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
7
ответ дан 18 December 2019 в 10:46
поделиться

Вот решение в среде 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} \" ")

8
ответ дан 18 December 2019 в 10:46
поделиться

Я не уверен, есть ли способ распечатать что-то на принтере по умолчанию из Интернета. В моем банке, когда я хочу получить подтверждение платежа, они дают мне pdf, и я должен распечатать его вручную. Я думаю, это хорошее решение. Просто добавьте немного информации об этом.

1
ответ дан 18 December 2019 в 10:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: