Imprimir PDF com Java Programaticamente

A impressão de documentos PDF costuma ser uma função-chave em diferentes empresas e organizações. Você pode imprimir facilmente um arquivo PDF programaticamente usando a linguagem Java. Você pode trabalhar com a API Aspose.PDF for Java configurando em seu ambiente. Vamos percorrer diferentes cenários de impressão de PDF que são possíveis em seus aplicativos Java:

Imprimir arquivo PDF usando Java

Você pode imprimir facilmente um arquivo PDF usando o código Java seguindo as etapas abaixo:

  1. Criar objeto PdfViewer
  2. Carregar arquivo PDF de entrada
  3. Imprima o arquivo PDF

O trecho de código abaixo mostra como imprimir arquivos PDF programaticamente usando Java:

//Criar objeto PDFViewer
PdfViewer viewer = new PdfViewer();
//Abrir arquivo PDF de entrada
viewer.bindPdf(dataDir + "Test.pdf");
//Imprimir documento PDF
viewer.printDocument();
//Fechar arquivo PDF
viewer.close();

Imprimindo vários documentos PDF usando Java

A impressão de vários arquivos ou a impressão em lote de arquivos PDF é um processo simples usando a linguagem Java. Você pode imprimir vários arquivos PDF seguindo as etapas abaixo:

  1. Inicializar uma lista do tipo String
  2. Adicione vários arquivos PDF para imprimir
  3. Imprimir documentos PDF

O código a seguir mostra como imprimir vários arquivos PDF usando a linguagem Java:

// Inicializar uma lista do tipo String
List<String> files = new ArrayList<>();

// Adicione vários arquivos a serem impressos
files.add(dataDir + "First.pdf");
files.add(dataDir + "Second.pdf");

// Processe cada arquivo para impressão
for (String file : files)
{
    //Criar objeto PDFViewer
    PdfViewer viewer = new PdfViewer();
    //Abrir arquivo PDF de entrada
    viewer.bindPdf(file);
    //Imprimir documento PDF
    viewer.printDocument();
    //Fechar arquivo PDF
    viewer.close();
}

Imprimir páginas específicas ou intervalo de páginas usando Java

A API oferece muito controle ao imprimir arquivos PDF. Você pode trabalhar com diferentes campos e métodos durante a impressão de arquivos, conforme suas necessidades. Por exemplo, se você não quiser imprimir todas as páginas de um arquivo PDF e apenas algumas páginas. Pode ser algum intervalo de páginas contínuo, como da página número 3 até a página número 7, ou podem ser páginas aleatórias, como número da página 1,5 e 6. Você pode cobrir ambos os cenários com as seguintes etapas:

  1. Inicialize o objeto PdfViewer
  2. Definir atributos para impressão
  3. Criar objetos para configurações de impressora e página
  4. Especifique se deseja imprimir todas as páginas, páginas específicas ou um intervalo de páginas contínuo
  5. Imprimir documento PDF usando as configurações da impressora e da página

O código a seguir mostra como imprimir páginas específicas ou um intervalo de páginas em um documento PDF com Java:

// Criar objeto PDFViewer
PdfViewer viewer = new PdfViewer();
// Abrir arquivo PDF de entrada
viewer.bindPdf(dataDir + "test.pdf");
// Definir atributos para impressão
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

// Criar objetos para configurações de impressora e página e PrintDocument
PrintPageSettings pgs = new PrintPageSettings();
PdfPrinterSettings ps = new PdfPrinterSettings();
// Definir nome da impressora
ps.setPrinterName("Microsoft Print to PDF");

// ps.setPrintRange(2); // 0 = todas as páginas; 1 = seleção; 2 = algumas páginas
// ps.setFromPage(1);
// ps.setToPage(2);


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


// Imprimir documento usando as configurações da impressora e da página
viewer.printDocumentWithSettings(pgs, ps);

Imprimir PDF protegido usando Java

Às vezes, os arquivos PDF são protegidos ou criptografados com senhas para garantir o acesso autorizado aos dados. Você pode acessar e imprimir facilmente o arquivo PDF protegido ou criptografado usando o código Java e imprimir o arquivo conforme suas necessidades. Você precisa seguir os passos abaixo:

  1. Carregar arquivo de entrada PDF protegido por senha com a senha
  2. Inicialize o objeto PdfViewer
  3. Imprima o documento PDF

O código abaixo é baseado nestas etapas que explicam como imprimir os arquivos PDF protegidos usando o código Java:

//Carregar documento PDF seguro ao especificar a senha de usuário ou proprietário
Document document = new Document(dataDir + "Password.pdf" , "userORowner");
//Criar objeto PDFViewer
PdfViewer viewer = new PdfViewer();
//Abrir arquivo PDF de entrada
viewer.bindPdf(document);
//Imprimir documento PDF
viewer.printDocument();
//Fechar arquivo PDF
viewer.close();

Verifique o status da tarefa de impressão ao imprimir PDF usando Java

Você pode ficar de olho no status do trabalho de impressão depois que o arquivo for enviado para a fila de impressão da impressora. Isso permite que seu aplicativo decida se a impressão foi bem-sucedida ou não. A classe PdfViewer expõe o método getPrintStatus que ajuda a verificar o status do trabalho de impressão. Por exemplo, ao imprimir um PDF no formato XPS, você pode obter o status seguindo as etapas abaixo:

  1. Carregar arquivo PDF de entrada
  2. Definir atributos para impressão
  3. Criar objetos para configurações de impressora e página
  4. Definir nome da impressora
  5. Imprima a saída em arquivo
  6. Verifique o status da impressão

O código a seguir mostra como verificar o status da tarefa de impressão durante a impressão de PDF usando o código Java:

// Criar objeto PDFViewer
PdfViewer viewer = new PdfViewer();
// Abrir arquivo PDF de entrada
viewer.bindPdf(dataDir + "test.pdf");
// Definir atributos para impressão
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

// Criar objetos para configurações de impressora e página e PrintDocument
PrintPageSettings pgs = new PrintPageSettings();
PdfPrinterSettings ps = new PdfPrinterSettings();

// Definir nome da impressora
ps.setPrinterName("Microsoft Print to PDF");


// Nome da impressão resultante
ps.setPrintFileName(dataDir + "ResultantPrintout.xps");

// Imprima a saída em arquivo
ps.setPrintToFile(true);

// Imprima o documento com as configurações especificadas acima
viewer.printDocumentWithSettings(pgs, ps);

// Verifique o status da impressão
if (viewer.getPrintStatus() != null)
{
    // Uma exceção foi lançada
    Exception ex = (Exception)viewer.getPrintStatus();
    if (ex != null)
    {
        // Obter mensagem de exceção
    }
}
else
{
    // Nenhum erro foi encontrado. O trabalho de impressão foi concluído com sucesso
    System.out.println("printing completed without any issue..");
}

Conclusão

Exploramos diferentes cenários relacionados à impressão de arquivos PDF em seus aplicativos Java. Você pode integrar facilmente esses recursos em seus aplicativos da Web, aplicativos de console ou qualquer outro tipo de projeto com o qual esteja trabalhando, usando a linguagem Java. Você pode explorar ainda mais a API aprendendo com referências da API ou Documentação do produto. Há muito mais cenários possíveis relacionados à impressão de PDF e você pode discutir livremente conosco através do Free Support Forum. Ficaremos felizes em ajudar!

Veja também