Member 12393970 Ответов: 1

Можем ли мы отправить PDF-байты для обработки для печати .Объем ядра в Ubuntu


Я использую команду LPR для печати PDF-файла, который создается с помощью iTextSharp.
Для печати я передаю путь к PDF-файлу, сохраненному на моей машине.
Process objP = new Process();
objP.StartInfo.FileName = "lpr";
objP.StartInfo.Arguments = " -P " + printerName + " " + fileName;

Теперь я хочу отправить PDF-байты непосредственно на принтер, а не отправлять путь к PDF-файлу.

Я хочу избежать сохранения PDF-файла на машине для каждой команды печати, а затем удаления его после завершения печати.

Я получаю PDF-байты от iTextSharp. Могу ли я передать эти байты в процесс?

Что я уже пробовал:

Я могу распечатать PDF-файл, указав его физический путь.

1 Ответов

Рейтинг:
0

Afzaal Ahmad Zeeshan

Лучший вопрос, :-)

Дело в том, что эта программа позволяет вам вычеркнуть имя файла из команды, а затем то, что она читает, является входным сигналом, который вы ей передаете, man-страница для lpr[^], читается как,

Цитата:
Если имена не отображаются,предполагается стандартный ввод.
Входными данными могут быть байты, которые вы хотите отправить. Однако в C# вы будете использовать стандартные входные данные для этого процесса, Process.StandardInput система свойств.Диагностика)[^]. Затем вы записываете байты в это свойство (это объект writer, Подробнее читайте в документации).

Чтобы получить байты, просто используйте File.ReadAllBytes(string) от System.IO пространство имен, это будет отлично работать. Затем передайте их через writer во входной поток.