Unofficial AppImage build of NAPS2 (Not Another PDF Scanner 2) 8.2.1, a document scanning application that lets you scan to PDF and a wide variety of image formats.
All application code belongs to the original project (GPL-2.0).
Grab the latest AppImage from the Releases page.
chmod +x NAPS2-8.2.1-x86_64.AppImage
./NAPS2-8.2.1-x86_64.AppImageFirst launch: .NET extracts its runtime assemblies to
~/.cache/naps2/on first start — this takes 3–5 seconds and only happens once.
NAPS2 is a self-contained .NET application. No .NET runtime needs to be installed on the target system.
For USB and network scanner support, install SANE:
sudo dnf install sane-backends sane-backends-libs sane-airscansudo apt install sane-utils libsane1 sane-airscansudo pacman -S sane sane-airscanWithout SANE, NAPS2 still works for importing images and editing existing PDFs — just without scanner access.
| Component | Notes |
|---|---|
| .NET runtime | Fully self-contained inside the naps2 binary (single-file publish) |
| libpdfium | PDF rendering — statically linked, no external dependencies |
| tesseract | OCR engine binary — OCR language data is downloaded on first use |
| .NET native helpers | System.Native.so, System.IO.Compression.Native.so, etc. |
Not bundled — libsane must come from the system:
SANE (Scanner Access Now Easy) needs access to system scanner configuration in /etc/sane.d/ and hardware-specific backend drivers in /usr/lib/sane/. Bundling libsane would prevent it from finding any connected scanners.
- Scan from USB scanners (SANE) and network scanners (airscan/WSD/ESCL)
- Save to PDF, TIFF, JPEG, PNG, and more
- OCR in 100+ languages (powered by Tesseract, language packs downloaded on demand)
- Rotate, crop, reorder, and apply corrections to scanned pages
- Batch scanning and automation via CLI (
naps2 --help) - Profiles for different scanner configurations
| Distribution / Target System | Status | Note |
|---|---|---|
| Bazzite / Aurora (Fedora 44) | ✅ tested | Smooth hardware access via system SANE layers |
| Fedora 40+ | ✅ expected | Full compatibility across all spin-offs |
| Arch / CachyOS / Manjaro | ✅ tested | Out-of-the-box compatibility |
| Ubuntu 24.04+ / Debian 13+ | ✅ expected | Built on modern Ubuntu 24.04 glibc base |
| Older distros (glibc < 2.39) | ❌ not supported | Requires Ubuntu 24.04+ baseline (e.g. Ubuntu 22.04 not supported) |
# Open the GUI
./NAPS2-8.2.1-x86_64.AppImage
# CLI usage (scan to PDF)
./NAPS2-8.2.1-x86_64.AppImage --output ~/scan.pdf
# Show CLI help
./NAPS2-8.2.1-x86_64.AppImage --help
# Without FUSE (containers, older kernels)
APPIMAGE_EXTRACT_AND_RUN=1 ./NAPS2-8.2.1-x86_64.AppImageThe easiest and most modern way to manage this AppImage is using Gear Lever (available as a Flatpak on Flathub). It provides full desktop integration, automatic icon generation, and application menu mapping without altering your core system files. It is highly recommended for atomic/immutable distributions like Bazzite and Aurora.
On the first launch, .NET extracts its embedded runtime assemblies to:
~/.cache/naps2/
This directory can safely be deleted — it will be recreated on the next launch. Total size is approximately 150 MB.
If your home directory is on a noexec filesystem (some network shares), the cache is placed in /tmp/.naps2-<username>/ instead.
For maximum target compatibility, it is recommended to run the build script inside an Ubuntu 24.04 Distrobox environment.
The script automatically detects, updates, and installs missing build-essential packages inside the container.
Ensure that your downloaded naps2-8.2.1-linux-x64.deb package is placed in the same directory as the script before running it. If no file is present, the script will attempt to download the latest available version from GitHub automatically. (appimagetool will also be downloaded automatically if missing).
# Clone this repository
git clone https://github.com
cd naps2-appimage
# Ensure the .deb file is in this directory, then execute the build:
chmod +x build-naps2-appimage.sh
./build-naps2-appimage.shProduces a standalone, self-contained NAPS2-8.2.1-x86_64.AppImage (~22 MB) directly in your current working directory.
- Validates build-essential tools and provisions dependencies dynamically via
apt. - Locates the
naps2-*.tar.gzarchive in the local directory and unpacks it into a temporary sandbox. - Automatically maps internal binaries and extracts the embedded system execution profiles.
- Generates a custom desktop entry structure with precise multi-format MIME-type associations.
- Injects automated
SONAMEsymlink routines to resolve .NET runtime native library calls. - Writes a portable
AppRunenvironment handler to isolate cache directories (DOTNET_BUNDLE_EXTRACT_BASE_DIR). - Compresses and packages the environment directory tree into a ready-to-use AppImage bundle.