SURAJ-CDAC Ответов: 2

Печатать любой тип документа .док .файлы DOCX, .формат PDF, .того же формата, .PNG и тому подобное. С#


В моем проекте есть требование , чтобы печатать любые типы документов на предоставленном принтере на стороне сервера. 1. мое приложение, размещенное на сервере IIS. 2. Из клиентской стороне, т. е. из интерфейса просьбой инициировать для печати в веб-API. 3. В качестве приложения, размещенного в IIS .вариант продажи ProcessStart не работает. Также не разрешается изменять идентификатор пула приложений и его права так, чтобы эта идея отпала.

Пожалуйста, предоставьте/предложите мне альтернативное решение для упомянутого сценария.

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

Я попробовал систему .net.Класс диагностического процесса для печати файлов с помощью глагола PrintTo.
Но мое приложение размещено в IIS, поэтому оно не может этого достичь.

Mehdi Gholam

Для каждого расширения вам нужно программное обеспечение на вашем сервере, которое распознает и может распечатать его. Попробуйте изучить компоненты, которые делают это.

SURAJ-CDAC

У меня есть все программное обеспечение, например MS WORD ,Acrobat reader, Notepad , Wordpad , mspaint и т. д.
Есть ли какое-либо общее решение для достижения этой цели

Richard Deeming

Вы печатаете с сервера, поэтому принтер должен быть подключен к серверу.

Если вы пытаетесь печатать на принтере клиента, то это не будет работать.

SURAJ-CDAC

Да, я печатаю с сервера. Также все принтеры подключены к серверу.
Есть ли какое-либо общее решение для достижения этой цели

2 Ответов

Рейтинг:
7

Dave Kreskowiak

Это будет совсем не практично, а в некоторых случаях и невозможно сделать.

Чтобы распечатать все эти файлы, вам потребуется программное обеспечение, установленное на сервере, которое может считывать и отображать все форматы этих файлов, которые вы хотите поддерживать.

Некоторые из этих расширений будут печатать только из Microsoft Office, который вы не можете использовать с веб-сервера или любого другого автоматического процесса, например службы Windows.

Не существует универсального метода печати любого типа файлов, который вы хотите! У вас либо есть программное обеспечение для печати каждого конкретного типа файла, либо вы его не печатаете.


Рейтинг:
0

Kornfeld Eliyahu Peter

Конечно, печать со стороны сервера для клиента включает в себя очень сложный выбор принтера (даже сервер может получить доступ ко всем принтерам), но я оставляю это для вас (и я даже не упоминаю, насколько неправильно иметь сервер со всеми этими инструментами на основе пользовательского интерфейса, установленными на нем)...
Когда вы щелкаете правой кнопкой мыши файл в Проводнике, вы - в основном - получаете опцию Print/Print To где-то рядом с открытием...
Проводник может добавить этот пункт меню на основе информации, хранящейся в реестре для каждого расширения (типа файла)...
Вы можете сделать то же самое...
Например, если у вас есть файл .txt (текст), вы можете перейти в реестр и получить команду печати для печати этого файла...

string szExt = Registry.GetValue("HKEY_CLASSES_ROOT\\" + ext, string.Empty, null);
string szPrintTo = Registry.GetValue(string.Format(@"HKEY_CLASSES_ROOT\{0}\shell\Printto\command", szExt), string.Empty, null);

Все, что вам нужно сделать, это заменить параметры (%1, %2) вашими файлами и выполнить команду (используя Process)...