[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Showing pdf files with doc-view. Possible?

From: Vagn Johansen
Subject: Re: Showing pdf files with doc-view. Possible?
Date: Thu, 22 Apr 2010 19:13:40 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1.91 (gnu/linux)

Tassilo Horn <> writes:

> Vagn Johansen <> writes:
> Hi Vagn,
>> Does anyone know if it is possible to use doc-view(*) mode with gnus?
> I know that! ;-)
> It's not possible to inline the PDF images, but as a workaround you
> could write your own command that saves the pdf part in a temp file and
> opens that with emacs.
> This is not tested, but might work:
> (defun th-gnus-mime-view-internally ()
>   (interactive)
>   (gnus-article-check-buffer)
>   (let ((data (get-text-property (point) 'gnus-data)))
>     (when data
>       (let ((f (make-temp-file "mime-part" nil ".pdf")))
>         (mm-save-part-to-file data f)
>         (find-file f)))))

Cool. It works!

> Bind it to some nice key in `gnus-article-mode-map' and have fun.

I prefer "doing stuff" to attachments via the K prefix in

Here are my improvements and generalisations to your code (with some
inspiration from gnus-sum.el and gnus-art.el).


  (define-key gnus-summary-mode-map [?K ?f]


(defun gnus-mime-view-part-via-find-file (&optional handle)
  (let ((handle (or handle  (get-text-property (point) 'gnus-data))))
    (when handle
      (let* ((gnus-data (mm-handle-type (get-text-property (point)
              (ext (file-name-extension
                     (or (mail-content-type-get gnus-data 'name)
              (suffix (concat "." ext ))
              (f (make-temp-file "mime-part" nil suffix)))
        (mm-save-part-to-file handle f)
        (find-file f)))))

(defun gnus-article-view-part-via-find-file (n)
  "View MIME part N via find-file, which is the numerical prefix."
  (interactive "P")
  (gnus-article-part-wrapper n 'gnus-mime-view-part-via-find-file))

Vagn Johansen
Evalesco A/S

reply via email to

[Prev in Thread] Current Thread [Next in Thread]