IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SWT/JFace Java Discussion :

Ms Word dans SWT


Sujet :

SWT/JFace Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté Avatar de bidi
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    262
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 262
    Par défaut Ms Word dans SWT
    Bonjour,

    Voici mon problème.
    J'essaye d'inclure un composant OLE dans une fenêtre SWT. Tout ça fonctionne très bien c'est cool :-)

    Le composant en question est Word. Le problème est (et franchement je ne vois pas dutout d'ou ça peut venir) que le layout de la page word ouverte par ce composant n'est pas A4... (je sais pas si je suis clair mais... :-) on dirait qu'il bascule tout le temps en mode 'letter'. J'ai bien essayé de setter les properties PageWidth et PageHeight du document Actif. On voit que ça fonctionne, la page est remise comme il faut mais tout de suite après, il la remet en letter?!!!

    Voilà, j'espère que je suis clair... si jamais voilà un bête exemple de code pour afficher Word et un autre ou je fais le PageSetup.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
     
    public void start() {
     
     Display display = new Display();
            Shell shell = new Shell(display);
            shell.setLayout(new FillLayout());
     
            Menu bar = new Menu(shell, SWT.BAR);
            shell.setMenuBar(bar);
            OleFrame frame = new OleFrame(shell, SWT.NONE);
            OleClientSite clientsite;
            try {
                clientsite = new OleClientSite(frame, SWT.NONE, "Word.Document");
                shell.layout();
                clientsite.doVerb(OLE.OLEIVERB_SHOW);
            } catch (SWTException ex) {
                System.out.println("Failed to create <> : " + ex.getMessage());
                return;
            }
            shell.open();
     
            while (shell != null && !shell.isDisposed()) {
                if (!display.readAndDispatch())
                    display.sleep();
            }
        }
     
    }
     
    private void pageSetup() {
            OleAutomation aut = getChildAutomation(this.wordAutomation, "PageSetup");
            try {
                int ids[] = aut.getIDsOfNames(new String[]{"PageWidth"});
                if (aut != null) {
                    System.out.println(aut.getProperty(ids[0]));
                    aut.setProperty(ids[0], new Variant(595));
                    System.out.println(aut.getProperty(ids[0]));
                }
     
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                try {
                    URL u = new URL("http://www.smals.com");
     
                } catch (MalformedURLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
     
                if (aut != null) {
                    aut.dispose();
                }
            }
        }
    Merci :-)

  2. #2
    Membre éprouvé
    Inscrit en
    Septembre 2005
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 147
    Par défaut
    On voit que ça fonctionne, la page est remise comme il faut mais tout de suite après, il la remet en letter?!!!
    C'est word qui n'aime pas recevoir des ordres d'un langage libre.
    Seul les langages certifiés microsoft® sont autorisés à donner des ordres à word (nous n'avons pas les mêmes valeurs !)

Discussions similaires

  1. [Forms6i] comment appeler word dans un formulaire
    Par TIENE dans le forum Oracle
    Réponses: 2
    Dernier message: 02/09/2005, 18h32
  2. ouverture de fichiers word dans delphi (sans utiliser word)
    Par poussinphp dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 11/07/2005, 14h25
  3. Enregistremenbt d'un fichier WORD dans une base de données
    Par yam49 dans le forum Bases de données
    Réponses: 4
    Dernier message: 02/08/2004, 15h01
  4. [SWT]TextField dans SWT
    Par Albarad dans le forum SWT/JFace
    Réponses: 1
    Dernier message: 21/06/2004, 12h04
  5. [Struts][Oracle]Upload fichier word dans une base
    Par Maximil ian dans le forum Struts 1
    Réponses: 7
    Dernier message: 10/02/2004, 15h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo