93 votes

Comment convertir des fichiers doc/docx en markdown ou en texte structuré ?

Existe-t-il un programme ou un flux de travail pour convertir .doc o .docx vers Markdown ou un texte similaire ?

PS : Idéalement, j'apprécierais de pouvoir choisir une police spécifique (par exemple consolas ) dans le document MS Word sera rendu en format text-code: ```....``` .

109voto

massives Points 1289

Pandoc prend en charge la conversion directe de docx en markdown :

pandoc -f docx -t markdown foo.docx -o foo.markdown

Plusieurs formats markdown sont pris en charge :

-t gfm (GitHub-Flavored Markdown)  
-t markdown_mmd (MultiMarkdown)  
-t markdown (pandoc’s extended Markdown)  
-t markdown_strict (original unextended Markdown)  
-t markdown_phpextra (PHP Markdown Extra)  
-t commonmark (CommonMark Markdown)

21voto

Peter Barganski Points 41

docx -> markdown

En ce qui concerne spécifiquement la question ( docx --> markdown ), utilisez le Writeage pour Microsoft Word. Il fonctionne également dans l'autre sens markdown --> docx .

Plus d'options

  1. Utilisez un outil de conversion pour la conversion de plusieurs fichiers.
  2. Utilisez un éditeur WYSIWYG pour les fichiers uniques et les polices supérieures.

Quels outils de conversion ?

J'ai testé ces trois-là : (1) Pandoc (2) Mammoth (3) w2m

Pandoc

C'est de loin l'outil le plus performant pour les conversions, avec la prise en charge d'une multitude de types de fichiers (voir le site de Pandoc). man page pour les types de fichiers pris en charge) :

pandoc -f docx -t gfm somedoc.docx -o somedoc.md
NB
  • Pour obtenir pandoc d'exporter tableaux de démarque ('pipe_tables' dans pandoc) use multimarkdown o gfm formats de sortie.

  • Si le formatage en PDF, pandoc utilise LaTeX pour cela, vous devrez peut-être installer les modèles de LaTeX pour votre système d'exploitation si cette commande ne fonctionne pas. Instructions à Installation de LaTeX

Quels éditeurs WYSIWYG ?

Pour docx utiliser Writeage .

Maintenir des polices de qualité supérieure

Si vous souhaitez préserver caractères unicodes , emojis et maintenir des polices de qualité supérieure, vous obtiendrez un certain rendement des éditeurs ci-dessous en utilisant copier-coller les opérations entre les formats de fichiers. Notez que ceux-ci ne lisent ou n'écrivent pas nativement dans les formats suivants docx .

Équivalent programmatique

Pour un équivalent programmatique, vous pourriez obtenir certains résultats en appelant une autre version de pdf-engine et leurs options respectives, mais je ne l'ai pas testé. Le pandoc utilise par défaut 'pdflatex'.

pandoc --pdf-engine=
pandoc --pdf-engine-opt=STRING

Mise à jour : A4 vs US Letter

Pour l'extérieur des États-Unis, réglez le géométrie variable :

pandoc -s -V geometry:a4paper -o outfile.pdf infile.md

Note de bas de page

Il convient de mentionner ici que ce qui n'est pas évident lorsqu'on découvre le format Markdown est que MultiMarkdown est de loin le format markdown le plus riche en fonctionnalités.

MultiMarkdown prend en charge, entre autres, les métadonnées, les tables des matières, les notes de bas de page, les mathématiques, les tableaux et YAML.

Mais le format par défaut de Github utilise gfm qui prend également en charge les tableaux. J'utilise gfm pour Github/GitLab et MultiMarkdown pour tout le reste.

12voto

Tony O'Hagan Points 1330

Étant donné que vous avez posé cette question sur stackoverflow, vous souhaitez probablement une solution programmatique ou en ligne de commande, pour laquelle j'ai inclus une autre réponse.

Toutefois, une solution alternative pourrait consister à utiliser la fonction Plugin Writage Markdown pour Microsoft Word.

Writage transforme Word en éditeur WYSIWYG de Markdown. Vous pourrez donc ouvrir un fichier Markdown et le modifier comme vous le faites normalement avec n'importe quel document dans Microsoft Word. Il sera également possible d'enregistrer votre document Word en tant que fichier Markdown sans avoir recours à d'autres convertisseurs.

Sous la couverture, Writage utilise Pandoc que vous devrez également installer pour que ce plugin fonctionne.

Il prend actuellement en charge les éléments Markdown suivants :

  • Rubriques
  • Listes (numérotées et à puces)
  • Liens
  • Styles de police tels que gras, italique
  • Tableaux
  • Notes de bas de page

C'est peut-être la solution idéale pour de nombreux utilisateurs finaux, car ils n'auront pas besoin d'installer ou d'exécuter des outils en ligne de commande, mais plutôt de s'en tenir à ce qu'ils connaissent le mieux.

11voto

Tony O'Hagan Points 1330

Mammouth est surtout connu comme un convertisseur de Word en HTML, mais il prend désormais en charge une Rédacteur Markdown module. La dernière fois que j'ai vérifié, la prise en charge de Mammoth Markdown en était encore à ses débuts, il se peut donc que certaines fonctionnalités ne soient pas prises en charge. Comme d'habitude ... consultez le site web pour les derniers détails.

Instale

Pour utiliser la version Javascript ... installez NodeJS et ensuite installer Mammoth :

npm install -g mammoth

Ligne de commande

Ligne de commande pour convertir un document Word en format Markdown ...

mammoth document.docx --output-format=markdown

API

API NodeJS pour convertir en Markdown ...

var mammoth = require("mammoth");
mammoth.convertToMarkdown({path: "path/to/document.docx"});

Caractéristiques :

Mammoth Markdown writer supporte actuellement :

  • Listes (numérotées et à puces)
  • Liens
  • Styles de police tels que gras, italique
  • Images

Les outils de la ligne de commande et l'API de Mammoth ont été portés sur le site de la Commission européenne. plusieurs langues :

Avec NO Markdown (mai 2016) :

Avec Markdown :

8voto

Vous pouvez utiliser De Word à Markdown (Ruby Gem) pour le convertir en une seule étape. La conversion peut être aussi simple que :

$ gem install word-to-markdown
$ w2m path/to/document.docx

Il achemine le document via LibreOffice, mais fait également de son mieux pour sémantiser les titres en fonction de leur taille de police relative.

Il y a aussi une version hébergée qui serait aussi simple qu'un glisser-déposer pour convertir.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X