Introduction
SANE (Scanner Access Now Easy) drives almost every scanner that works on Linux, and a large share of the hardware it supports — consumer all-in-ones and plenty of small-office multifunction devices alike — has an automatic document feeder (ADF) that can only capture one side of a sheet per pass. Run a stack of double-sided paper through one of these and you end up with two files: a fronts pass and a backs pass, and the backs pass comes out in a page order that looks broken the moment you try to read it after the fronts. This guide covers both the graphical route — GNOME's Document Scanner app (commonly known by its package name, simple-scan) — and the command-line route through SANE's scanimage, plus the exact steps to turn the resulting pair of files into one correctly ordered PDF.
For the mechanics of why the backs pass comes out reversed in the first place, see our companion article, Duplex Scanning and the Reverse-Order Problem; this guide assumes that background and focuses on the Linux-specific scanning procedure and the fix. On a different machine? See our companion guides for scanning double-sided documents on Windows and scanning double-sided documents on macOS.
Why a Simplex Feeder Produces Two Mismatched Files
A single-sensor ADF only captures whichever side of a sheet faces it as the sheet passes through. Digitizing a double-sided original therefore takes two passes: scan the stack once for the fronts, physically flip the entire stack over as one block, reload it, and scan again for the backs. That flip reverses the stack's order, so the fronts come out in original reading order while the backs come out last-page-first. It's a mechanical property of the flip, not a driver bug, and it happens identically whether SANE is driving the scanner through a GUI or a terminal — the frontend only controls how each pass gets captured and saved.
Before You Scan: Installing the SANE Tools
Neither tool is guaranteed to be preinstalled, depending on your distribution and desktop environment, but both are typically one package-manager command away. On Debian- and Ubuntu-based distributions, sudo apt install simple-scan sane-utils pulls in the GUI app, scanimage, and the core SANE backends; on Fedora, sudo dnf install simple-scan sane-backends does the same job. Once installed, run scanimage -L from a terminal to confirm SANE can see your scanner at all — this works regardless of which frontend you end up using day to day, since it talks directly to the backend rather than through Document Scanner's interface, and it's the fastest way to rule out a connection or permissions problem (some distributions require your user to be in a scanner or lp group) before you start troubleshooting the GUI.
Two Ways to Drive SANE on Linux
Almost everything Linux can do with a scanner ultimately goes through SANE, but you can reach it two very different ways. GNOME Document Scanner (the app most desktop environments show as "Document Scanner," with a package named simple-scan on most distributions) is the point-and-click option, preinstalled or one package-manager command away on GNOME, Ubuntu, Fedora, and most other mainstream desktops. scanimage, part of the SANE backends package, is the command-line option — no desktop environment required, and scriptable for anyone comfortable with a shell. Both talk to the same SANE backend for your specific scanner model, so neither one has an advantage in image quality; the choice comes down to whether you'd rather click through a window or type a command.
Method 1: Scanning With GNOME Document Scanner
- Connect the scanner and power it on, then load the stack for the fronts pass. Place the double-sided stack in the ADF as your scanner's feeder icon indicates, so pages feed from the top in original order.
- Open Document Scanner. Launch it from your desktop's application menu, or run
simple-scanfrom a terminal. - Set the document type. Click the cog icon to the right of the Scan button and choose Text (the appropriate type for a scanned paper document rather than a photograph).
- Scan all pages from the feeder. Still using the cog menu next to the Scan button, choose All Pages From Feeder — or press Ctrl+F — rather than the plain Scan button, which expects one page at a time from flatbed glass. Each page the feeder pulls in is appended to the end of the document as it's scanned.
- Confirm single-sided scanning if your feeder also does duplex. Document Scanner scans both sides automatically by default if the hardware supports it; on a genuinely simplex ADF this doesn't apply, but if you have a duplex-capable feeder and want to run this two-pass method anyway, open the menu button in the top-right corner, choose Preferences, and in the Scanning section set Scan Sides to a single side before continuing.
- Save the fronts pass as a PDF. Once the whole stack has fed through, press the "Save document to a file" button in the top bar (or Ctrl+S), choose PDF as the file type, and save it as something you'll recognize, such as
report-fronts.pdf. - Flip the entire stack as one block and reload it. Lift the whole stack and turn it over like a single pad rather than flipping sheets individually, then place it back in the feeder.
- Repeat the scan and save as the backs file. Same All Pages From Feeder command, save as PDF again with a different filename —
report-backs.pdf. This pass comes out in reverse page order, which is expected and correctable.
Method 2: Scanning With scanimage From the Command Line
scanimage gives you the same result without a desktop environment, and it's the more direct option if you're already scripting a document-handling pipeline. Two things matter here that don't come up in the GUI: scanimage itself writes PNM, TIFF, PNG, or JPEG — not PDF directly — so you'll pipe the output through a converter, and the exact source name for your feeder is backend-specific rather than universal.
- Find your device's exact name. Run
scanimage -Lto list connected devices; you'll get a device string likefujitsu:ScanSnap S1500:2314or something backend-specific to your hardware. - Check the available source names for your device. Run
scanimage --help -d "your-device-string"and look at the--sourceoption's list of valid values. This step matters because ADF source naming genuinely varies by backend — one driver might expose"ADF", another"ADF Front", another"Automatic Document Feeder"— so don't assume a value you've seen in someone else's script or blog post will match your hardware; always confirm against your own device's--helpoutput first. - Scan the fronts pass in batch mode. With the correct source name in hand, run something like:
Thescanimage -b --format png --source "ADF" -d "your-device-string" --resolution 300-b(batch) flag tells scanimage to keep pulling pages from the feeder and write each one to its own numbered file (out1.png,out2.png, and so on) until the ADF reports empty, rather than capturing a single image. - Convert the fronts images to a single PDF. scanimage has no built-in PDF output, so combine the numbered images with a tool built for this —
img2pdf out*.png -o report-fronts.pdfis a common lossless choice that repacks the images into a PDF container without re-encoding them, which avoids the generation loss a re-compression step would introduce. - Flip the entire stack as one block and reload it. Same physical flip as the GUI method.
- Repeat the scan and conversion for the backs pass. Run the same
scanimage -bcommand again (clear or move the previous PNGs first so the numbered filenames don't collide), then convert withimg2pdf out*.png -o report-backs.pdf.

From Two Linux Scan Files to One Ordered PDF
With fronts.pdf and backs.pdf saved locally — from either method — open our PDF Organizer in any browser and drag both files onto the drop zone; nothing you add is ever uploaded, the whole combine happens in the browser tab. Each file gets its own row with independent range, rotation, and reverse-order controls. Toggle reverse-order on for the backs file only, leaving the fronts file untouched, since only the backs pass was affected by the physical flip. Then switch the combination mode from Concatenate to Interleave, which alternates a page from the fronts document with a page from the now-reversed backs document, reconstructing the original front-back-front-back reading order. Scroll the live thumbnail grid to confirm the pairing looks right before you download. For a fully worked example of this same flow, see our companion walkthrough, How to Combine Scanned Front and Back Pages Into One PDF.
This combine step is purely structural — it changes which existing page appears where, never the pixels of the page itself — so every page that goes through the organizer, whether it started as a native Document Scanner PDF or an img2pdf-assembled one, stays at the exact quality it was captured at.
Troubleshooting Your Linux Scan-and-Organize Workflow
- Odd page counts. A stack with an odd number of sheets leaves the last sheet with a front but no matching back. Round-robin interleaving handles this automatically: once the shorter document (usually the backs file) runs out, the longer document's remaining page is appended at the end instead of forcing a broken pairing.
- Blank backs. If the final physical sheet genuinely had nothing on its reverse, both Document Scanner and scanimage will faithfully capture a blank page for it — that's correct, expected behavior. Just delete that specific thumbnail from the grid after interleaving rather than fighting the scan settings.
- Upside-down backs on a rotating feeder. Some ADFs rotate the sheet 180 degrees relative to the fronts pass depending on how the flipped stack was seated for the second load. If every page in the backs file previews upside down, use the organizer's per-document rotation control to rotate the whole backs document 180 degrees before interleaving, rather than rescanning. Rotation is applied as lossless PDF page-rotation metadata, not by re-rendering the image, so it costs nothing in quality.
- Skewed or shifted pairing. If several pairs line up correctly in the preview and then shift by one partway through, a sheet was likely double-fed or skipped mid-pass — worn feed rollers are a common cause on older ADFs, and it can also happen if
scanimage -bwas re-run over leftover numbered files from a previous pass without clearing them first, silently mixing two batches. Compare both files' page counts against the physical stack; a mismatch confirms a feed or filename-collision issue, and the fix is rescanning the affected section rather than adjusting the organizer's settings.
Which Linux Method Should You Use?
Use GNOME Document Scanner if you want the fewest steps for a one-off scan — it saves straight to PDF with no separate conversion tool needed, and the All Pages From Feeder command handles the whole stack in one action. Reach for scanimage if you're scanning as part of a larger script, working on a machine without a desktop environment, or need precise control over resolution and format that a GUI doesn't expose. Both ultimately go through the same SANE backend for your hardware, so image quality is identical; the extra img2pdf step for the command-line route is the only real difference in the finished PDF's path to your disk.
Conclusion
A simplex ADF on Linux doesn't force a rescan of a double-sided stack any more than it does on other platforms — the fix just happens after the scan instead of during it. Whether you drive the feeder through GNOME Document Scanner's All Pages From Feeder command or through scanimage -b with a source name confirmed against your own device's --help output, the result is the same pair of files: fronts in order, backs reversed. From there, our PDF Organizer reverses the backs document, interleaves it with the fronts, and shows you a live thumbnail preview to confirm before you download — the same underlying fix whether your scans came off Linux, a Windows PC, or a Mac.