2aleksandy Обдумал идею того что после распечатки, мне необходимо затирать файл с винта. Пришел к следующему:
| Цитата | Только в таком случае нужно убрать
| Код | excel.invoke("Quit", new Variant[]{});
|
, иначе приложение закроется, а пользователь ничего не успеет нажать.
|
наоборот стоит этот код оставить, для того, что бы при окончании работы с предпросмотром или печатью, файл посностью закрывался, и у приклада была возможность его удалить 
| Код | private final String EXCEL_COM = "Excel.Application"; private final String EXCEL_VISIBLE = "Visible"; private final String EXCEL_WORK_BOOKS = "WorkBooks"; private final String EXCEL_OPEN = "Open"; private final String EXCEL_ACTIVE_SHEET = "ActiveSheet"; private final String EXCEL_PRINT_PREVIEW = "PrintPreview"; private final String EXCEL_QUIT = "Quit";
/** * Calling Jacob com. Opening a file in print preview mode. * After closing, the temporary file is deleted. * * @param tempFile - temp file */ public synchronized void printTempFile(String tempFile) { ActiveXComponent excel = null; Dispatch workbooks; Variant workbook; try { excel = new ActiveXComponent(EXCEL_COM); excel.setProperty(EXCEL_VISIBLE, Variant.VT_TRUE); workbooks = excel.getProperty(EXCEL_WORK_BOOKS).toDispatch(); workbook = Dispatch.callN(workbooks, EXCEL_OPEN, new Object[]{tempFile}); Dispatch.call(Dispatch.get(workbook.toDispatch(), EXCEL_ACTIVE_SHEET).toDispatch(), EXCEL_PRINT_PREVIEW); } finally { excel.invoke(EXCEL_QUIT, new Variant[]{}); ComThread.Release(); }
//Ну а здесь творим с файлом всё, что душе захочется. }
|
|