How to print a pdf document with mupdf?

MuPDF is a Viewer Application. For version 1.1 (this may change in the future), there is no printing function out of the box.


No, no undocumented printing function found, but maybe the other good way. If you by some chance do not like typing the name of your pdf to command line, you may configure your file manager to call a script that will print it for you. This is from my vimf config - vifmrc:

v1

com lp lp -dHLL2300D -P %a -ofit-to-page %c

If you need to know the page in mupdf, hit Shift+p a look carefully to upper left corner. Then select file in vifm (it is probably already selected, because you might have opened the pdf that way) and type e.g.

:lp 20-30

That might have been all, but I did version 2, because I needed something more custom.

com lp python3 /home/h/py/print.py %c
:nnoremap o :lp<cr>

and below is the script where I call lp on line ~13. The script is longer because I keep history of my prints.

/home/h/py/print.py

#!/usr/bin/env python3
import argparse
import subprocess
print()
with open('/home/h/py/printlog', 'r') as f:
    print(f.read())
    print('----')
parser = argparse.ArgumentParser()
parser.add_argument('file')
args = parser.parse_args()
print(args.file)
pages = input('print pages: ')
subprocess.run(['lp','-dHLL2300D', '-P', pages, '-ofit-to-page', args.file])
with open('/home/h/py/printlog', 'a') as f:
    f.write('\n')
    f.write(pages)
    f.write('\t')
    f.write(args.file)
input('press Return to return')

Now i just toggle mupdf and vifm with i3wm and hit 'o' for print, enter any range or pages and hit Return to print. If I want just a few more pages of some pdf that I started reading, I do not even open mupdf, I just hit 'o' on the file in vifm and specify the pages to print.

Tags:

Pdf