• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Создание контролируемого отчета

swyatogor

Green Team
24.02.2014
593
24
BIT
0
Всем привет..
Появилась задачка - создание контролируемого отчета. Контролируемого - в том плане, что нужно сформировать по определенной печатной форме документ, вывести на печать указанное пользователем количество копий, все копии должны быть пронумерованы и создать запись об этом в логе..
На первый взгляд всё вроде просто решается через формирование документа в Word.. Но с ним, при работе через СОМ иногда возникает неотлавливаемая засада (через POI я так понял документ не распечатать??).. плюсом это совершенно не работает на MacOS((
Второй вариант - формирование печатной версии в форме документа самого Lotus'a.. Но в этом случае нет возможности отловить ошибку при печати документа - он туда просто выплевывается и всё(

Кто-нить что-нить подобное делал? Какие еще есть варианты?
 

garrick

Lotus Team
26.10.2009
1 355
151
BIT
235
Всем привет..
Появилась задачка - создание контролируемого отчета. Контролируемого - в том плане, что нужно сформировать по определенной печатной форме документ, вывести на печать указанное пользователем количество копий, все копии должны быть пронумерованы и создать запись об этом в логе..
Не совсем понятно. Это типа сразу на принтер, минуя какие-либо файлы? Пользователю ничего не показывать и никаких Word-ов, Acrobar Reader-ов не запускать?
 

swyatogor

Green Team
24.02.2014
593
24
BIT
0
типа да.. можно не минуя файлы)) но любой визуализируемый документ в сторонней программе уже невозможно контролировать.. и кто с ним что делал - печатал или сохранял или что-то еще - не известно.. а нужно четко знать, что документ распечатан и сколько штук)
 

garrick

Lotus Team
26.10.2009
1 355
151
BIT
235
Ну, вот, например с PDF -
Для Word-а можно попробовать такую команду
Код:
WINWORD.EXE your_document.docx /mFilePrintDefault /mFileExit /q /n
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 965
611
BIT
319
ну здесь мы "приходим" к определениям:
-какие возможности принтера (нек. могут печатать PDF, пример )
-возможности формирования печатных форм, если сразу ПДФ - берем FOP
-есть преобразования ПДФ в др. форматы PCL/PS(это отдельная тема)

можно завести отдельный сервис для печати (открыть фтп на никсах и из опред каталогов печатать на нужном принтере)
из java
 

swyatogor

Green Team
24.02.2014
593
24
BIT
0
ну здесь мы "приходим" к определениям:
-какие возможности принтера (нек. могут печатать PDF, пример )
-возможности формирования печатных форм, если сразу ПДФ - берем FOP
-есть преобразования ПДФ в др. форматы PCL/PS(это отдельная тема)

можно завести отдельный сервис для печати (открыть фтп на никсах и из опред каталогов печатать на нужном принтере)
из java
У каждой рабочей станции установлен свой принтер по-умолчанию в среде виндовс.. или мак((.. Причем, на сколько я понимаю, такие рабочие места могут быть и довольно удаленными по стране, не в домене..
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 965
611
BIT
319
У каждой рабочей станции установлен свой принтер по-умолчанию в среде виндовс.. или мак((.. Причем, на сколько я понимаю, такие рабочие места могут быть и довольно удаленными по стране, не в домене..
печать из java это не что-то заоблачное...
а вот с конвертацией (в таком случае) все "хуже"
PCL печатают, практически, все принтеры
остается задача получения PCL/PS из PDF (на винде)
 
Последнее редактирование:

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 965
611
BIT
319
@swyatogor на маке печать ПДФ - штатная возможность link removed
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 965
611
BIT
319
умеет FOP но я не знаю всех нюансов
java (но если через фоп - м.б. лишним)
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!