Hi Brian, Thanks so much for this, it has done exactly what I was after!
Kind regards Bart Brian Sniffen <[email protected]> writes: > Sure! Here's what I use for docx, and I think it could be adapted to > pdf with pdftotext or whatever you're already using there. You need a > small shell script that reads from STDIN, writes to a file, and calls > pandoc or pdftotext or whatever, like ~/bin/antiwordx: > > #!/bin/sh > > tmpfile=$(mktemp /tmp/antiwordx.XXXXXX.docx) > trap 'rm -f -- "$tmpfile"' INT TERM HUP EXIT > cat > "$tmpfile" > pandoc --normalize -r docx -w markdown "$tmpfile" > > You need a small handler function to call it from Elisp---see attached > file `inline-docx.el`, which assumed you have both the old `antiword` > for old-style .doc files and pandoc for new-style `docx`. > > I apologize for the roughness of the code; it should probably use > customizable paths for pandoc and such. > > -Brian > > > (defun mm-inline-msword (handle) > > (let (text) > > (with-temp-buffer > > (mm-insert-part handle) > > (call-process-region (point-min) (point-max) "antiword" t t nil "-") > > (setq text (buffer-string))) > > (mm-insert-inline handle text))) > > > > (defun mm-inline-docx (handle) > "pandoc --normalize -r docx -w markdown %s" > (let (text) > > (with-temp-buffer > > (mm-insert-part handle) > > (let ((coding-system-for-read 'utf-8)) > (call-process-region (point-min) (point-max) "/Users/bts/bin/antiwordx" > t t nil)) > (setq text (buffer-string))) > > (mm-insert-inline handle text))) > > > (setq my-inline-mime-tests > '(("text/rtf" mm-inline-rtf > (lambda > (handle) > (let > ((name > (mail-content-type-get > (mm-handle-disposition handle) > 'filename))) > (and name > (equal ".rtf" > (substring name -4 nil)))))) > ("application/x-msword" mm-inline-docx > (lambda > (handle) > (let > ((name > (mail-content-type-get > (mm-handle-disposition handle) > 'filename))) > (and name > (equal ".docx" > (substring name -5 nil)))))) > ("application/x-msword" mm-inline-msword > (lambda > (handle) > (let > ((name > (mail-content-type-get > (mm-handle-disposition handle) > 'filename))) > (and name > (equal ".doc" > (substring name -4 nil)))))) > > ("application/vnd.openxmlformats-officedocument.wordprocessingml.document" > mm-inline-docx identity) > ("application/octet-stream" mm-inline-docx > (lambda > (handle) > (let > ((name > (mail-content-type-get > (mm-handle-disposition handle) > 'filename))) > (and name > (equal ".docx" > (substring name -5 nil)))))) > ("application/octet-stream" mm-inline-msword > (lambda > (handle) > (let > ((name > (mail-content-type-get > (mm-handle-disposition handle) > 'filename))) > (and name > (equal ".doc" > (substring name -4 nil)))))) > ("application/msword" mm-inline-msword identity))) > > (mapcar (lambda (x) (add-to-list 'mm-inlined-types (car x))) > my-inline-mime-tests) > > (mapcar (lambda (x) (add-to-list 'mm-inline-media-tests x)) > my-inline-mime-tests) > > > Bart Bunting <[email protected]> writes: > >> Hi, >> >> Just looking for some pointers. >> >> I have to deal with quite a few emails with attachments in either pdf or >> word format. >> >> I'm on a mac so can use applescript or something pdftotext or similar to >> convert them to text. >> >> I'm blind so use emacspeak as my primary interface. Having an easy way >> to convert the notmuch attachments to text other than saving to a file >> and processing them would greatly speed up my workflow. >> >> Is there something in existance already to do this sort of thing? >> >> I have a little rudimentary lisp skill so can hack something up if >> someone can give me some pointers on a direction to head in. >> >> Any advice appreciated. >> >> Kind regards >> >> Bart >> >> Kind regards >> Bart >> -- >> >> Bart Bunting - URSYS >> PH: 02 87452811 >> Mbl: 0409560005 >> _______________________________________________ >> notmuch mailing list >> [email protected] >> https://notmuchmail.org/mailman/listinfo/notmuch Bart -- Bart Bunting - URSYS PH: 02 87452811 Mbl: 0409560005 _______________________________________________ notmuch mailing list [email protected] https://notmuchmail.org/mailman/listinfo/notmuch
