IMPRESSION D'UN DOCUMENT PDF EN TACHE DE FOND

Signaler
Messages postés
492
Date d'inscription
jeudi 28 août 2003
Statut
Membre
Dernière intervention
25 avril 2007
-
Messages postés
2
Date d'inscription
samedi 16 septembre 2006
Statut
Membre
Dernière intervention
30 novembre 2007
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/29734-impression-d-un-document-pdf-en-tache-de-fond

Messages postés
2
Date d'inscription
samedi 16 septembre 2006
Statut
Membre
Dernière intervention
30 novembre 2007

Suis navré et désolé mais je ne suis plus du tout dans le coup et ne pourrais t'offrir aucune aide.
Nous avons opté pour une autre solution et je ne fais plus de dev.

Sorry
FB
Messages postés
1
Date d'inscription
mardi 10 avril 2007
Statut
Membre
Dernière intervention
30 novembre 2007

Frabu,

Mon besoin :

1 - lire un très grand nombres de fichiers pdf (assez volumineux) et d'origines diverses en entrée
2 - les passer dans PDFCreator à travers Adobe pour les mettre en conformité, car certains ont des polices
particulières...
3 - j'ai besoin que le traitement soient le plus rapide possible.


Ce que j'ai déjà fait :

J'ai repris le code de Waldo, que je remercie au passage ! mais, j'ai encore d'autres soucis :

Problèmes :

1 - C'est bien, car Adobe est en tâche de fond (j'aurais préféré pas le voir du tout), mais le traitement reste long
2 - çà plante souvent, de manière aléatoire
3 - je ne peux pas me permettre de mettre une tempo style Thread.sleep(), car les fichiers sont de tailles variables...et ça risque d'être inssufisant pour certains.

Ta solution :

1 - D'abord, merci de me dire, lequel ils faut télécharger exactement de .exe ?
2 - J'en ai essayé deux, à exécuter à la place d'Adobe dans le Runtime.getRuntime().exec(lCommand);
3 - Je ne vois pas ou on me demande de choisir le nombre de copie...etc...
4 - et surtout, çà ouvre Adobe (et pas en tâche de fond) et çà plante, car il n'arrive pas à ouvrir mes fichiers...

Pourrais-tu m'apporter une aide ...c'est urgent ! Merci mille fois....

merci de répondre si possible à : slimane-docuged@orange.fr

Slim
Messages postés
142
Date d'inscription
jeudi 12 février 2004
Statut
Membre
Dernière intervention
20 mai 2008

frabu -> Nickel, je pensse que ton commantaire va aider pas mal de monde.
Vraiment Super!
++
Messages postés
2
Date d'inscription
samedi 16 septembre 2006
Statut
Membre
Dernière intervention
30 novembre 2007

Un petit tool qui fait une meilleure glue entre ce code (que j'ai finalement repris dans notre projet après vaines recherches) et AcrobatReader:
http://www.esnips.com/web/PDFTools
C'est un utilitaire ecrit en C (mais dispo en .exe) que j'appelle à la place de AcrobatReader, il se chargera de faire l'appel à ce dernier. Pas de doc mais juste lancer "pdfp.exe" et les options s'affichent.
Il permet de choisir le printer, l'orientation, le nbr de copie.
AcrobatReader s'ouvre et se ferme automatiquement: plus de wait ni de destroy. Mon code adapté devient alors:

final String PATH_PRINT_EXE = "C:\\temp\\pdfp.exe";
final String PRINT_COMMAND = "-p";
final String SLASH = "/";
final String QUOTE = """;
final String SPACE = " ";
final String fileToPrint ="E:\\test.pdf" ;
PrintService printer = PrintServiceLookup.lookupDefaultPrintService();
//localisation de l'imprimante par défaut

String lCommand =
QUOTE + PATH_PRINT_EXE + QUOTE + SPACE +
PRINT_COMMAND + SPACE +
QUOTE + printer.getName() + QUOTE + SPACE +
QUOTE + fileToPrint + QUOTE;

System.out.println("[printPDF] Command to be executed : " + lCommand);

try{
Runtime.getRuntime().exec(lCommand);//2 print en rafale!
Runtime.getRuntime().exec(lCommand);//pour savourer
}
catch (Exception e)
{
System.err.println("[printPDF] Error printing PDF : "+ fileToPrint);
e.printStackTrace();
}
Afficher les 19 commentaires