← [[doom-module-index:][Back to module index]] ! [[doom-module-issues:::tools pdf][Issues]] ↖ [[doom-repo:tree/develop/modules/tools/pdf/][Github]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]] -------------------------------------------------------------------------------- #+TITLE: :tools pdf #+SUBTITLE: Emacs, your next PDF reader #+CREATED: February 06, 2018 #+SINCE: 21.12.0 * Description :unfold: This module improves support for reading and interacting with PDF files in Emacs. It uses [[doom-package:][pdf-tools]], which is a replacement for the built-in ~doc-view-mode~ for PDF files. The key difference being pages are not pre-rendered, but instead rendered on-demand and stored in memory; a much faster approach, especially for larger PDFs. Displaying PDF files is just one function of [[doom-package:][pdf-tools]]. See [[https://github.com/politza/pdf-tools][its project website]] for details and videos. ** Maintainers /This module has no dedicated maintainers./ [[doom-contrib-maintainer:][Become a maintainer?]] ** Module flags /This module has no flags./ ** Packages - [[doom-package:][pdf-tools]] - [[doom-package:][saveplace-pdf-view]] ** TODO Hacks #+begin_quote 🔨 This module's hacks haven't been documented yet. [[doom-contrib-module:][Document them?]] #+end_quote ** TODO Changelog # This section will be machine generated. Don't edit it by hand. /This module does not have a changelog yet./ * Installation [[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]] This module requires =epdfinfo=, a program the the [[doom-package:][pdf-tools]] plugin will build automatically when you open your first pdf file, unless you're on Windows. Windows users must build it themselves. You can (re)build =epdfinfo= yourself with ~M-x pdf-tools-install~. ** Building =epdfinfo= on Windows 1. [[https://www.msys2.org/][Install MSYS2]] and update the package database and core packages using the instructions provided. 2. Update and install dependencies, skipping any you already have: #+begin_src sh pacman -Syu pacman -S base-devel pacman -S mingw-w64-x86_64-toolchain pacman -S mingw-w64-x86_64-zlib pacman -S mingw-w64-x86_64-libpng pacman -S mingw-w64-x86_64-poppler pacman -S mingw-w64-x86_64-imagemagick #+end_src 3. Install PDF tools in Emacs, but do not try to compile the server. Instead, get a separate copy of the source somewhere else: #+begin_src sh git clone https://github.com/politza/pdf-tools #+end_src 4. Open mingw64 shell (Note: You must use mingw64.exe and not msys2.exe) 5. Compile pdf-tools: #+begin_src sh # Cask requires python2 (important: not 3!) pacman -S python2 # Make the mingw-shell aware of your python installation. Adjust the path if # Emacs is installed elsewhere! export PATH="/c/Program Files (x86)/Emacs/bin/:$PATH" # Cask needs to know where git.exe is; change this path if git is installed # elsewhere! export PATH="/c/Program Files/Git/bin:$PATH" # Install cask. Certificate errors can be ignored with (unsafe) -k option. curl -fsSL https://raw.githubusercontent.com/cask/cask/master/go | python # Make sure the build process can see cask export PATH="$HOME/.cask/bin:$PATH" cd /path/to/pdf-tools make -s #+end_src 6. This should produce a file =server/epdfinfo.exe=. Copy this file into the =$HOME/.emacs.d/.local/straight/build/pdf-tools/=. 7. Start Emacs. 8. Open a pdf file (or run ~M-x pdf-tools-install~) 9. Test it out: ~M-x pdf-info-check-epdfinfo~ * TODO Usage #+begin_quote 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * TODO Configuration #+begin_quote 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]] #+end_quote * Troubleshooting /There are no known problems with this module./ [[doom-report:][Report one?]] * Frequently asked questions /This module has no FAQs yet./ [[doom-suggest-faq:][Ask one?]] * TODO Appendix #+begin_quote 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]] #+end_quote