2010-02-28 16 views
4

Comment puis-je écrire/générer un fichier * .doc par programmation en utilisant c ou C++? Existe-t-il une bibliothèque (open source/cross platform) pour le faire? Si ce n'est pas possible, pouvez-vous écrire un fichier * .odt, puis le convertir en * .doc? Merci d'avance!Écrire un fichier * .doc ou * .rtf à partir d'une application c/C++

EDIT: Anders Abel a commenté que le type de fichier * .rtf est une option, donc toutes les suggestions sur celui-ci sont également acceptées.

+0

Veuillez noter que "* .doc" est un schéma de nommage plutôt incohérent. Le "*" est un caractère globbing qui signifie simplement "étendre à n'importe quel nom de fichier". Se référant aux types de fichiers par leurs noms ("document MSWord") est le plus clair, et si vous voulez abréger par extension, vous devez utiliser ".doc" au lieu de "* .doc" – Tomas

+1

@Tomas: Je dis un * .doc fichier et pas une extension .doc. Un fichier doit avoir un nom, *. –

Répondre

3

Joel a un article interesing sur ce sujet: http://www.joelonsoftware.com/items/2008/02/19.html

Fondamentalement, il suggère soit:

  1. Utiliser MS Word via COM pour créer le document.
  2. Générez un autre format que MS Word chargera, tel que RTF. RTF a l'avantage qu'il s'agit d'un format texte. Vous pouvez donc générer un document modèle avec des espaces réservés, puis exécuter une opération de substitution lorsque vous souhaitez générer vos documents.
+0

Merci, je vais prendre l'option 2. –

0

Le format .doc est, comme vous l'avez probablement remarqué, n'est pas ouvert. Une solution de contournement plus facile est souvent d'écrire un fichier .rtf, qui ouvre joliment dans MS Word. Le format .rtf est basé sur du texte et documenté publiquement. Tant que le contenu reste assez simple, écrire .rtf est simple.

+0

* .doc est maintenant un type de document ouvert. Mais vous n'avez pas donné d'exemples ou de suggestions sur * .rtf. –

1

Vous pouvez utiliser Word COM.

Here's un exemple de quelqu'un qui le fait en C++ mais il a l'air un peu désuet et je ne suis pas sûr de sa complétude. J'utilise généralement C# où il est vraiment facile d'ajouter simplement une référence à Microsoft.Office.Word Interop.

2
  1. Ou utiliser Microsoft Word Interop avec interface objet. Word doit être installé.
  2. Utilisez rtf pour des choses simples. Pour les choses compliquées, RTF échoue généralement ou devient gênant.
  3. Considérez docx. Microsoft a publié une boîte à outils pour travailler avec docx.
  4. Doc est ouvert, mais la spécification est écrite pour les extraterrestres. Vous pouvez essayer de le mâcher.
2

Écrire le fichier html à la place qui est un format de texte très simple. Choisissez le nom de l'extension de fichier en tant que DOC. MS Word s'ouvrira correctement.

+0

comment puis-je écrire en HTML, puis spécifier le nom de l'extension en c –