Bonjour, savez-vous comment je peux générer un fichier word via une application C: insérrer du texte, insérer des bouts de fichiers d'un autre fichier word...
Merci.
Version imprimable
Bonjour, savez-vous comment je peux générer un fichier word via une application C: insérrer du texte, insérer des bouts de fichiers d'un autre fichier word...
Merci.
Le format .doc est privé et hyper tordu... Tu ne préfères pas utiliser un format ouvert comme odt, utiliser OpenOffice et laisser tomber Microsoft ?
Si tu y tiens, il doit y avoir dans l'API win32 des moyens de créer un fichier .doc avec une fonction à 3000 paramètres... MSDN est ton amie, bon courage...
Tu peux générer un fichier Word par COM/OLE si Word est installé, mais en C c'est plutôt compliqué...
Surtout si ton environnement de développement n'est pas Visual...
Non, on peut créer un Compound Document avec les API mais on est loin d'un fichier Word. Les apis ne permettent pas d'en faire il faut avoir piloter Word pour le faire (ou alors connaître précisément le format ...)
Je dirais même que c'est impossible ...
Non, ce n'est pas impossible tant que tu as OLEVIEW et MIDL (ou un outil équivalent à ces deux-là) sous la main.
Le problème, c'est que je ne sais pas ce que propose MinGW de ce côté-là...
Ben quoi?
Y'a rien de compliqué ensuite si on n'utilise pas bêtement le late binding alors qu'on a droit à un langage compilé et que Office expose des interfaces duales...
En fait, le problème majeur n'est pas d'utiliser les interfaces en C, mais d'obtenir le .h qui les déclare.
Typiquement, pour le C et le C++, il y a deux sortes de déclarations d'interfaces COM:
- Celles qu'on tape à la main, C/C++-only, notamment certaines interfaces du shell: Leur déclaration est lourde de macros et commence par DECLARE_INTERFACE().
- Exemples: IExtractIcon et IActiveDesktop.
- Celles générées par MIDL.EXE à partir d'un fichier IDL.
- Exemples: toutes celles des fichiers unknwn.h, wtypes.h, oaidl.h, objidl.h, etc.
- Le C++ ajoute les déclarations du Compiler COM Support, générées directement à partir d'une bibliothèque de types (.tlb, .olb, ou embarquée dans une DLL). Utilisent la directive #import.
Le problème de beaucoup d'applications (y compris Office), c'est qu'elles livrent directement une bibliothèque de types, sans fichier d'en-tête. Le programmeur C se trouve alors réduit à utiliser OLEVIEW pour reconstituer l'IDL, puis MIDL pour générer le fichier d'en-tête. Ces outils sont distribués avec Visual, mais j'ignore s'ils sont disponibles autrement.