Function: doc-view-convert-current-doc
doc-view-convert-current-doc is a byte-compiled function defined in
doc-view.el.gz.
Signature
(doc-view-convert-current-doc)
Documentation
Convert doc-view--buffer-file-name to a set of png files, one file per page.
Those files are saved in the directory given by the function
doc-view--current-cache-dir(var)/doc-view--current-cache-dir(fun).
Source Code
;; Defined in /usr/src/emacs/lisp/doc-view.el.gz
(defun doc-view-convert-current-doc ()
"Convert `doc-view--buffer-file-name' to a set of png files, one file per page.
Those files are saved in the directory given by the function
`doc-view--current-cache-dir'."
;; Let stale files still display while we recompute the new ones, so only
;; flush the cache when the conversion is over. One of the reasons why it
;; is important to keep displaying the stale page is so that revert-buffer
;; preserves the horizontal/vertical scroll settings (which are otherwise
;; reset during the redisplay).
(setq doc-view--pending-cache-flush t)
(let ((png-file (expand-file-name
(format doc-view--image-file-pattern "%d")
(doc-view--current-cache-dir))))
(make-directory (doc-view--current-cache-dir) t)
(pcase doc-view-doc-type
('dvi
;; DVI files have to be converted to PDF before Ghostscript can process
;; it.
(let ((pdf (doc-view-current-cache-doc-pdf)))
(doc-view-dvi->pdf doc-view--buffer-file-name pdf
(lambda () (doc-view-pdf/ps->png pdf png-file)))))
('odf
;; ODF files have to be converted to PDF before Ghostscript can
;; process it.
(let ((pdf (doc-view-current-cache-doc-pdf))
(opdf (expand-file-name
(concat (file-name-base doc-view--buffer-file-name)
".pdf")
doc-view--current-cache-dir))
(png-file png-file))
;; The unoconv tool only supports an output directory, but no
;; file name. It's named like the input file with the
;; extension replaced by pdf.
(funcall doc-view-odf->pdf-converter-function doc-view--buffer-file-name
(lambda ()
;; Rename to doc.pdf
(rename-file opdf pdf)
(doc-view-pdf/ps->png pdf png-file)))))
;; The doc-view-mode-p check ensures that epub, cbz, fb2 and
;; (o)xps are handled with mutool
((or 'pdf 'djvu 'epub 'cbz 'fb2 'xps 'oxps)
(let ((pages (doc-view-active-pages)))
;; Convert doc to bitmap images starting with the active pages.
(doc-view-document->bitmap doc-view--buffer-file-name png-file pages)))
(_
;; Convert to PNG images.
(doc-view-pdf/ps->png doc-view--buffer-file-name png-file)))))