Программная печать документа из DIRECTUM

10 2

Иногда появляются вопросы - как отправить документ на печать прямо из системы DIRECTUM, минуя открытие в приложении-редакторе? Ответ - совсем без приложения не обойтись, но определенных успехов в деле печати добиться можно.

Теоретически система DIRECTUM, да и Windows, не умеют и не должны уметь самостоятельно печатать документы/файлы. Потому что между бинарным представлением данных и их человекочитаемым отображением лежит пропасть. Не так уж принципиально, какое оборудование использовать для отображения - монитор или принтер, в любом случае бинарные данные необходимо сначала преобразовать в понятный человеку формат. Вот так, никто, наверное, читать не хочет:

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

Но это все предисловие. Итак, допустим, мы все же хотим как-то упростить печать документа, сделать его дружественнее для пользователя. В Windows для этого придумали пункт контекстного меню "Печать". При выборе этого пункта Windows смотрит в реестре - какую программу и с какими ключами нужно вызвать для файла с таким расширением. Ну и, разумеется, вызывает эту программу, передавая ей путь к файлу и то, что с ним надо сделать (напечатать). В этом случае некоторые просмотрщики не открывают никаких окон, просто отправляют файл на принтер по умолчанию. Пользователю кажется, что документ напечатался прямо из Windows. Некоторые приложения выведут какие-нибудь дополнительные вопросы - зависит уже от разработчика. Если мы хотим напечатать документ прямо из DIRECTUM, то логично будет воспользоваться таким же механизмом.

Итак, допустим, у нас есть кнопка "Печать" на карточке документа, которая выгружает текущий документ в файл на диск во временную папку. Что с этим файлом делать дальше? Дальше надо запустить команду "Печать" Windows:

EDoc.Export(VersionNumber; FileName; FALSE)        
ShellApplication.ShellExecute(FileName; ''; ''; 'print'; smHidden) 

В результате, если все в Windows настроено правильно, то мы получим напечатанный на принтере по умолчанию документ. Но настройка Windows для этого сама по себе бывает не очень проста, поэтому приведу пример для TIF и PDF.

Настройка проводника Windows

Настройка проводника для ОС Windows XP, Windows 2003 Server:

1. Открыть Свойства папки через Пуск->Настройка->Панель управления->Свойства папки.

2. На вкладке Типы файлов выбрать тип tif и нажать на кнопку Дополнительно:

3. В окне «Изменение свойств типа файлов» выбрать действие Печать и нажать на кнопку Изменить.

4. В поле Приложение, исполняющее действие указать приложение MSPVIEW.EXE с ключами /p "%1" (рис.8):

5. Повторить шаги с 2 по 4 для типа файла tiff.

6. Повторить шаги с 2 по 4 для типа файла pdf. В качестве приложения указать AcroRd32.exe с ключами /p /h "%1".

Допускается настройка любых других приложений, обладающих способностью невизуальной отправки на печать файлов из командной строки (например, MSPaint).

Настройка проводника для ОС Windows 7, Windows 2008 Server:

Настройка печати файлов типа TIF и TIFF:

В ОС Windows 7 и Windows 2008 Server отсутствует возможность настроить отправку на печать без предварительного просмотра (невизуальная отправка) для типов графических файлов tif и tiff. Тем не менее, можно настроить невизуальную отправку на печать всех типов графических файлов посредством правки реестра. Для этого необходимо выполнить следующие действия:

  1. Открыть редактор реестра (Пуск-Выполнить-regedit).
  2. В открывшемся окне открыть ветвь HKEY_CLASSES_ROOT\SystemFileAssociations\image\shell\print\command:

  1. В параметре по умолчанию нужно поменять значение на нужное. Значение должно состоять из пути к исполняемому файлу программы, через которую будет происходить печать, и ключей /p и “%1”. Например: "C:\WINDOWS\system32\mspaint.exe" /p "%1":

  1. Удалить соседний раздел DropTarget (перед удалением рекомендуется сделать резервную копию параметра по умолчанию, скопировав значение в текстовый документ). Для того чтобы удалить раздел, необходимо нажать на нем правой кнопкой мыши и выбрать пункт «Удалить», на предупреждение системы о том, что будет удален этот раздел и все его подразделы нажать на кнопку Да:

  1. Нажать на кнопку ОК, закрыть редактор реестра.

 

Настройка печати файлов типа PDF

Для настройки невизуальной отправки на печать файлов типа PDF, необходимо выполнить следующие действия (на примере Adobe Reader):

  1. Открыть редактор реестра (Пуск-Выполнить-regedit).
  2. В открывшемся окне открыть ветвь HKEY_CLASSES_ROOT\AcroExch.Document.7\shell\Print\command:

  1. В параметре по умолчанию в конец значения добавить ключ “/h”. Например: "C:\Program Files (x86)\Adobe\Acrobat 7.0\Reader\AcroRd32.exe" /p /h "%1":

  1. Нажать на кнопку ОК, закрыть редактор реестра.

Для других программ, отличных от Adobe Reader (например, FoxitReader) нужно искать схожую ветку в реестре с именем этой программы.

 

Андрей Манаков

Спасибо за материал. Теперь бы еще добавить возможность это использовать на полную... 30

Денис Баранов

См. также полезные комментарии Андрея Литвинова на форуме.

Авторизуйтесь, чтобы написать комментарий