повернуть документ в режиме emacs doc-view-mode - PullRequest
6 голосов
/ 21 апреля 2010

У меня есть документ, отображаемый в буфере просмотра документов. Однако документ повернут на 90 градусов влево. Могу ли я повернуть документ в emacs doc-view?

1 Ответ

11 голосов
/ 21 апреля 2010

У меня тоже было это требование. К сожалению, doc-view не обеспечивает эту функцию.

Также код изображения, используемый emacs, не может вращать изображения. Поэтому я создал функцию, которая использует ImageMagick для преобразования файлов png, хранящихся в каталоге кеша, и повторного отображения текущей страницы:

(defun doc-view-rotate-current-page ()
  "Rotate the current page by 90 degrees.  Requires ImageMagick installation"
  (interactive)
  (when (eq major-mode 'doc-view-mode)
    ;; we are assuming current doc-view internals about cache-names
    (let ((file-name (expand-file-name (format "page-%d.png" (doc-view-current-page)) (doc-view--current-cache-dir))))
      ;; assume imagemagick is installed and rotate file in-place and redisplay buffer
      (call-process-shell-command "convert" nil nil nil "-rotate" "90" (concat "\"" file-name "\"") (concat "\"" file-name "\""))
      (clear-image-cache)
      (doc-view-goto-page (doc-view-current-page))))))
...