JC-
JC-

Reputation: 1290

Pandoc convert docx to markdown with embedded images

When converting .docx file to markdown, the embedded image is not extracted from the docx archive, yet the output contains ![](media/image1.png){width="6.291666666666667in" height="3.1083333333333334in"}

Is there a parameter that needs to be set in order to get the embedded pictures extracted?

Upvotes: 76

Views: 55765

Answers (3)

Yanhui Xie
Yanhui Xie

Reputation: 21

You may try "--embed-resources".
https://pandoc.org/MANUAL.html#option--embed-resources[

Blockquote --embed-resources[=true|false] Produce a standalone HTML file with no external dependencies, using data: URIs to incorporate the contents of linked scripts, stylesheets, images, and videos. The resulting file should be “self-contained,” in the sense that it needs no external files and no net access to be displayed properly by a browser. This option works only with HTML output formats, including html4, html5, html+lhs, html5+lhs, s5, slidy, slideous, dzslides, and revealjs. Scripts, images, and stylesheets at absolute URLs will be downloaded; those at relative URLs will be sought relative to the working directory (if the first source file is local) or relative to the base URL (if the first source file is remote). Elements with the attribute data-external="1" will be left alone; the documents they link to will not be incorporated in the document. Limitation: resources that are loaded dynamically through JavaScript cannot be incorporated; as a result, fonts may be missing when --mathjax is used, and some advanced features (e.g. zoom or speaker notes) may not work in an offline “self-contained” reveal.js slide show.

Upvotes: 1

mb21
mb21

Reputation: 39189

pandoc --extract-media ./myMediaFolder input.docx -o output.md

From the manual:

--extract-media=DIR Extract images and other media contained in or linked from the source document to the path DIR, creating it if necessary, and adjust the images references in the document so they point to the extracted files. Media are downloaded, read from the file system, or extracted from a binary container (e.g. docx), as needed. The original file paths are used if they are relative paths not containing ... Otherwise filenames are constructed from the SHA1 hash of the contents.

Upvotes: 134

sgrubsmyon
sgrubsmyon

Reputation: 1229

Referring to the comment by gridtrak and the problem of an unnecessarily deep directory strucutre (e.g. media/media/image2.jpeg), use the current directory as path DIR, then a folder media is created within the current directory (e.g. media/image2.jpeg):

pandoc --extract-media=. input.docx -o output.md

Upvotes: 33

Related Questions