Imprimer un PDF avec Java par programme

L’impression de documents PDF est souvent une fonction clé dans différentes entreprises et organisations. Vous pouvez facilement imprimer un fichier PDF par programme en utilisant le langage Java. Vous pouvez travailler avec l’API Aspose.PDF for Java en la configurant dans votre environnement. Passons en revue différents scénarios d’impression PDF possibles dans vos applications Java :

Imprimer un fichier PDF avec Java

Vous pouvez facilement imprimer un fichier PDF à l’aide du code Java en suivant les étapes ci-dessous :

  1. Créer un objet PdfViewer
  2. Charger le fichier PDF d’entrée
  3. Imprimer le fichier PDF

L’extrait de code ci-dessous montre comment imprimer des fichiers PDF par programmation à l’aide de Java :

//Créer un objet PdfViewer
PdfViewer viewer = new PdfViewer();
//Ouvrir le fichier PDF d'entrée
viewer.bindPdf(dataDir + "Test.pdf");
//Imprimer le document PDF
viewer.printDocument();
//Fermer le fichier PDF
viewer.close();

Impression de plusieurs documents PDF à l’aide de Java

L’impression de plusieurs fichiers ou l’impression par lots de fichiers PDF est un processus simple utilisant le langage Java. Vous pouvez imprimer un certain nombre de fichiers PDF en suivant les étapes ci-dessous :

  1. Initialiser une liste de type String
  2. Ajouter plusieurs fichiers PDF à imprimer
  3. Imprimer des documents PDF

Le code suivant montre comment imprimer plusieurs fichiers PDF à l’aide du langage Java :

// Initialiser une liste de type String
List<String> files = new ArrayList<>();

// Ajouter plusieurs fichiers à imprimer
files.add(dataDir + "First.pdf");
files.add(dataDir + "Second.pdf");

// Traiter chaque fichier à imprimer
for (String file : files)
{
    //Créer un objet PdfViewer
    PdfViewer viewer = new PdfViewer();
    //Ouvrir le fichier PDF d'entrée
    viewer.bindPdf(file);
    //Imprimer le document PDF
    viewer.printDocument();
    //Fermer le fichier PDF
    viewer.close();
}

Imprimer des pages spécifiques ou une plage de pages à l’aide de Java

L’API vous donne beaucoup de contrôle lors de l’impression de fichiers PDF. Vous pouvez travailler avec différents champs et méthodes lors de l’impression de fichiers, selon vos besoins. Par exemple, si vous ne souhaitez pas imprimer toutes les pages d’un fichier PDF et seulement quelques pages. Il peut s’agir d’une plage de pages continue comme de la page numéro 3 à la page numéro 7, ou il peut s’agir de pages aléatoires comme la page numéro 1, 5 et 6. Vous pouvez couvrir les deux scénarios en suivant les étapes suivantes :

  1. Initialiser l’objet PdfViewer
  2. Définir les attributs pour l’impression
  3. Créer des objets pour les paramètres d’imprimante et de page
  4. Spécifiez si vous souhaitez imprimer toutes les pages, des pages spécifiques ou une plage de pages continue
  5. Imprimer un document PDF à l’aide des paramètres de l’imprimante et de la page

Le code suivant montre comment imprimer des pages spécifiques ou une plage de pages dans un document PDF avec Java :

// Créer un objet PdfViewer
PdfViewer viewer = new PdfViewer();
// Ouvrir le fichier PDF d'entrée
viewer.bindPdf(dataDir + "test.pdf");
// Définir les attributs pour l'impression
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

// Créer des objets pour les paramètres d'imprimante et de page et PrintDocument
PrintPageSettings pgs = new PrintPageSettings();
PdfPrinterSettings ps = new PdfPrinterSettings();
// Définir le nom de l'imprimante
ps.setPrinterName("Microsoft Print to PDF");

// ps.setPrintRange(2); // 0 = toutes les pages ; 1 = sélection ; 2 = quelques pages
// ps.setFromPage(1);
// ps.setToPage(2);


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


