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
- Create: Click and drag on the PDF page
- Move: Drag inside the selection
- Resize: Drag edges or corners
- Fine-tune: Use arrow keys with modifiers
- Measure: See live measurements in status bar
All measurements are in PDF coordinate space (points) and remain accurate at any zoom level.
Export
- Create a selection
- Press
Ctrl+Sor click Export button - Choose DPI (150/300/600)
- 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file neoview-0.1.4.tar.gz.
File metadata
- Download URL: neoview-0.1.4.tar.gz
- Upload date:
- Size: 37.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e7fa4ffff7022e7f0394875e30af34ef696bfcb23e37a8d7288bc5c2d93b020b
|
|
| MD5 |
d0f1ca3b6130b4e10315bf3890857196
|
|
| BLAKE2b-256 |
846a6b9421e4a9aef5b51a48f06824e40c36d1600369853f1ae1d02ae3af69eb
|
File details
Details for the file neoview-0.1.4-py3-none-any.whl.
File metadata
- Download URL: neoview-0.1.4-py3-none-any.whl
- Upload date:
- Size: 34.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
49543e7d51a4ddb0fef35139a9c226071edb0b0bbdeb2597bfae6a9410761240
|
|
| MD5 |
db9e95ed69365df486da9e5f8e319e4d
|
|
| BLAKE2b-256 |
eff3ef5d0836ff80adc5d8a1b8db5ff90a11782863e632d8eea135c4209b7e4a
|