Как напечатать документ Word на Java, не открывая его? - PullRequest
1 голос
/ 14 октября 2008

У меня есть веб-приложение на основе J2EE, в котором при нажатии кнопки мне нужно создать файл слова из Java. Я хочу иметь возможность отправить команду печати в этот файл, чтобы файл печатался без необходимости открывать документ и делать это вручную.

Может ли кто-нибудь сказать мне, если это возможно, и если да, как действовать ??

Заранее спасибо.

Ответы [ 5 ]

1 голос
/ 08 июля 2011

Вы можете использовать простой AutoIt код всего из 2 строк. И завершите свою работу, запустите этот файл кода в вашей программе.

http://www.autoitscript.com/site/autoit/

Мне нравится этот код:

$sRTFfilename = "C:\t\t.rtf" ;Change this path to one of your own 
ShellExecute('"' & $sRTFfilename & '"', "", @ScriptDir, "print", @SW_HIDE)

; -)

1 голос
/ 14 октября 2008

Вы должны создать ActiveX для загрузки содержимого документа и запустить команду печати. Нет другого способа открыть файл на клиентском компьютере и запустить команду.

EDIT: Если вы можете использовать HTML, вы можете просто сделать

<script>
function load() {
window.print();
window.close();
}
</script>

и

<body onLoad="load()" ...>

во всплывающем окне, чтобы открыть документ и распечатать его. А затем закройте всплывающее окно.

1 голос
/ 14 октября 2008

Создать файл легко. Взгляните на Apache POI , Java API для доступа к файлам формата Microsoft. На сайте множество примеров.

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

0 голосов
/ 14 октября 2008

Можно ли вместо этого отобразить документ в HTML? Если бы вы могли это сделать, то могли бы позволить пользователям печатать через браузер довольно просто. Вам также может быть проще с PDF, по крайней мере, он будет более доступным на разных платформах.

Если вы вынуждены использовать MS Word, тогда вы будете очень ограничены в своих возможностях. Как упомянул Леонель , я думаю, что ActiveX будет вашим единственным выбором, и даже тогда документ придется открывать, вы просто сможете запустить Word из браузера автоматически. Возможно, вы даже сможете внедрить экземпляр Word в IE через ActiveX, но я не уверен на 100% в этом.

0 голосов
/ 14 октября 2008

Поскольку вы специально упоминаете Java как свою среду, вы можете принять во внимание OpenOffice или StarOffice - у них есть API, с которым намного проще общаться из Java, чем с ActiveX или Word с дистанционным управлением.

Он не тяжелее, чем Word. Ссылки и документы должны быть легко найти.

Я работал в компании, где мы много использовали Remote-Control-Word и, наконец, перешли на StarOffice. Это не для печати, а для преобразования документов (например, из Word в HTML), но должно быть достаточно похожим.

Конечно, я говорю о "старых версиях Word", но у нас обычно была проблема блокировки Word с каким-то произвольным диалогом, запрашивающим подтверждение того, что Word нашел - операция, которую наш сервер (выполнял в фоновом режиме без рабочего стола контакт) явно не смог. После перехода на StarOffice все стало намного лучше.

...