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

C++Builder Discussion :

Insertion de texte OleOpenOffice Writer


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut Insertion de texte OleOpenOffice Writer
    Apres le post de bakaneko:
    J'ai trouve comment inserer du texte ( et en modifiant les attributs du texte ) dans un document Writer OpenOffice par contre je ne sais pas positionner cette insertion a l'emplacement desire.
    Le code
    //---------------------------------------------------------------------------
    #include <vcl.h>
    #pragma hdrstop
    #include <SysUtils.hpp>
    #include <ComObj.hpp> // a inclure obligatoirement
    #include <Variants.hpp> // utile dans certains cas
    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    Variant vOOoOpenOffice, vOOoDesktop, vOOoLoadParams, vOOoDocument;
    try
    {
    vOOoOpenOffice = CreateOleObject("com.sun.star.ServiceManager");
    }
    catch (...)
    {
    // si on passe ici c'est qu'il y a une erreur
    }
    if (VarType(vOOoOpenOffice) == varDispatch)
    vOOoDesktop = vOOoOpenOffice.OleFunction("createInstance", "com.sun.star.frame.Desktop");
    int Bounds[2] = {0,-1};
    vOOoLoadParams = VarArrayCreate(Bounds, 1, varVariant);
    //ouverture fichier existant
    // FilePath = "file://localhost/C:/essai.sxc" -- pour un fichier Calc
    //ou
    // FilePath = "file:///C:/essai.sxc" -- pour un fichier Calc
    AnsiString FileName = "file:///C:/";
    // FileName += ExtractFilePath(Application->ExeName);
    FileName += "essaitxt.odt";
    FileName = StringReplace(FileName,"<A href="file://\\","/",TReplaceFlags">\\","/",TReplaceFlags()<< rfReplaceAll << rfIgnoreCase);
    Variant vFileName = StringToOleStr(FileName);
    vOOoDocument = vOOoDesktop.OleFunction("LoadComponentFromURL",vFileName,"_blank",0,vOOoLoadParams);
    Variant vOOoCursor, vOOoText;
    // acquisition du document
    vOOoText = vOOoDocument.OleFunction("GetText");
    // on cree un curseur
    vOOoCursor = vOOoText.OleFunction("CreateTextCursor");
    // on modifie les proprietes du texte
    vOOoCursor.OlePropertySet("CharColor", 255);
    vOOoCursor.OlePropertySet("CharShadowed", True);
    String aText = "essai";
    // on insere le texte
    vOOoText.OleFunction("InsertString", vOOoCursor, aText.c_str(), false);
    // on insere un caractere saut de ligne retour chariot
    vOOoText.OleFunction("InsertControlCharacter", vOOoCursor, 0, false);
    }
    //---------------------------------------------------------------------------

  2. #2
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    J'ai trouve les possibilites de deplacement du curseur je ne l'ai pas toutes testees, je completerais le post apres les testes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    //create cursor
       vOOoCursor = vOOoText.OleFunction("CreateTextCursor");
    // on deplace le curseur de 10 caracteres vers la droite 
    //vOOoCursor.OleFunction("goRight", 10, false); // ou goLeft
     
    // on se place a la fin du document
    vOOoCursor.OleFunction("gotoEnd", false); // ou gotoStart

  3. #3
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Je met le post resolu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. insertion de texte dans word via vb
    Par godik dans le forum VBA Word
    Réponses: 1
    Dernier message: 15/05/2006, 13h07
  2. [VBA-E] Insertion de texte dans word
    Par malhivertman1 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/05/2006, 16h17
  3. insertion du text dans un champs d'une page internet
    Par lassmust dans le forum Web & réseau
    Réponses: 1
    Dernier message: 24/04/2006, 10h55
  4. Norme d'insertion/affichage texte dans une DB ?
    Par kiwikiller dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 21/12/2005, 11h53
  5. [web] [Perl/Tk] Pas d'insertion de texte !
    Par GLDavid dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 08/07/2004, 22h00

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