Как печатать PDF-документы в Java
Формат переносимых документов (PDF) предпочитают за его последовательное форматирование и совместимость с различными платформами, что делает его идеальным выбором для любых целей — от деловых отчетов до личных проектов. Довольно часто PDF-файлы необходимо распечатывать в виде бумажных материалов.
В этой статье вы узнаете, как распечатывать PDF-документы на Java с помощью библиотек Spire.PDF for Java и java.awt.print.
- Печать PDF с диалоговым окном печати
- Печать PDF без диалогового окна печати
- Печать PDF с указанного принтера
Установите необходимую библиотеку
Spire.PDF for Java — это профессиональная Java-библиотека для чтения, создания и работы с PDF-файлами в Java-приложениях.
Если вы создали проект Maven, вы можете легко импортировать jar в свое приложение с помощью следующих конфигураций. Для проектов, не использующих Maven, загрузите Spire.Pdf.jar и добавьте его в качестве зависимости в ваше приложение.
Импортируйте ненужные библиотеки:
- com.spire.pdf.PdfDocument: Этот класс является частью библиотеки Spire PDF и используется для работы с PDF-документами.
- java.awt.print.*: Эти классы являются частью Java AWT (Abstract Window Toolkit) для обработки операций печати.
Печать PDF с диалоговым окном печати
Этот код обеспечивает простой способ печати PDF-файла, задавая задание печати, определяя область печати и отображая диалог печати для пользователя. Для работы с PDF-документами используется библиотека Spire PDF, а для процесса печати — стандартный фреймворк печати Java.
import com.spire.pdf.PdfDocument;
import java.awt.print.PageFormat;
import java.awt.print.Paper;
import java.awt.print.PrinterException;
import java.awt.print.PrinterJob;
public class PrintWithPrintDialog {
public static void main(String[] args) {
// Создаем объект PrinterJob, который изначально связан с принтером по умолчанию
PrinterJob printerJob = PrinterJob.getPrinterJob();
// Создаем объект PageFormat и устанавливаем его на стандартный размер и ориентацию
PageFormat pageFormat = printerJob.defaultPage();
// Возвращаем копию объекта Paper, связанного с этим PageFormat
Paper paper = pageFormat.getPaper();
// Устанавливаем область печати для этого Paper
paper.setImageableArea(0, 0, pageFormat.getWidth(), pageFormat.getHeight());
// Устанавливаем объект Paper для этого PageFormat
pageFormat.setPaper(paper);
// Создаем объект PdfDocument
PdfDocument pdf = new PdfDocument();
// Загружаем PDF файл
pdf.loadFromFile("C:\\Users\\Administrator\\Desktop\\sample.pdf");
// Вызываем painter для отрисовки страниц в указанном формате
printerJob.setPrintable(pdf, pageFormat);
// Отображаем диалог печати
if (printerJob.printDialog()) {
try {
printerJob.print();
} catch (PrinterException e) {
e.printStackTrace();
}
}
}
}