Skip to main content

NeoView PDF viewer with rectangular crop/measure tool

Project description

NeoView

NeoView is a production-quality PDF viewer with a rectangular crop/measure tool for Linux and Windows.

NeoView is designed as a practical alternative to SumatraPDF for Linux users, while adding features useful for technical and LaTeX workflows. Key advantages:

  • Auto-reload: automatically refreshes PDFs when LaTeX rebuilds, so you don't have to close/reopen the viewer.
  • Measurement tools: precise rectangle measurement with units in pt/mm for layout and proofreading.
  • Export selections: save regions as PNG at multiple DPI values.

Features

  • PDF Viewing: Open and navigate multi-page PDFs
  • Zoom: Pinch gestures, Ctrl+wheel, Fit Width, Actual Size
  • Selection Tool: Click+drag to create measurement rectangle
  • Precise Adjustment: Drag edges/corners to resize, keyboard nudges
  • Measurements: Live display in points, picas, and millimeters
  • Export: Save selection as PNG at 150/300/600 DPI
  • Auto-reload: Watch file for external changes
  • Container-ready: Works with Wayland or X11 forwarding

Requirements

  • Python 3.10+
  • PySide6
  • PyMuPDF

Installation

pip install neoview

Downloads

Prebuilt Windows executable releases are available from the GitHub Releases page for this project. Each tagged release will include a neoview.exe download.

Install from source (launchable)

pip install .

This installs a neoview launcher. Run it to open the app, then use File → Open to choose a PDF.

Optional desktop launcher (Linux):

./install_desktop.sh

Windows notes

If you run on Windows, install with:

py -m pip install neoview

Launch:

neoview

Windows .exe build (optional)

If you want a standalone executable on Windows:

py -m pip install .[dev]
pyinstaller neoview.spec

The executable will be at dist\\neoview.exe.

Usage

Direct Run

# Open with file dialog
python pdf_crop_measure.py

# Open specific PDF
python pdf_crop_measure.py /path/to/document.pdf

Installed App

# Open the app
neoview

# Open specific PDF
neoview /path/to/document.pdf

Module Run

python -m neoview

Container Run

Build:

docker build -t pdf-measure .

Wayland (GNOME Wayland - preferred):

docker run -it --rm \
  -e XDG_RUNTIME_DIR=/run/user/$(id -u) \
  -e WAYLAND_DISPLAY=$WAYLAND_DISPLAY \
  -e QT_QPA_PLATFORM=wayland \
  -v $XDG_RUNTIME_DIR/$WAYLAND_DISPLAY:/run/user/$(id -u)/$WAYLAND_DISPLAY \
  -v /path/to/pdfs:/pdfs \
  pdf-measure /pdfs/document.pdf

X11 (fallback, most compatible):

xhost +local:docker
docker run -it --rm \
  -e DISPLAY=$DISPLAY \
  -e QT_QPA_PLATFORM=xcb \
  -v /tmp/.X11-unix:/tmp/.X11-unix \
  -v /path/to/pdfs:/pdfs \
  pdf-measure /pdfs/document.pdf

Keyboard Shortcuts

Shortcut Action
Ctrl+O Open PDF file
Ctrl+Q Exit application
Ctrl+C Copy measurements to clipboard
Ctrl+S Export selection as PNG
PgUp / PgDn Previous / Next page
Ctrl+Wheel Zoom in/out
W Fit to width
1 Actual size (100%)
Arrow Move selection by 1 pt
Shift+Arrow Move selection by 10 pt
Ctrl+Arrow Resize selection by 1 pt
Ctrl+Shift+Arrow Resize selection by 10 pt
Escape Clear selection

Selection Tool

  1. Create: Click and drag on the PDF page
  2. Move: Drag inside the selection
  3. Resize: Drag edges or corners
  4. Fine-tune: Use arrow keys with modifiers
  5. Measure: See live measurements in status bar

All measurements are in PDF coordinate space (points) and remain accurate at any zoom level.

Export

  1. Create a selection
  2. Press Ctrl+S or click Export button
  3. Choose DPI (150/300/600)
  4. Save as PNG

Auto-reload

Enable "Auto-reload on file change" in Options menu to automatically refresh when the PDF is modified externally. Selection and page position are preserved.

License

MIT

Development

python3 -m pip install -e .[dev]
pytest

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

neoview-0.1.9.tar.gz (87.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

neoview-0.1.9-py3-none-any.whl (79.0 kB view details)

Uploaded Python 3

File details

Details for the file neoview-0.1.9.tar.gz.

File metadata

  • Download URL: neoview-0.1.9.tar.gz
  • Upload date:
  • Size: 87.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.12

File hashes

Hashes for neoview-0.1.9.tar.gz
Algorithm Hash digest
SHA256 c4367b3825306fc550800ff92665831295979cd89a917a7dac71d8d4bfad266e
MD5 186ce16b7459005d1f2c1b07d303c440
BLAKE2b-256 0fba2239f5c6559a0648cb68eae4f41c6865a599a7c442f91a0ae87f558957d7

See more details on using hashes here.

File details

Details for the file neoview-0.1.9-py3-none-any.whl.

File metadata

  • Download URL: neoview-0.1.9-py3-none-any.whl
  • Upload date:
  • Size: 79.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.12

File hashes

Hashes for neoview-0.1.9-py3-none-any.whl
Algorithm Hash digest
SHA256 f5ff21567ad664aa20cc23897511759df84a086ae217b36c31dca3bec6e4cbe5
MD5 16f0980d86a9682c3695960037da2645
BLAKE2b-256 59578e2d0e1977adf87d4db55ad60f0385afe8ed938f93d547bb241a3c57c32f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page