// Imprimer le document à l'aide des paramètres de l'imprimante et de la page
viewer.printDocumentWithSettings(pgs, ps);

Imprimer un PDF sécurisé avec Java

Parfois, les fichiers PDF sont sécurisés ou cryptés avec des mots de passe afin de garantir un accès autorisé aux données. Vous pouvez facilement accéder et imprimer le fichier PDF sécurisé ou crypté à l’aide du code Java et imprimer le fichier selon vos besoins. Vous devez suivre les étapes ci-dessous :

  1. Charger le fichier d’entrée PDF protégé par mot de passe avec le mot de passe
  2. Initialiser l’objet PdfViewer
  3. Imprimer le document PDF

Le code ci-dessous est basé sur ces étapes qui expliquent comment imprimer les fichiers PDF sécurisés à l’aide du code Java :

//Charger un document PDF sécurisé tout en spécifiant le mot de passe utilisateur ou propriétaire
Document document = new Document(dataDir + "Password.pdf" , "userORowner");
//Créer un objet PdfViewer
PdfViewer viewer = new PdfViewer();
//Ouvrir le fichier PDF d'entrée
viewer.bindPdf(document);
//Imprimer le document PDF
viewer.printDocument();
//Fermer le fichier PDF
viewer.close();

Vérifier l’état de la tâche d’impression lors de l’impression d’un PDF à l’aide de Java

Vous pouvez garder un œil sur l’état du travail d’impression une fois le fichier envoyé à la file d’attente d’impression de l’imprimante. Cela permet à votre application de décider si l’impression a réussi ou non. La classe PdfViewer expose la méthode getPrintStatus qui vous aide à vérifier l’état du travail d’impression. Par exemple, lors de l’impression d’un PDF au format XPS, vous pouvez obtenir l’état en suivant les étapes ci-dessous :

  1. Charger le fichier PDF d’entrée
  2. Définir les attributs pour l’impression
  3. Créer des objets pour les paramètres d’imprimante et de page
  4. Définir le nom de l’imprimante
  5. Imprimer la sortie dans un fichier
  6. Vérifier l’état de l’impression

Le code suivant montre comment vérifier l’état de la tâche d’impression lors de l’impression d’un PDF à l’aide du code Java :

// Créer un objet PdfViewer
PdfViewer viewer = new PdfViewer();
// Ouvrir le fichier PDF d'entrée
viewer.bindPdf(dataDir + "test.pdf");
// Définir les attributs pour l'impression
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

// Créer des objets pour les paramètres d'imprimante et de page et PrintDocument
PrintPageSettings pgs = new PrintPageSettings();
PdfPrinterSettings ps = new PdfPrinterSettings();

// Définir le nom de l'imprimante
ps.setPrinterName("Microsoft Print to PDF");


// Nom de l'impression résultante
ps.setPrintFileName(dataDir + "ResultantPrintout.xps");

// Imprimer la sortie dans un fichier
ps.setPrintToFile(true);

// Imprimer le document avec les paramètres spécifiés ci-dessus
viewer.printDocumentWithSettings(pgs, ps);

// Vérifier l'état de l'impression
if (viewer.getPrintStatus() != null)
{
    // Une exception a été levée
    Exception ex = (Exception)viewer.getPrintStatus();
    if (ex != null)
    {
        // Obtenir un message d'exception
    }
}
else
{
    // Aucune erreur n'a été trouvée. Le travail d'impression s'est terminé avec succès
    System.out.println("printing completed without any issue..");
}

Conclusion

Nous avons exploré différents scénarios liés à l’impression de fichiers PDF dans vos applications Java. Vous pouvez facilement intégrer ces fonctionnalités dans vos applications Web, applications console ou tout autre type de projet avec lequel vous travaillez, en utilisant le langage Java. Vous pouvez explorer davantage l’API en vous référant aux références API ou à la documentation produit. Il existe de nombreux autres scénarios possibles liés à l’impression PDF et vous pouvez discuter librement avec nous via Free Support Forum. Nous serons heureux de vous aider !

Voir également