Иногда появляются вопросы - как отправить документ на печать прямо из системы DIRECTUM, минуя открытие в приложении-редакторе? Ответ - совсем без приложения не обойтись, но определенных успехов в деле печати добиться можно.
Теоретически система DIRECTUM, да и Windows, не умеют и не должны уметь самостоятельно печатать документы/файлы. Потому что между бинарным представлением данных и их человекочитаемым отображением лежит пропасть. Не так уж принципиально, какое оборудование использовать для отображения - монитор или принтер, в любом случае бинарные данные необходимо сначала преобразовать в понятный человеку формат. Вот так, никто, наверное, читать не хочет:
Поэтому обязательно нужно некоторое приложение, которое понимает формат файла/документа и может его привести человеку в понятном виде. Обычно разработчик этого приложения - это разработчик формата данных. В случае распространенных открытых форматов разработчиком приложения может быть кто угодно.
Но это все предисловие. Итак, допустим, мы все же хотим как-то упростить печать документа, сделать его дружественнее для пользователя. В Windows для этого придумали пункт контекстного меню "Печать". При выборе этого пункта Windows смотрит в реестре - какую программу и с какими ключами нужно вызвать для файла с таким расширением. Ну и, разумеется, вызывает эту программу, передавая ей путь к файлу и то, что с ним надо сделать (напечатать). В этом случае некоторые просмотрщики не открывают никаких окон, просто отправляют файл на принтер по умолчанию. Пользователю кажется, что документ напечатался прямо из Windows. Некоторые приложения выведут какие-нибудь дополнительные вопросы - зависит уже от разработчика. Если мы хотим напечатать документ прямо из DIRECTUM, то логично будет воспользоваться таким же механизмом.
Итак, допустим, у нас есть кнопка "Печать" на карточке документа, которая выгружает текущий документ в файл на диск во временную папку. Что с этим файлом делать дальше? Дальше надо запустить команду "Печать" Windows:
EDoc.Export(VersionNumber; FileName; FALSE)
ShellApplication.ShellExecute(FileName; ''; ''; 'print'; smHidden)
В результате, если все в Windows настроено правильно, то мы получим напечатанный на принтере по умолчанию документ. Но настройка Windows для этого сама по себе бывает не очень проста, поэтому приведу пример для TIF и PDF.
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. Тем не менее, можно настроить невизуальную отправку на печать всех типов графических файлов посредством правки реестра. Для этого необходимо выполнить следующие действия:
Для настройки невизуальной отправки на печать файлов типа PDF, необходимо выполнить следующие действия (на примере Adobe Reader):
Для других программ, отличных от Adobe Reader (например, FoxitReader) нужно искать схожую ветку в реестре с именем этой программы.
Спасибо за материал. Теперь бы еще добавить возможность это использовать на полную... 30
См. также полезные комментарии Андрея Литвинова на форуме.
Авторизуйтесь, чтобы написать комментарий