Java. Печать из Excel

271
18 января 2018, 20:35

Суть задачи в следующем: Есть 2 xls-файла. В первом содержится выборка данных из БД, а второй предназначен для ручного ввода данных из первого файла. Ячейки во втором файле растянуты до нужных размеров, чтобы печать была корректной на нестандартной бумаге (по сути второй файл - просто шаблон для печати (поменяли данные вручную, распечатали и так по кругу)).

С помощью библиотеки org.apache.poi, я достаю нужные данные из первого файла.

  • Возможно ли эти данные распечатывать в обход файла-шаблона (задавать тексту нужные отступы и размеры шрифта)?
  • Или может есть способ эти данные вставлять в шаблон и сразу пускать на печать в фоне (чтобы пользователю не приходилось открывать измененный документ Excel каждый раз при печати)?
Answer 1

Обо всём по порядку.

Возможно ли эти данные распечатывать в обход файла-шаблона (задавать тексту нужные отступы и размеры шрифта)?

Да, возможно. Java поддерживает работу с принтером.

Или может есть способ эти данные вставлять в шаблон и сразу пускать на печать в фоне (чтобы пользователю не приходилось открывать измененный документ Excel каждый раз при печати)?

Как один из возможных вариантов. Создать на основе шаблона временный файл, вывести его на печать и после удалить. Apache-poi поддерживает не только чтение из Excel, но и запись.

Подробно описывать процесс не стану, т.к. он хорошо документирован. В частности есть даже подробная переводная инструкция на эту тему.

Что касается вывода на печать. Самый простой способ, вывести файл средствами Excel или какого-нибудь OpenOffice на принтер по умолчанию.

Desktop.getDesktop().print(new File(file_path));

Печать будет выполнена в фоне.

Если требуются дополнительные настройки, то здесь уже надо смотреть по ситуации.

READ ALSO
Как эмулировать 30 дней в 1 момент java

Как эмулировать 30 дней в 1 момент java

Программа выполняет такие действия(действия ниже), то есть получается нужно как бы ускорить время что ли, подскажите пожалуйста как эмулировать...

295
Java Swing. Лагает анимация на Linux

Java Swing. Лагает анимация на Linux

Есть очень простенькое приложение с интерфейсом на Java с использованием SwingЕго смысл — считывать нажатия на клавиши и менять координаты отрисовки...

268
Реализация фрагмента с картинкой

Реализация фрагмента с картинкой

Привет, появилась проблема не могу передать изображение во фрагментУ меня есть адаптер RecyclerView ProductAdapter, есть Фрагмент в котором собственно...

252