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.5.tar.gz (50.4 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.5-py3-none-any.whl (45.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: neoview-0.1.5.tar.gz
  • Upload date:
  • Size: 50.4 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.5.tar.gz
Algorithm Hash digest
SHA256 12d179966732b9e744b8339370d77f4576040f159337f4c17939f26a6f36ee86
MD5 18695970f8998fcbcfb4e051829ac2c7
BLAKE2b-256 758af81d340d1feb3812fba0a30ea70fb36b1a4b8a72db4aca3ef30fa0f140f3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: neoview-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 45.4 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.5-py3-none-any.whl
Algorithm Hash digest
SHA256 adcd5d3d7372eb76fc7431f97d953b5829726748736ef5db06ebd784fd600182
MD5 6d4ac4a19ad8e9a779891b4c6a8ccec7
BLAKE2b-256 87b1b3e37c0541236ee805bb838ef50da61688c487b034cf8609c0c27605769c

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