Impression d'un fichier rtf ou doc en tache de fond

Contenu du snippet

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;

/*

  • Created on 23 févr. 2005
*
  • TODO Imprime un fichier RTF ou DOC en tache de fond
  • /
/**
  • @author Waldo2188
*
  • /
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é!"); } }

A voir également

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.