Bonjour,
Ce code va vous permetre d'imprimer un Fichier RTF ou DOC.
Mais avant cela il va faloir vous munire d'une librairie gratuite.
http://danadler.com/jacob/
Cette librairie va vous permettre d'utilisé les ocx de windows, et dans mon cas celle de word.
Aller sur ce amusé vous bien!
Source / Exemple :
import javax.print.PrintService;
import javax.print.PrintServiceLookup;
import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;
/*
*
- TODO Imprime un fichier RTF ou DOC en tache de fond
- /
/**
*
public class ImpressionRTF {
public static void main(String[] args) {
String Chemin = "c:\\monDossier\\MonDocRtfOuDoc.rtf";
// initialisation du composant ActiveX de Word
ActiveXComponent Wd = new ActiveXComponent("word.Application");
//Récupération de l'impprimante pas défaut
PrintService service = PrintServiceLookup.lookupDefaultPrintService();
//fait tourner word en tache de fond
Wd.setProperty("Visible", new Variant(false));
//empèche des l'affichage de message à louverture du fichier
Wd.setProperty("DisplayAlerts", new Variant(false));
//définition du type de document
Object Doc = Wd.getProperty("Documents").toDispatch();
//ouverture du fichier désigné par le chemin
Object doc = Dispatch.call(Doc, "Open", Chemin).toDispatch();
//récupération du Dispatch du document actif
Object mydoc = Dispatch.get(Wd, "ActiveDocument").toDispatch();
//deffinition de l'impression
Dispatch.put(Wd, "ActivePrinter", service.getName());
//impression du document
Variant t = new Variant(true);
Variant f = new Variant(false);
Dispatch.callN(mydoc, "PrintOut", new Variant[] {t});
try {
//le tread dort pendant 3min afin que word puisse charger les fichiers en impression
//3mimute c'est pour le gros fichier environ 130pages
Thread.sleep(240000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//fermeture silentieuse de word
Variant toto =new Variant(false);
Wd.invoke("Quit", new Variant[] {toto});
System.out.println("c'est bon c'est fermé!");
}
}
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.