Skip to main content

NeoView PDF viewer with rectangular crop/measure tool

Project description

NeoView

NeoView is a free all-in-one desktop PDF viewer for Linux and Windows. It brings together font inspection, measurement, crop/export, annotations, search, bookmarks, thumbnails, and reload in one practical workspace.

It started as a precise crop and measurement tool, and has grown into a practical review app for LaTeX, proofreading, QA, layout checks, and document-inspection workflows where a normal PDF reader is not enough.

Why NeoView

Most free PDF viewers only cover part of the workflow. NeoView is built for the moments where you need more than reading:

  • inspect fonts and text details
  • measure layout regions precisely
  • crop/export selected areas
  • annotate and review in place
  • search, bookmark, and navigate longer PDFs
  • reload changing PDFs without losing your session

Highlights

  • Free all-in-one PDF viewer for technical review workflows
  • Live PDF reload while external tools rebuild the file
  • Multi-tab viewing with per-document session restore
  • Text find panel with live results, search navigation, and highlight overlays
  • Outline, bookmarks, thumbnails, and page info side panels
  • Measurement and rectangular selection tools with pt, pica, and mm readouts
  • Crop/export workflow for selected regions as PNG
  • Annotation workflows:
    • highlight, underline, note
    • rectangle, ellipse, text-box, line, arrow, freehand
    • on-canvas drawing and properties editing
    • export a PDF copy with annotations embedded
  • Native PDF annotation visibility in the viewer
  • Font inspection for text under the cursor
  • PNG export from selections at multiple DPI values
  • Keyboard-driven navigation, editing, and selection adjustment
  • Automated test coverage for logic and Qt interaction flows

Repo Overview

Main code areas

Important entry points

Feature Overview

NeoView is designed to reduce tool switching. Instead of opening one app for reading, another for measuring, another for markup, and another for export, it keeps the common PDF review tasks in one place.

Viewing and navigation

  • Open one or many PDFs in tabs
  • Reuse an already-open tab for the same file
  • Page navigation with page combo, PgUp/PgDn, Home/End
  • Fit Width, Fit Page, Actual Size, custom zoom, Ctrl+wheel, and pinch zoom
  • Rotation controls and fullscreen mode
  • Outline panel for PDF table of contents
  • Thumbnail panel for quick page jumping
  • Page info / document info panel

Search

  • Find panel with live typing updates
  • Explicit next/previous search navigation
  • Highlight overlays for current and visible-page matches
  • Search state preserved per tab
  • Batched search execution to keep the UI responsive on larger PDFs

Selection and measurement

  • Drag to create a selection rectangle
  • Resize by handles or keyboard
  • Move by drag or keyboard
  • Measurements in points, picas, and millimeters
  • Copy measurement values to the clipboard
  • Export selection as PNG at multiple DPI levels

Annotations

  • Create annotations from a selection or directly on the canvas
  • Supported types include:
    • highlight
    • underline
    • note
    • text-box
    • rectangle
    • ellipse
    • line
    • arrow
    • freehand
  • Annotation list with filtering
  • Annotation properties editing
  • Delete annotations from the list, keyboard, or context menu
  • Export annotated PDF copies
  • Read-only viewing of annotations already embedded in the source PDF

Bookmarking and session behavior

  • Add custom bookmarks per document
  • Rename and delete bookmarks
  • Restore last page and zoom per file
  • Auto-reload on file changes for LaTeX / Typst / generated PDF workflows

Requirements

  • Python 3.10+
  • PySide6
  • PyMuPDF

Installation

Install from PyPI

pip install neoview

Install from source

python3 -m pip install .

Editable development install

python3 -m pip install -e .[dev]

Recommended local launcher

./run.sh

This bootstraps a virtual environment and launches NeoView.

Running NeoView

Installed command

neoview
neoview /path/to/document.pdf

Module entry

python -m neoview

Legacy shim

python pdf_crop_measure.py
python pdf_crop_measure.py /path/to/document.pdf

Windows

Install via pip

py -m pip install neoview
neoview

Standalone executable

Tagged releases can include a prebuilt neoview.exe from GitHub Releases.

Build the Windows executable yourself

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

Output:

dist\neoview.exe

Advanced Usage

Container usage exists for niche reproducible-environment or development scenarios, but it is not a primary installation path for NeoView. Most users should prefer the native Linux install or the Windows executable.

Keyboard Shortcuts

Shortcut Action
Ctrl+O Open PDF
Ctrl+Q Quit
Ctrl+F Find
Ctrl+Shift+F Toggle search panel
Ctrl+Shift+O Toggle navigation panel
Ctrl+Shift+T Toggle thumbnails panel
Ctrl+Shift+I Toggle page info panel
Ctrl+D Add bookmark
Ctrl+Wheel Zoom in or out
W Fit width
F Fit page
Ctrl+1 Actual size
PgUp / PgDn Previous / next page
Home / End First / last page
Ctrl+L / Ctrl+R Rotate left / right
Ctrl+0 Reset rotation
Ctrl+C Copy measurements or selected text context
Ctrl+S Export selection as PNG
Ctrl+Shift+H Add highlight from selection
Ctrl+Shift+U Add underline from selection
Ctrl+Shift+N Add note from selection
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
Delete / Backspace Delete selected annotation
Escape Clear selection

Development

Install dependencies

python3 -m venv .venv
. .venv/bin/activate
python3 -m pip install -e .[dev]

Run tests

PYTHONPATH=src pytest -q

On Windows PowerShell:

$env:PYTHONPATH = "src"
python -m pytest -q

Current automated coverage

  • Unit tests for measurement and state helpers
  • Sidecar persistence tests
  • UI behavior tests for reload, session restore, and navigation
  • pytest-qt interaction tests for:
    • search
    • reload
    • thumbnails
    • outline navigation
    • bookmarks
    • annotation create/edit/delete flows
    • export flows
    • text selection and copy

The suite is intended to stay fast enough for local development and CI.

Packaging

License

MIT

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.4.tar.gz (112.2 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.4-py3-none-any.whl (90.5 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for neoview-0.4.tar.gz
Algorithm Hash digest
SHA256 5d59f9394c7545cc4381a7ecdb703564e544e5a2387adfb2bc463584539f6915
MD5 c1a4feb0480bfd76ff9a999a36079108
BLAKE2b-256 c961cb07feb09db5f411eb3fad68ac87c5465aae2ca70adefc3b07c49844ba25

See more details on using hashes here.

File details

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

File metadata

  • Download URL: neoview-0.4-py3-none-any.whl
  • Upload date:
  • Size: 90.5 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.4-py3-none-any.whl
Algorithm Hash digest
SHA256 912ddb827ff6cc449cf76cb4b7f2b8e15b31179cb50cf28a14b58b043671f98e
MD5 ea4bdd076328c472f8bce1dbf3fa6c2f
BLAKE2b-256 a682ed05a4225867b128ebb5c171b82ad1aca37d4aa8db159f0771f6457a4d81

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