iEvgen

Ни слова о яблоках

Печать отчетов из DIS (VmWare)

Оставить комментарий

печать из  bmw-dis-vmware printing

Возникла необходимость настроить печать диагностического отчета из программы DIS установленной в виртуальной машине.

Есть несколько возможных вариантов настройки:
1. Проброс локально установленного принтера в VmWare
2. Печать на сетевой принтер
3. Переадресация портов
4. Печать в файл

Я выбрал четвертый вариант по следующим причинам:
1. Проброс принтера подключенного через USB можно сделать используя VmWare tools, но версия для SCOUnix имеется только в версии VmWare Server источник. Возможно автору удастся использовать VMTools из Server в Workstation.
2. Обязательным условием является, то что и принтер и диагностическая головка и компьютер должны находится в одной подсети. Добавлением дополнительного адаптера виртуальной машине и настройкой его в мост с реальным адаптером хоста привело только к тому что сеть видна, но на принтер нельзя ничего отправить (Уверен что можно и этот вариант доработать.)
3. В этом варианте используется ПО которое переадресовывает пакеты с виртуального принтера на реальный. Мне не понравился тем что используется много компонентов (GhostScript, LPR, Portmon). Одна из инструкций.
4. В данном варианте используется вывод данных с COM-порта виртуальной машины в файл и затем обработка этого файла с помощью GhostScript. На выходе получаем готовый к печати PDF документ.

Инструкция была найдена по ссылке ниже (англ.)

Install Printer in GT1

The way over COM1/LPT1

SSS PROGMAN
1) add parallel port in vm (output to file)
2) change printer in SSS to Local Printer LPT1 (shoud be default)
3) install on host Ghostscript 9.0
4) install on host Bullzip PDF Printer
5) add C:\Program Files\gs\gs9.00\bin to path variable in windows on host (reboot required)
6) create batch file on Desktop


"C:\Program Files\gs\gs9.00\lib\ps2pdf.bat" %1 %1.pdf

Saved as ps2pdf.cmd on desktop. Just drag the outputfile on ps2pdf, and bang… PDF will be created.

DIS/GT1
1) add serial port in vm (output to file)
2) set up VM-BIOS, COM1 = 3F8/IRQ4
3) check in scoadmin if COM1/tty1a has the same values (3F8/IRQ4)
4) change printer (default one) in scoadmin to COM1/tty1a
5) change printer (default one) in scoadmin to 9600/none/none/8
6) change printer in DIS to Local Printer (shoud be default)
7) install on host Ghostscript 9.0
8) install on host Bullzip PDF Printer
9) add C:\Program Files\gs\gs9.00\bin to path variable in windows on host (reboot required)
10) create batch file on Desktop


"C:\Program Files\gs\gs9.00\lib\ps2pdf.bat" %1 %1.pdf

Saved as ps2pdf.cmd on desktop. Just drag the outputfile on ps2pdf, and bang… PDF will be created.

Комментарии по настройке в DIS:
1. Виртуальной машине добавляем последовательный порт (serial port) с выводом данных в файл. Файл имеет смысл разместить во временной папке. Может понадобится установка VmWare Workstation для того чтоб была возможность редактировать параметры виртуальной машины.
2. В BIOS виртулаьной машины выставляем параметры последовательного порта
3. В настройках ОС нужно также выставить правильные параметры (scoadmin->Hardware/kernel manager->Serial Port -> Откроется окно Configured serial cards on gt1ap. Проверяем значения для порта IBM-COM1. Нас интересуют значения IRQ и I/O addr. Должно быть 4 и3F8 соответственно)
4. Изменяем интерфейс подключения принтера (scoadmin->Printers->Printer Manager-> Выбираем принтер laserpr (Lokaler Laserdrucker) -> Settings -> Connection -> Из выпадающего списка выбираем COM1
5. Изменяем настройки порта (Settings -> Serial Comm…)
6. В DIS устанавливаем локальный принтер как принтер по умолчанию. После внесения изменений DIS нужно перезагрузить.
Теперь при печати данные в формате PostScript пойдут на COM1 виртуальной машины и будут записаны в файл который мы указали при добавлении COM-порта.
Замечание: запись в файл идет последовательно, файл не очищается, поэтому при обработке файла скриптом в pdf документ будет передаваться все содержимое файла. Что бы этого не происходило нужно отключить и снова подключить com порт к виртуальной машине, либо перезапустить машину, при этому появится диалог в котором будет запрос на дальнейшие действия с файлом (очистить или продолжить писать в него). Нам нужно выбрать очистить. Далее проводим настройку хостовой машины.
7. Установим Ghostscript (можно взять здесь)
8. Этот момент не совсем ясен. Так как на выходе мы получим PDF файл который можно распечатать из любого просмотрщика.
9. Добавить в переменную PATH путь к исполняемым файлам GhostScript-a (Мой компьютер – Свойства – Переменные среды. Нужно именно добавить путь к уже имеющейся переменной PATH через точку с запятой, а не создавать новую переменную)
10. Создать пакетный файл который будет конвертировать получившийся файл в PDF документ готовый к печати. Обратить внимание на путь к исполняемым файлам GhostScript (различные версии по умолчанию устанавливаются в разные папки)

Дополнительно:
Приведенный пример пакетного файла оперирует двумя файлами просто перезаписывая pdf. Модифицируя пакетный файл можно получить следующее:
– Имя PDF-файла будет содержать дату и время печати отчета.
– Готовые PDF-ки будут складываться в отдельную папку-хранилище

Алгоритм работы пакетного файла:
Определяем переменные
– папка для готовых отчетов
– временный файл из которого будет браться информация


@echo off

set dd=%DATE%
set tt=%TIME%

set /a ddd=%dd:~0,2%
IF %ddd% LSS 10 (
SET day=0%ddd%) else (
SET day=%ddd%)
set month=%dd:~3,2%
set year=%dd:~6,4%

set /a ttt=%tt:~0,2%

IF %ttt% LSS 10 (
SET hour=0%ttt%) else (
SET hour=%ttt%)

SET minute=%tt:~3,2%
SET sec=%tt:~6,2%

:: Рабочая папка
set workdir=D:\DIS-Reports\
:: Исходный файл (Этот файл нужно указать в настройках виртуальной машины как выходной файл для данных из COM-порта)
set input=%workdir%dis-out
:: Файл отчета
set output=%workdir%%year%-%month%-%day%_%hour%-%minute%.pdf
:: Конвертируем
“C:\Program Files\gs\gs9.06\lib\ps2pdf.bat” %input% %output%

В планах:
1. Реализация анализа PS файла до конвертации и запись информации об авто и дате проведения диагностики в имя файла отчета.
2. Автоматическая очистка input-файла после конвертации (просто удалять его нельзя-этот файл заблокирован приложением)
3. Автоматическая конвертация input-файла после того как в него попадут свежие данные.

Печать из DIS
Инструкция для оператора
1. Если при запуске виртуальной машины появился вопрос
Serial port output file “D:\dis-out” already exists.
Do you want to replace it with any newly created content, or append new content to the end of the file?
нужно ответить Replace.
2. После проведения диагностики жмем кнопку печати отчета
3. Ждем некоторое время и жмем ярлык на рабочем столе который ссылается на пакетный файл
4. В папке с отчетами открываем нужный файл и отправляем на печать.

А можете еще вот что почитать:

Автор: Evgen

06 Ноя 2012 в 14:37

Рубрика: Советы по программам

Метки: , ,

Оставить комментарий

Вы должны войти, чтобы оставлять комментарии.