Skip to main content

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
  • Sidebar with thumbnails, outline, bookmarks, and annotations; inspector panel for measurements, fonts, and document info
  • Same look on Linux and Windows: bundled Inter font and Lucide icons, light and dark themes
  • Single, continuous, two-page, and two-page-with-cover layouts; night and sepia reading modes
  • Print, presentation mode, password-protected PDFs, and back/forward navigation
  • Large documents stay responsive: pages render in the background with bounded memory
  • 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 the page field, PgUp/PgDn, Home/End, Go to Page (Ctrl+G), and Back/Forward (Alt+Left/Right)
  • Fit Width, Fit Page, Actual Size, custom zoom, Ctrl+wheel, and pinch zoom
  • Rotation controls, fullscreen, and presentation mode (F5)
  • Page layouts: single, continuous, two-page, two-page with cover
  • Reading modes: normal, night, sepia
  • Sidebar (F9) with outline, thumbnails, bookmarks, and annotations
  • Inspector (Ctrl+Shift+I) with measurement, font, and document info
  • Print (Ctrl+P) and password-protected PDFs
  • Light, dark, or system theme (View > Theme)
  • 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]
./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+W Close document
Ctrl+P Print
Ctrl+Q Quit
Ctrl+F Find (focus the search field)
F3 / Shift+F3 Next / previous match
Ctrl+Shift+F Toggle search results panel
F9 Toggle sidebar
Ctrl+Shift+T / Ctrl+Shift+O / Ctrl+Shift+B / Ctrl+Shift+A Sidebar: thumbnails / outline / bookmarks / annotations
Ctrl+Shift+I Toggle inspector
1 / 2 / 3 / 4 Select / Hand / Measure / Annotate tool
Ctrl+= or Ctrl++ / Ctrl+- Zoom in / out
Ctrl+Wheel Zoom in or out
Ctrl+1 or W Fit width
Ctrl+2 or F Fit page
Ctrl+0 Actual size
PgUp / PgDn Previous / next page
Home / End First / last page
Ctrl+G Go to page
Alt+Left / Alt+Right Back / forward
Ctrl+L / Ctrl+R Rotate left / right
F11 Full screen
F5 Presentation
Ctrl+Shift+R Reload
Ctrl+Tab / Ctrl+Shift+Tab Next / previous tab
Ctrl+D Add bookmark
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

In presentation mode: Right/Space/PgDn next, Left/Backspace/PgUp previous, Home/End, B black screen, Esc exit.

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

Metadata

Release files for neoview 0.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for neoview 0.5
File Size Uploaded
neoview-0.5.tar.gz 811.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for neoview 0.5
File Interpreter ABI Platform
neoview-0.5-py3-none-any.whl Python 3 none any Details

Total release size: 1.6 MB

Release files / neoview-0.5.tar.gz

Download URL neoview-0.5.tar.gz
Size 811.4 kB
Tags Source
SHA-256 checksum
How to use checksums
48f8630f61a4958b58c7d697ce3b988209c0b448a7550847cde445b0b43f94c6
BLAKE2b-256 checksum
How to use checksums
4e5ea682bf4ce5c308a9fddfedcf344da61c7461ae6dafe48c50975994d22dcc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / neoview-0.5-py3-none-any.whl

Download URL neoview-0.5-py3-none-any.whl
Size 780.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
55034177bd1d99487224fa942cf59f769f5dac7ff789ff7c94eea9c0dd3acf80
BLAKE2b-256 checksum
How to use checksums
a05eb4053688901c0f986f385e2c6007082fb9576654bf6ea4be7d1653f26425
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release history Release notifications | RSS feed

This release

0.5 This release

2 release files

0.4

2 release files

0.3

2 release files

0.2

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page