How It Works: Client-Side PDF Processing

Last updated: August 25, 2026

Most online PDF tools work the same way: you upload your file to their server, the server processes it, and you download the result. This is convenient but creates a fundamental privacy problem — your document exists on someone else's infrastructure. smartpdfconv takes a different approach: everything happens in your browser.

The Privacy Problem with Traditional PDF Tools

When you use a typical online PDF tool:

  1. You select a file on your computer.
  2. The file is uploaded to the tool's servers.
  3. The server processes the file (compress, merge, convert, etc.).
  4. You download the result.

During step 2–3, your document exists on their server. You have no way to verify:

For a casual PDF, this might not matter. For a tax return, a medical record, a legal contract, or a business proposal, uploading to a third-party server is a real risk.

How smartpdfconv Is Different

When you use smartpdfconv:

  1. You select a file on your computer.
  2. The file is loaded directly into your browser's memory.
  3. JavaScript and WebAssembly code runs locally on your device to process the file.
  4. The result is generated in your browser and offered as a download.

At no point does your file leave your device. There is no upload. There is no server processing. The file never touches our infrastructure.

The Technology: WebAssembly

The core technology that makes this possible is WebAssembly (WASM).

WebAssembly is a binary instruction format that runs at near-native speed in modern browsers. It allows us to compile PDF processing libraries (written in Rust, C++, or AssemblyScript) into a format that browsers can execute directly — without plugins, without installations, and without sacrificing performance.

Why WebAssembly for PDF Processing?

Our PDF Processing Stack

pdf-lib

What it does: Create, modify, and merge PDF documents. Handles PDF structure, page manipulation, encryption, and form filling.

Used for: Merge PDF, Split PDF, Compress PDF (structural optimization), Organize & Watermark.

Why: pdf-lib is the most widely used open-source JavaScript PDF library. It's actively maintained, well-documented, and handles the PDF specification correctly.

pdf.js (pdfjs-dist)

What it does: Render PDF pages to HTML5 Canvas elements. Parse PDF structure, extract text, and display page previews.

Used for: PDF to Images (rendering pages to PNG/JPG), Split PDF (page thumbnails), Extract Text.

Why: Developed by Mozilla, pdf.js is the gold standard for PDF rendering in browsers. It powers the PDF viewer in Firefox, Chrome, and Edge.

jsPDF

What it does: Generate new PDF files from scratch. Create pages, add text, insert images, and apply formatting.

Used for: Images to PDF (creating PDFs from uploaded images).

Why: jsPDF excels at creating PDFs from images and text. It's lightweight and fast.

HTML5 Canvas

What it does: Render images and PDF pages as pixel data in the browser. Manipulate image data for compression and conversion.

Used for: Image downsampling during compression, rendering PDF pages for export.

The Compression Pipeline

Here's what happens when you compress a PDF with smartpdfconv:

  1. Parse. pdf-lib parses the PDF structure: pages, images, fonts, metadata.
  2. Analyze. The tool identifies embedded images and their resolutions, sizes, and compression formats.
  3. Downsample. Images above the target DPI (e.g., 300 DPI → 150 DPI) are resampled using Canvas.
  4. Re-encode. JPEG images are re-encoded at the target quality factor. PNG images with continuous tones are converted to JPEG.
  5. Clean. Redundant metadata, unused fonts, and orphaned objects are stripped.
  6. Write. The modified PDF is serialized and offered for download.

All of this happens locally in your browser. The entire process typically takes 2–10 seconds, depending on file size and your device's performance.

Frequently Asked Technical Questions

Does processing use my CPU or GPU?

Most processing uses your CPU. WebAssembly executes on the CPU. Image rendering uses the Canvas API, which may leverage GPU acceleration on some devices.

How much memory does it use?

Depends on the file. A typical 10 MB PDF uses 50–100 MB of browser memory during processing. Very large files (100+ MB) may use 500 MB–1 GB. Modern devices handle this easily.

What if my browser tab crashes?

If a tab crashes (usually due to insufficient memory for very large files), you won't lose your original file — it's still on your device. Just reopen the tool and try again. Consider splitting large files first.

Is the WASM code auditable?

Yes. The WASM binaries are served from our website and can be downloaded and analyzed. We also use open-source libraries (pdf-lib, pdf.js, jsPDF) whose source code is publicly available on GitHub.

How does this compare to desktop software like Adobe Acrobat?

Desktop software has more features and can handle very large files more reliably. But for the vast majority of everyday PDF tasks — compressing, merging, splitting, converting — browser-based processing matches desktop performance with the added benefit of zero installation and guaranteed privacy.

Try it yourself — your files never leave your device

Start Using smartpdfconv