Function: pdf-view-mode
pdf-view-mode is an interactive and natively compiled function defined
in pdf-view.el.
Signature
(pdf-view-mode)
Documentation
Major mode in PDF buffers.
PDFView Mode is an Emacs PDF viewer. It displays PDF files as PNG images in Emacs buffers.
In addition to any hooks its parent mode special-mode might have
run, this mode runs the hook pdf-view-mode-hook, as the final or
penultimate step during initialization.
image-scroll-down
image-scroll-up
' pdf-view-jump-to-register
+ pdf-view-enlarge
- negative-argument
- pdf-view-shrink
0 digit-argument
0 pdf-view-scale-reset
1 digit-argument
2 digit-argument
3 digit-argument
4 digit-argument
5 digit-argument
6 digit-argument
7 digit-argument
8 digit-argument
9 digit-argument
< beginning-of-buffer
<down-mouse-1> pdf-view-mouse-set-region
<down> pdf-view-next-line-or-next-page
<keymap> C-<mouse-4> image-mouse-increase-size
<keymap> C-<mouse-5> image-mouse-decrease-size
<keymap> C-<wheel-down> image-mouse-decrease-size
<keymap> C-<wheel-up> image-mouse-increase-size
<keymap> i + image-increase-size
<keymap> i - image-decrease-size
<keymap> i c image-crop
<keymap> i o image-save
<keymap> i x image-cut
<left> image-backward-hscroll
<next> forward-page
<prior> backward-page
<right> image-forward-hscroll
<up> pdf-view-previous-line-or-previous-page
= pdf-view-enlarge
> end-of-buffer
? describe-mode
C-<down-mouse-1> pdf-view-mouse-extend-region
C-a image-bol
C-b image-backward-hscroll
C-c C-c doc-view-mode
C-c C-c image-toggle-display
C-c C-d pdf-view-dark-minor-mode(var)/pdf-view-dark-minor-mode(fun)
C-c C-r m pdf-view-midnight-minor-mode(var)/pdf-view-midnight-minor-mode(fun)
C-c C-r p pdf-view-printer-minor-mode(var)/pdf-view-printer-minor-mode(fun)
C-c C-r t pdf-view-themed-minor-mode(var)/pdf-view-themed-minor-mode(fun)
C-c C-x image-toggle-hex-display
C-c TAB pdf-view-extract-region-image
C-e image-eol
C-f image-forward-hscroll
C-n image-next-line
C-n pdf-view-next-line-or-next-page
C-n pdf-view-next-line-or-next-page
C-p image-previous-line
C-p pdf-view-previous-line-or-previous-page
C-p pdf-view-previous-line-or-previous-page
C-v image-scroll-up
C-v pdf-view-scroll-up-or-next-page
C-w pdf-view-kill-ring-save
C-x < image-scroll-left
C-x > image-scroll-right
C-x [ pdf-view-previous-page-command
C-x ] pdf-view-next-page-command
C-x h pdf-view-mark-whole-page
DEL image-scroll-down
DEL pdf-view-scroll-down-or-previous-page
DEL scroll-down-command
F image-goto-frame
H pdf-view-fit-height-to-window
M-< image-bob
M-< pdf-view-first-page
M-< pdf-view-first-page
M-<down-mouse-1> pdf-view-mouse-set-region-rectangle
M-> image-eob
M-> pdf-view-last-page
M-> pdf-view-last-page
M-g g pdf-view-goto-page
M-g l pdf-view-goto-label
M-v image-scroll-down
M-v pdf-view-scroll-down-or-previous-page
M-w pdf-view-kill-ring-save
P pdf-view-fit-page-to-window
Q kill-current-buffer
R pdf-view-rotate
RET image-next-line
RET image-toggle-animation
S-SPC image-scroll-down
S-SPC pdf-view-scroll-down-or-previous-page
S-SPC scroll-down-command
SPC image-scroll-up
SPC pdf-view-scroll-up-or-next-page
SPC scroll-up-command
SPC..~ undefined
W image-mode-wallpaper-set
W pdf-view-fit-width-to-window
a + image-increase-speed
a - image-decrease-speed
a 0 image-reset-speed
a r image-reverse-speed
b image-previous-frame
f image-next-frame
g revert-buffer
g revert-buffer
h describe-mode
m image-mode-mark-file
m pdf-view-position-to-register
n image-next-file
n pdf-view-next-page-command
p image-previous-file
p pdf-view-previous-page-command
q quit-window
s 0 image-transform-reset-to-initial
s b image-transform-fit-both
s b pdf-view-set-slice-from-bounding-box
s c pdf-view-set-slice-common-bounding-box
s f image-mode-fit-frame
s h image-transform-fit-to-height
s i image-transform-fit-to-width
s m image-transform-set-smoothing
s m pdf-view-set-slice-using-mouse
s o image-transform-reset-to-original
s p image-transform-set-percent
s r image-transform-set-rotation
s r pdf-view-reset-slice
s s image-transform-set-scale
s w image-transform-fit-to-window
u image-mode-unmark-file
w image-mode-copy-file-name-as-kill
Key Bindings
This command is not in any keymaps.
Source Code
;; Defined in /nix/store/63h5z2vmzn0mfavcxi2idi23g5xcgkbl-emacs-packages-deps/share/emacs/site-lisp/elpa/pdf-tools-20260102.1101/pdf-view.el
(define-derived-mode pdf-view-mode special-mode "PDFView"
"Major mode in PDF buffers.
PDFView Mode is an Emacs PDF viewer. It displays PDF files as
PNG images in Emacs buffers."
:group 'pdf-view
:abbrev-table nil
:syntax-table nil
;; Setup a local copy for remote files.
(when (and (or jka-compr-really-do-compress
(let ((file-name-handler-alist nil))
(not (and buffer-file-name
(file-readable-p buffer-file-name)))))
(pdf-tools-pdf-buffer-p))
(let ((tempfile (pdf-util-make-temp-file)))
(write-region nil nil tempfile nil 'no-message)
(setq-local pdf-view--buffer-file-name tempfile)))
;; Decryption needs to be done before any other function calls into
;; pdf-info.el (e.g. from the mode-line during redisplay during
;; waiting for process output).
(pdf-view-decrypt-document)
;; Setup scroll functions
(if (boundp 'mwheel-scroll-up-function) ; not --without-x build
(setq-local mwheel-scroll-up-function
#'pdf-view-scroll-up-or-next-page))
(if (boundp 'mwheel-scroll-down-function)
(setq-local mwheel-scroll-down-function
#'pdf-view-scroll-down-or-previous-page))
(if (boundp 'mwheel-scroll-left-function)
(setq-local mwheel-scroll-left-function
#'image-scroll-left))
(if (boundp 'mwheel-scroll-right-function)
(setq-local mwheel-scroll-right-function
#'image-scroll-right))
;; Disable pixel-scroll-precision-mode locally if enabled
(if (bound-and-true-p pixel-scroll-precision-mode)
(set (make-local-variable 'pixel-scroll-precision-mode) nil))
(if (boundp 'mwheel-coalesce-scroll-events)
(setq-local mwheel-coalesce-scroll-events t))
;; If the Emacs theme is dark, add `pdf-view-dark-minor-mode' to the
;; list of `pdf-tools-enabled-modes'. See an interesting discussion
;; at: https://github.com/vedang/pdf-tools/issues/166 about how this
;; avoids a segfault crash in MacOS Ventura. IF you know why this
;; happens, please get in touch via the linked issue.
(when (eq 'dark (frame-parameter nil 'background-mode))
(add-to-list 'pdf-tools-enabled-modes 'pdf-view-dark-minor-mode))
;; Clearing overlays
(add-hook 'change-major-mode-hook
(lambda ()
(remove-overlays (point-min) (point-max) 'pdf-view t))
nil t)
(remove-overlays (point-min) (point-max) 'pdf-view t) ;Just in case.
;; Setup other local variables.
(setq-local mode-line-position
'(" " pdf-view-mode-line-position-prefix
;; Show page label when enabled and available,
;; otherwise show numeric page. Guard against errors.
(:eval
(or (and pdf-view-mode-line-position-use-labels
(ignore-errors (pdf-view-current-pagelabel)))
(number-to-string (pdf-view-current-page))))
;; Avoid errors during redisplay.
"/" (:eval (or (ignore-errors
(number-to-string (pdf-cache-number-of-pages)))
"???"))))
(setq-local auto-hscroll-mode nil)
(setq-local pdf-view--server-file-name (pdf-view-buffer-file-name))
;; High values of scroll-conservatively seem to trigger
;; some display bug in xdisp.c:try_scrolling .
(setq-local scroll-conservatively 0)
(setq-local cursor-type nil)
(setq-local buffer-read-only t)
(setq-local view-read-only nil)
(setq-local bookmark-make-record-function
'pdf-view-bookmark-make-record)
(setq-local revert-buffer-function #'pdf-view-revert-buffer)
;; No auto-save at the moment.
(setq-local buffer-auto-save-file-name nil)
;; Disable image rescaling.
(when (boundp 'image-scaling-factor)
(setq-local image-scaling-factor 1))
;; No undo at the moment.
(unless buffer-undo-list
(buffer-disable-undo))
;; Enable transient-mark-mode, so region deactivation when quitting
;; will work.
(setq-local transient-mark-mode t)
(add-hook 'window-configuration-change-hook
'pdf-view-redisplay-some-windows nil t)
(add-hook 'deactivate-mark-hook 'pdf-view-deactivate-region nil t)
(add-hook 'write-contents-functions
'pdf-view--write-contents-function nil t)
(add-hook 'kill-buffer-hook 'pdf-view-close-document nil t)
(pdf-view-add-hotspot-function
'pdf-view-text-regions-hotspots-function -9)
;; Keep track of display info
(add-hook 'image-mode-new-window-functions
'pdf-view-new-window-function nil t)
(image-mode-setup-winprops)
;; Issue a warning in the future about incompatible modes.
(run-with-timer 1 nil (lambda (buffer)
(when (buffer-live-p buffer)
(pdf-view-check-incompatible-modes buffer)))
(current-buffer)))