Metadata-Version: 2.4
Name: momovu
Version: 1.5.1
Summary: Preview dustjackets, covers, and interior pages of print books before publication
Author-email: Jeff Moe <moe@spacecruft.org>
License: Apache 2.0
Project-URL: Homepage, https://momovu.org
Project-URL: Documentation, https://momovu.org
Project-URL: Repository, https://spacecruft.org/books/momovu
Project-URL: Issues, https://spacecruft.org/books/momovu/issues
Project-URL: Changelog, https://spacecruft.org/books/momovu/raw/branch/main/CHANGELOG.txt
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: X11 Applications :: Qt
Classifier: Intended Audience :: End Users/Desktop
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Natural Language :: Arabic
Classifier: Natural Language :: Bengali
Classifier: Natural Language :: Chinese (Simplified)
Classifier: Natural Language :: English
Classifier: Natural Language :: French
Classifier: Natural Language :: German
Classifier: Natural Language :: Hindi
Classifier: Natural Language :: Indonesian
Classifier: Natural Language :: Italian
Classifier: Natural Language :: Japanese
Classifier: Natural Language :: Korean
Classifier: Natural Language :: Polish
Classifier: Natural Language :: Portuguese
Classifier: Natural Language :: Russian
Classifier: Natural Language :: Spanish
Classifier: Natural Language :: Turkish
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Multimedia :: Graphics :: Viewers
Classifier: Topic :: Printing
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE-apache.txt
Requires-Dist: PySide6<7.0.0,>=6.2.0
Provides-Extra: dev
Requires-Dist: bandit>=1.8.6; extra == "dev"
Requires-Dist: black>=23.0.0; extra == "dev"
Requires-Dist: build>=0.10.0; extra == "dev"
Requires-Dist: dead>=2.1.0; extra == "dev"
Requires-Dist: flake8>=6.0.0; extra == "dev"
Requires-Dist: flake8-pyproject>=1.2.0; extra == "dev"
Requires-Dist: hypothesis>=6.100.0; extra == "dev"
Requires-Dist: hypothesis[pytest]>=6.100.0; extra == "dev"
Requires-Dist: isort>=5.12.0; extra == "dev"
Requires-Dist: mypy>=1.0.0; extra == "dev"
Requires-Dist: pytest>=7.0.0; extra == "dev"
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
Requires-Dist: pytest-qt>=4.2.0; extra == "dev"
Requires-Dist: ruff>=0.1.0; extra == "dev"
Requires-Dist: setuptools-scm>=7.0.0; extra == "dev"
Requires-Dist: transpolibre[all]; extra == "dev"
Requires-Dist: twine>=4.0.0; extra == "dev"
Requires-Dist: types-setuptools; extra == "dev"
Requires-Dist: vulture>=2.14; extra == "dev"
Provides-Extra: test
Requires-Dist: hypothesis>=6.100.0; extra == "test"
Requires-Dist: hypothesis[pytest]>=6.100.0; extra == "test"
Requires-Dist: pytest>=7.0.0; extra == "test"
Requires-Dist: pytest-cov>=4.0.0; extra == "test"
Requires-Dist: pytest-qt>=4.2.0; extra == "test"
Provides-Extra: docs
Requires-Dist: polib; extra == "docs"
Requires-Dist: pycountry; extra == "docs"
Requires-Dist: pygments; extra == "docs"
Requires-Dist: sphinx; extra == "docs"
Requires-Dist: sphinx-autobuild; extra == "docs"
Requires-Dist: sphinx-autodoc-typehints; extra == "docs"
Requires-Dist: sphinx-intl; extra == "docs"
Requires-Dist: sphinx-notfound-page; extra == "docs"
Requires-Dist: sphinx-rtd-theme; extra == "docs"
Requires-Dist: sphinxcontrib-markdown; extra == "docs"
Requires-Dist: sphinxcontrib-video; extra == "docs"
Dynamic: license-file

# Momovu
**Preview dustjackets, covers, and interior pages of print books before publication**

Momovu is an based application for visualizing safety margins, spine widths,
and dustjacket layouts on PDF documents.
It helps publishers and designers ensure proper margins before sending books to print.

* https://momovu.org

* https://spacecruft.org/books/momovu

![Momovu proofing a dustjacket](https://momovu.org/en/_images/showcase-index.png)

# Features
- **PDF Margin Visualization**: Preview safety margins on any PDF document
- **Multiple Document Types**: Support for interior pages, covers, and dustjackets
- **Interactive Navigation**: Zoom, pan, and navigate through pages
- **Presentation Mode**: Full-screen presentation for reviewing layouts
- **Configurable Margins**: Customizable safety margins and spine dimensions
- **Performance Optimized**: Efficient rendering with caching and spatial indexing

# Installation
## System Requirements
- Python 3.9 or higher

## Dependencies (Debian)
```bash
sudo apt install python3-pip python3-venv python-is-python3
```

## Install from PyPi
The easiest install, suit to taste:
```
pip install momovu
```

## Install from Source
```bash
git clone https://spacecruft.org/books/momovu
cd momovu/
python -m venv venv
source venv/bin/activate
pip install -U setuptools pip wheel
pip install -e .
```

# Usage
## Basic Usage
```bash
# Preview margins on a PDF
momovu document.pdf

# Specify document type and page count
momovu --document cover --num-pages 300 book.pdf

# Enable debug logging
momovu --debug document.pdf
```

## Command Line Options
```
$ momovu --help
usage: momovu [-h] [-D] [-v] [-V] [-n N] [-d TYPE] [-s] [-m | --safety-margins | --no-safety-margins] [-t | --trim-lines | --no-trim-lines] [-b | --barcode | --no-barcode] [-l | --fold-lines | --no-fold-lines] [-p] [-f] [PDF_FILE]

Preview margins on book PDFs before publication.

positional arguments:
  PDF_FILE              Path to the PDF file to preview margins for

options:
  -h, --help            show this help message and exit
  -D, --debug           Enable debug logging
  -v, --verbose         Increase output verbosity (can be used multiple times)
  -V, --version         Show version and exit
  -n, --num-pages N     Set number of pages for spine calculations (must be positive)
  -d, --document TYPE   Set document type for margin calculations (interior, cover, dustjacket)
  -s, --side-by-side    Enable side-by-side dual page view mode
  -m, --safety-margins, --no-safety-margins
                        Show safety margins (default: enabled)
  -t, --trim-lines, --no-trim-lines
                        Show trim lines (default: enabled)
  -b, --barcode, --no-barcode
                        Show barcode area for cover/dustjacket (default: enabled)
  -l, --fold-lines, --no-fold-lines
                        Show fold lines for cover/dustjacket (default: enabled)
  -p, --presentation    Start in presentation mode
  -f, --fullscreen      Start in fullscreen mode

Example: momovu --num-pages 300 --document cover book.pdf
```

# Development
For main development docs, see:

* https://momovu.org

To build and add to PyPi:
```
pip install -e .[dev]
python -m build
python -m twine upload dist/*
```

# Links
- **Main Website and Documentation**: https://momovu.org
- **Source Code**: https://spacecruft.org/books/momovu
- **Issues**: https://spacecruft.org/books/momovu/issues
- **Changelog**: [CHANGELOG.txt](CHANGELOG.txt)

# Status
**Stable** - Works well.

# License
Apache 2.0 License. See [LICENSE-apache.txt](LICENSE-apache.txt) for details.

This is an unofficial project, not related to any upstream projects.

**Copyright © 2025 Jeff Moe**
