Bonjour,
Je voudrais savoir si il était possible d'imprimer du côté client un PDF qui se trouve sur le serveur ?
merci
Version imprimable
Bonjour,
Je voudrais savoir si il était possible d'imprimer du côté client un PDF qui se trouve sur le serveur ?
merci
A mon avis cela ne devrais pas poser de problème si ton serveur est accessible.
Et comment sans passer pas une applet java et sans ouvrir le prompt d'impression ?
merci
Salut,
Voici un petit qui permet d'imprimer un fichier pdf en local. A mon avis le procédé pour imprimer un code à partir du serveur devrait être similaire. Je l'ai testé, il fonctionne sans problème.
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 import javax.print.PrintService; import javax.print.PrintServiceLookup; public class ImpressionPDF { public static void main(String[] args) { //final String PATH_ADOBE_READER = "C:\\Program Files\\Adobe\\Acrobat 5.0\\Reader\\AcroRd32.exe"; final String PATH_ADOBE_READER = "C:\\Program Files\\Adobe\\Acrobat 7.0\\Acrobat\\Acrobat.exe"; final String ADOBE_READER_PRINT_COMMAND = "/t"; final String SLASH = "/"; final String QUOTE = "\""; final String SPACE = " "; final String pFile ="C:\\Reception.pdf"; PrintService service = PrintServiceLookup.lookupDefaultPrintService();//localisation de l'imprimante par défaut // Commande à exécuter String lCommand = QUOTE + PATH_ADOBE_READER + QUOTE + SPACE + ADOBE_READER_PRINT_COMMAND + SPACE + QUOTE + pFile + QUOTE + SPACE + QUOTE + service.getName() + QUOTE;//service.getName() c'est l'imprimante par defaut System.out.println("[printPDF] Command to be executed : " + lCommand); Process lAdobeProcess = null; try { // Execute Adobe Reader command "/t" (imprime et ferme) lAdobeProcess = Runtime.getRuntime().exec(lCommand); //dors pendant 2.4seconde avant de fermer la fenêtre de Acrobat Reader Thread.sleep(24000); lAdobeProcess.destroy(); } catch (Exception e) { System.err.println("[printPDF] Error printing PDF : " + pFile); e.printStackTrace(); } finally {System.out.println("lAdobeProcess.toString()"); if (lAdobeProcess != null) {//destruction de l'instance de Acrobat Reader lAdobeProcess.destroy(); lAdobeProcess = null; } }} }
Bonjour à vous,
Je prend votre post au vol, et j'avoue que je ne comprends pas complètement la question.
Quand à ta réponse The Watcher, je vais être un peu dur, mais je penses que ce n'est pas la bonne.
En effet, ton code réalise ce que fait n'importe quel raccourcis sous windows, à savoir lancer Acrobat Reader avec les paramètres nécessaire pour lui demander en ligne de commandes d'imprimer le fichier PDF fournit aussi dans les paramètres de lancement. Donc, pourquoi écrire un programme pour faire ce que fait un simple raccourcis ?
Bref, je penses que ce que se demande Xavier1936 est de savoir s'il est possible d'imprimer un PDF tout simplement en glissant ce dernier sur l'icône d'une imprimante, et ce sans forcément posséder Acrobat Reader, et sans que la machine ne pose de questions.
Est-ce bien cela Xavier1936 ?;)
Bonjour,
Oui à peut prêt cela, quand on clique sur le bouton imprimer le pdf est construit à la volé et il est imprimé sans intervention du client.
1) récupérer le PDF du serveur et le stocker en local dans un File
2) utiliser la commande
Ca marchera dans la pluspart des configuration, l'applet devra être signée pour pouvoir imprimer et stocker un fichier en local.Code:java.awt.Desktop.getInstance().print(file);
Ok, je crois que j'ai compris. Dans votre projet, vous présentez une page web qui doit visualiser des éléments permettant à l'utilisateur de cibler un document représenté probablement par une icone PDF dans la page web, avec à côté de lui un jolie bouton Imprimer. Mais d'après ce que vous décrivez, c'est le serveur qui réalise l'opération d'impression, il est donc normal qu'il envoie cette impression vers son imprimante par défaut. Pour "déporter" l'opération d'impression, le tout sans avoir à installer d'éléments sur le poste client, il ne reste plus que la solution que vous propose Tchize, une applet.
:mrgreen: