Manipuler OpenOffice.org avec Delphi

Résolu
dyvim Messages postés 9 Date d'inscription lundi 11 octobre 2004 Statut Membre Dernière intervention 30 décembre 2005 - 15 avril 2005 à 10:20
 Pierrezx - 14 mai 2019 à 08:52
Cela fait maintenant une semaine que je galère pour réaliser un publipostage avec openoffice (en le pilotant avec delphi).

Est ce que quelqu'un aurait déjà réalisé cette opération.?..

Actuellement je peux faire une fusion (mailmerge) mais j'ai un problème avec le datasource
Ca commence à devenir désespérant...
Dyvim

15 réponses

dyvim Messages postés 9 Date d'inscription lundi 11 octobre 2004 Statut Membre Dernière intervention 30 décembre 2005
28 nov. 2005 à 23:13
Merci pour le lien...
Mais j'avais déjà trouvé tout ce qu'il me fallait justement sur le site
fr.openoffice.org
On peut y trouver une série de HowTo très interessante et surtout une liste de diffusion consacrée à la programmation sous OpenOffice ou à la manipulation de OOo par son API...
Autres choses interessantes le SDK ou la dernière version de OOo qui y sont téléchargeable...
Il existe aussi un site en langue anglaise sur ces thèmes www.openoffice.org
Sinon je recommandes aussi le livre de B. Marcelly et L. Godard Programmez OpenOffice.org.
Bon courae à tous ceux qui se lanceraient dans la programmation de l'API...

Dyvim
3
dyvim Messages postés 9 Date d'inscription lundi 11 octobre 2004 Statut Membre Dernière intervention 30 décembre 2005
27 déc. 2005 à 18:55
As tu été voir les deux sites : http://fr.openoffice.org/ et http://www.openoffice.org/
Tu as des forums / mailing list qui possèdent la reponse à ta question.

Essaye cette page là sinon http://www.mail-archive.com/cgi-bin/htsearch?restrict=;exclude=;config=prog_fr_openoffice_org;method=and;format=short;words=publipostage;page=3http://www.mail-archive.com/prog@fr.openoffice.org/msg00434.html
Si tu regardes les différents threads tu devrais avoir la réponse à ta question..
Tu peux essayer de chercher thomas coquery

Si tu le sens bien en anglais va voir là aussi
http://www.oooforum.org/forum/search.phtml?mode=results
recherche mailmerge...
sur le forum anglais cherche auteur = dyvim

Si tu ne trouves vraiment pas alors je verrais pour mettre mes sources en ligne

Dyvim
3
dyvim Messages postés 9 Date d'inscription lundi 11 octobre 2004 Statut Membre Dernière intervention 30 décembre 2005
30 déc. 2005 à 15:05
Je ne comprends pas bien ce que tu veux faire. Il ne s'agit pas d'un publipostage en fait? Essaie de me dire exactement ce que tu veux obtenir....
Sinon je ne penses pas que les textCursor soient ce que tu cherches.
Si tu cherches des champs que tu pourrais remplir avec des données, il s'agit de TextField.

Je te conseille fortement le bouquin de B. Marcelly et L. Godard Programmez OpenOffice.org.
si tu dois developper longtemps avec OOo.
Sinon il te faudra le SDK et pas mal de patience pour t'y retrouver dans l'API.(et surtout l'outil XRay de L. Godard qui permet de voir les attributs et méthodes des objets de l'API voir site fr.openofffice.org)

Dyvim
3
jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 7
15 avril 2005 à 10:23
Hello,



Je ne sais pas si ca repondra exactement a ta demande mais voici un lien :

http://www.phidels.com/php/index.php3?page=../php/pagetelechargementzip.php3&id=568

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dyvim Messages postés 9 Date d'inscription lundi 11 octobre 2004 Statut Membre Dernière intervention 30 décembre 2005
15 avril 2005 à 14:12
Et bien cette source est relativement interessante pour quelqu'un qui
ne saurais pas du tout manipuler office, mais ce que fait le code que
tu m'a filé, je savais déjà le faire (regardez la FAQ Delphi de
développez.com partie open office, toutes les bases (ouvrir un
document, le fermer, l'imprimer,...) y sont ).

Non ma demande est un peu plus pointue et concerne le PUBLIPOSTAGE et la crtéation de DATASOURCE...

Merci quand même et sinon ce site à l'air très intéressant.

Dyvim
0
cs_mathieu49 Messages postés 3 Date d'inscription mardi 20 avril 2004 Statut Membre Dernière intervention 28 novembre 2005
28 nov. 2005 à 20:23
Tu trouveras peut etre des info dans ce zip

il contient des sources et une doc

http://fr.openoffice.org/Documentation/How-to/programmation/Delphi_OOo_v10fr.zip
0
bodruith Messages postés 2 Date d'inscription mardi 27 décembre 2005 Statut Membre Dernière intervention 29 décembre 2005
27 déc. 2005 à 14:45
Salut à tous,



Je cherche moi aussi à faire du publipostage avec OpenOffice depuis
Delphi. J'ai déjà fait la même chose avec Word mais apparemment cela ne
fonctionne pas de la même façon. J'aurais donc voulu savoir si
quelqu'un avait déjà réussi à faire ceci ?

J'arrive à ouvrir mon document avec OpenOffice mais je n'arrive pas à remplir les signets.

Merci d'avance.

@+
0
bodruith Messages postés 2 Date d'inscription mardi 27 décembre 2005 Statut Membre Dernière intervention 29 décembre 2005
29 déc. 2005 à 16:19
Merci pour ces liens. En fait ce que je voudrais c'est utiliser des
repères de texte comme ça j'ai juste à me déplacer jusqu'au repère où
je veux insérer mon texte. C'est un peu comme des bookmark je pense. Ca
ressemble aux signets de Word en fait. Le problème c'est que je ne sais
pas comment récupérer ces repères de texte avec Delphi. D'ailles est-ce
que ces repères correspondent bien à des TextCursor ?



@+
0
jfpetit Messages postés 5 Date d'inscription lundi 7 janvier 2013 Statut Membre Dernière intervention 7 janvier 2013
7 nov. 2006 à 11:30
Bonjour,
Moi aussi j'ai le même problème : mettre du texte sur des signets dans un document OppenOffice avec un programme Delphi.
Avez-vous résolu ce problème? Si oui je suis preneur.
Merci
0
jfpetit Messages postés 5 Date d'inscription lundi 7 janvier 2013 Statut Membre Dernière intervention 7 janvier 2013
8 nov. 2006 à 07:55
Bonjour,
Je viens de trouver la réponse. Voici l'adresse :
http://www.oooforum.org/forum/viewtopic.phtml?t=39444&highlight=delphi+openoffice
A+
0
jfpetit Messages postés 5 Date d'inscription lundi 7 janvier 2013 Statut Membre Dernière intervention 7 janvier 2013
8 nov. 2006 à 08:08
Bonjour,
Je viens de trouver la réponse. Voici l'adresse :
http://www.oooforum.org/forum/viewtopic.phtml?t=39444&highlight=delphi+openoffice
A+
0
phaysane3 Messages postés 2 Date d'inscription dimanche 19 décembre 2004 Statut Membre Dernière intervention 3 octobre 2007
3 oct. 2007 à 10:31
Bonjour,
Je souhaite faire la même chose que vous,
du publipostage avec open office et Delphi

Merci d'avance pour votre aide

Nicolas
0
jfpetit Messages postés 5 Date d'inscription lundi 7 janvier 2013 Statut Membre Dernière intervention 7 janvier 2013
4 oct. 2007 à 10:02
Bonjour Nicolas,

Je n'ai pas fait de publipostage avec OpenOffice et Delphi. Je n'ai fait que produire des documents .doc à partir de modèles .dot en les modifiant avec Delphi.
Si cela peut vous aider!

JFPETIT
0
beckerich Messages postés 302 Date d'inscription jeudi 29 septembre 2005 Statut Membre Dernière intervention 17 septembre 2013 2
13 avril 2009 à 18:20
salut à tous,

pour insérer du texte sur un signet d'un document openoffice swriter, un exemple de code en gras :

function NouveauMenuDuJour(d_datdeb, d_datfin: TDateTime): Variant;
var
  oo, doc, txt, bmk: Variant;
  s_template: string;
  d1,d2,m1,m2,y1,y2: word;
  d_prx: double;
begin
  Result := Unassigned;
  d_prx  := 0;

  CreeInstanceDeOO(oo, True);
  try
    with GO_DIC do
    begin
      cle := 'admin';
      code := 'repges';
      if Lire then
        s_template := Element[1] + Element[2];
    end;

    with GO_DIC do
    begin
      cle := 'admin';
      code := 'modèles';
      if Lire then
        s_template := s_template + Element[1];
    end;

    with GO_DIC do
    begin
      cle := 'admin';
      code := 'mod_mnujou';
      if Lire then
        s_template := s_template + Element[1];
    end;

    with GO_DIC do
    begin
      cle := 'admin';
      code := 'prx_mnudim';
      if Lire then
        d_prx := Valeur;
    end;

//    s_template := 'c:\millen_menu_du_jour.ott';
    CreerNouveauDocOO(doc, oo, CS_EDITEUR, s_template);

    { insertion des textes }
    txt := doc.Text;
    bmk := doc.Bookmarks.getByName('datmenjou').Anchor;
    DecodeDate(d_datdeb, y1,m1,d1);
    DecodeDate(d_datfin, y2,m2,d2);
    bmk.setString(Format('Menu du jour pour la semaine du %s au %s', [FormatDateTime('dd.mm', d_datdeb), FormatDateTime('dd.mm.yyyy', d_datfin)]));

    bmk := doc.Bookmarks.getByName('mercredi').Anchor;
    bmk.setString(FormatDateTime('dddd dd', d_datdeb));

    bmk := doc.Bookmarks.getByName('jeudi').Anchor;
    bmk.setString(FormatDateTime('dddd dd', d_datdeb+1));

    bmk := doc.Bookmarks.getByName('vendredi').Anchor;
    bmk.setString(FormatDateTime('dddd dd', d_datdeb+2));

    bmk := doc.Bookmarks.getByName('lundi').Anchor;
    bmk.setString(FormatDateTime('dddd dd', d_datfin));

    bmk := doc.Bookmarks.getByName('datmendim').Anchor;
    bmk.setString(Format('Menu du %s à %.2f € (servi uniquement le midi)', [FormatDateTime('dddd dd mmmm', d_datfin-1), d_prx]));

    Result := doc;
  finally
    DeconnecteDeOO(oo);
  end;
end;
0
Moi ça plante sur le ".Anchor" :

bmk := doc.Bookmarks.getByName('datmenjou').Anchor;

Erreur : "End of content node doesn't have the proper start code".

Même erreur avec un .getStart comme ici dans la 2ème ligne :

wCursor := wText.createTextCursorByRange(wViewCursor);
wText.insertTextContent(wCursor.getStart, fShape, false);

Quelqu'un aurait une idée ?
0
Rejoignez-nous