Печать PDF с помощью Java программно

Печать PDF-документов часто является ключевой функцией в различных компаниях и организациях. Вы можете легко распечатать файл PDF программно, используя язык Java. Вы можете работать с Aspose.PDF for Java API, настроив его в своей среде. Давайте рассмотрим различные сценарии печати PDF, которые возможны в ваших Java-приложениях:

Распечатать файл PDF с помощью Java

Вы можете легко распечатать файл PDF с помощью кода Java, выполнив следующие действия:

  1. Создать объект PdfViewer
  2. Загрузить исходный PDF-файл
  3. Распечатать PDF-файл

Фрагмент кода ниже показывает, как программно печатать PDF-файлы с помощью Java:

//Создать объект PdfViewer
PdfViewer viewer = new PdfViewer();
//Открыть исходный PDF-файл
viewer.bindPdf(dataDir + "Test.pdf");
//Распечатать PDF-документ
viewer.printDocument();
//Закрыть PDF-файл
viewer.close();

Печать нескольких PDF-документов с использованием Java

Печать нескольких файлов или пакетная печать файлов PDF — это простой процесс с использованием языка Java. Вы можете распечатать несколько PDF-файлов, выполнив следующие действия:

  1. Инициализировать список типа String
  2. Добавить несколько файлов PDF для печати
  3. Печать PDF-документов

В следующем коде показано, как распечатать несколько файлов PDF с помощью языка Java:

// Инициализировать список типа String
List<String> files = new ArrayList<>();

// Добавьте несколько файлов для печати
files.add(dataDir + "First.pdf");
files.add(dataDir + "Second.pdf");

// Обработка каждого файла для печати
for (String file : files)
{
    //Создать объект PdfViewer
    PdfViewer viewer = new PdfViewer();
    //Открыть исходный PDF-файл
    viewer.bindPdf(file);
    //Распечатать PDF-документ
    viewer.printDocument();
    //Закрыть PDF-файл
    viewer.close();
}

Печать определенных страниц или диапазона страниц с использованием Java

API дает вам большой контроль при печати PDF-файлов. Вы можете работать с различными полями и методами при печати файлов в соответствии с вашими требованиями. Например, если вы хотите печатать не все страницы файла PDF, а только несколько страниц. Это может быть какой-то непрерывный диапазон страниц, например, от страницы № 3 до страницы № 7, или это могут быть случайные страницы, например страницы № 1, 5 и 6. Вы можете охватить оба сценария, выполнив следующие шаги:

  1. Инициализировать объект PdfViewer
  2. Установить атрибуты для печати
  3. Создание объектов для параметров принтера и страницы
  4. Укажите, хотите ли вы печатать все страницы, определенные страницы или непрерывный диапазон страниц.
  5. Печать PDF-документа с использованием настроек принтера и страницы

Следующий код показывает, как печатать определенные страницы или диапазон страниц в документе PDF с помощью Java:

// Создать объект PdfViewer
PdfViewer viewer = new PdfViewer();
// Открыть исходный PDF-файл
viewer.bindPdf(dataDir + "test.pdf");
// Установить атрибуты для печати
viewer.setAutoResize(true); // Print the file with adjusted size
viewer.setAutoRotate(true); // Print the file with adjusted rotation
viewer.setPrintPageDialog(false); // Do not produce the page number dialog when printing

// Создание объектов для настроек принтера и страницы и PrintDocument
PrintPageSettings pgs = new PrintPageSettings();
PdfPrinterSettings ps = new PdfPrinterSettings();
// Установить имя принтера
ps.setPrinterName("Microsoft Print to PDF");

// пс.setPrintRange(2); // 0 = все страницы; 1 = выбор; 2 = несколько страниц
// пс.setFromPage (1);
// пс.setToPage (2);


ps.setPrintRange(1); // 0 = all pages; 1 = selection; 2 = some pages
ps.setSelectedPages(new int[]{1, 3, 5});


// Печать документа с использованием настроек принтера и страницы
viewer.printDocumentWithSettings(pgs, ps);

Печать защищенного PDF с помощью Java

Иногда PDF-файлы защищены или зашифрованы паролями, чтобы обеспечить авторизованный доступ к данным. Вы можете легко получить доступ и распечатать защищенный или зашифрованный файл PDF с помощью кода Java и распечатать файл в соответствии с вашими требованиями. Вам необходимо выполнить следующие шаги:

  1. Загрузите защищенный паролем входной файл PDF с паролем
  2. Инициализировать объект PdfViewer
  3. Распечатать PDF-документ

Приведенный ниже код основан на этих шагах, которые объясняют, как печатать защищенные PDF-файлы с помощью кода Java:

//Загрузить защищенный PDF-документ, указав пароль пользователя или владельца
Document document = new Document(dataDir + "Password.pdf" , "userORowner");
//Создать объект PdfViewer
PdfViewer viewer = new PdfViewer();
//Открыть исходный PDF-файл
viewer.bindPdf(document);
//Распечатать PDF-документ
viewer.printDocument();
//Закрыть PDF-файл
viewer.close();

Проверка состояния задачи печати при печати PDF с использованием Java

Вы можете следить за статусом задания печати после отправки файла в очередь печати принтера. Это позволяет вашему приложению решить, была ли печать успешной или нет. Класс PdfViewer предоставляет метод getPrintStatus, который помогает вам проверить статус задания на печать. Например, при печати PDF в формате XPS вы можете получить статус, выполнив следующие действия:

  1. Загрузить исходный PDF-файл
  2. Установить атрибуты для печати
  3. Создание объектов для параметров принтера и страницы
  4. Установить имя принтера
  5. Распечатать вывод в файл
  6. Проверьте состояние печати

В следующем коде показано, как проверить состояние задачи печати во время печати PDF с помощью кода Java:

// Создать объект PdfViewer
PdfViewer viewer = new PdfViewer();
// Открыть исходный PDF-файл
viewer.bindPdf(dataDir + "test.pdf");
// Установить атрибуты для печати
viewer.setAutoResize(true); // Print the file with adjusted size
viewer.setAutoRotate(true); // Print the file with adjusted rotation
viewer.setPrintPageDialog(false); // Do not produce the page number dialog when printing

// Создание объектов для настроек принтера и страницы и PrintDocument
PrintPageSettings pgs = new PrintPageSettings();
PdfPrinterSettings ps = new PdfPrinterSettings();

// Установить имя принтера
ps.setPrinterName("Microsoft Print to PDF");


// Результирующее название распечатки
ps.setPrintFileName(dataDir + "ResultantPrintout.xps");

// Распечатать вывод в файл
ps.setPrintToFile(true);

// Распечатать документ с указанными выше настройками
viewer.printDocumentWithSettings(pgs, ps);

// Проверьте состояние печати
if (viewer.getPrintStatus() != null)
{
    // Было выброшено исключение
    Exception ex = (Exception)viewer.getPrintStatus();
    if (ex != null)
    {
        // Получить сообщение об исключении
    }
}
else
{
    // Ошибок не обнаружено. Задание на печать успешно завершено
    System.out.println("printing completed without any issue..");
}

Вывод

Мы рассмотрели различные сценарии, связанные с печатью PDF-файлов в ваших Java-приложениях. Вы можете легко интегрировать эти функции в свои веб-приложения, консольные приложения или любой другой тип проекта, с которым вы работаете, используя язык Java. Вы можете дополнительно изучить API, изучив справочные материалы по API или документацию по продукту. Существует гораздо больше возможных сценариев, связанных с печатью PDF, и вы можете свободно обсуждать их с нами через Форум бесплатной поддержки. Мы будем рады помочь!

Смотрите также