LinuxCommandLibrary
GitHubF-DroidGoogle Play Store

qwiksi

Stamp a handwritten-style signature onto a PDF from the command line

TLDR

Sign interactively when the PDF has named AcroForm fields (prompts for file, field, and name)
$ qwiksi
copy
List fillable form fields (name, type, page, rectangle)
$ qwiksi fields [contract.pdf]
copy
Stamp a signature image into a named field
$ qwiksi sign [contract.pdf] --signature [sig.png] --field [Signature]
copy
Render a name in a bundled cursive font and stamp it in one step
$ qwiksi sign [contract.pdf] --text ['Jane Doe'] --field [Signature]
copy
Place a signature at PDF-point coordinates (flat or scanned pages)
$ qwiksi sign [scan.pdf] --signature [sig.png] --page [1] --x [150] --y [100]
copy
Draw a coordinate grid on a page so you can read off --x --y values
$ qwiksi preview [scan.pdf] --page [1] --grid [50]
copy
Generate a transparent PNG signature image from a name
$ qwiksi addsig --text ['Jane Doe'] --font [2] --out [sig.png]
copy

SYNOPSIS

qwiksiqwiksi sign input.pdf {--signature image | --text name} --field field [--output file]qwiksi sign input.pdf {--signature image | --text name} --page n --x x --y y [--width w] [--height h] [--output file]qwiksi addsig --text name [--font id] [--size pt] [--color hex] [--out file]qwiksi fields input.pdfqwiksi preview input.pdf [--page n] [--grid pt] [--out file]qwiksi help

DESCRIPTION

qwiksi stamps a signature picture onto a PDF without a GUI. It is a visual overlay, not a cryptographic PDF digital signature (no certificate, no PKCS#7 / PAdES). Placement is either an existing AcroForm widget or absolute coordinates on a flat or scanned page.The stamp is implemented as a pdfcpu image watermark with rotation disabled, so it sits upright at an absolute bottom-left offset. In field mode the matching widget annotation is deleted afterward; otherwise the widget's own appearance would draw on top of the stamp.addsig and sign --text draw the name with two Google Fonts embedded in the binary (Sacramento and Great Vibes, SIL Open Font License 1.1). sign --text uses a temporary PNG and does not keep it.Prebuilt static binaries are published for Linux, macOS, and Windows (amd64 and arm64). Building from source needs Go 1.25 or newer: go build -o qwiksi .

PARAMETERS

With no arguments, qwiksi runs an interactive prompt: pick a PDF, choose an AcroForm field (and optional page), type a name, and write _input__signed.pdf. Flat PDFs (no fields) print the preview + sign --page --x --y flow instead of prompting for coordinates.sign input.pdf

Stamp a signature onto the PDF. Requires exactly one of --signature or --text, and exactly one of --field or the manual --page/--x/--y set. Default output is _input__signed.pdf.
--signature file
Existing PNG or JPEG signature image. Transparent PNG works best.
--text name
Render name in a bundled cursive font and stamp that image (no intermediate PNG required). Combine with --font, --size, and --color.
--font id
Cursive face for --text / addsig: 1 Sacramento (default, casual), 2 Great Vibes (formal).
--size pt
Font size in points for --text / addsig (default 100). Rendering uses 72 DPI so 1 pt equals 1 px.
--color hex
Ink color as a 6-digit RGB hex, optional leading # (default 000000).
--field name
AcroForm field to stamp into. The image is scaled to fit and centered in the field rectangle. The field's widget annotation is then removed so its appearance stream does not cover the stamp. The non-interactive sign command always uses the first widget for that name; interactive mode can pick a page when a field appears more than once.
--page n
1-based page number. Required in manual sign mode. For preview, default is 1.
--x x, --y y
Manual placement, PDF points from the bottom-left of the page (same origin as preview).
--width w, --height h
Manual stamp size in PDF points. Default width is 150; height follows the image aspect ratio. If only --height is set, width follows the aspect ratio.
--output file
Output PDF for sign (default _input__signed.pdf).
addsig
Write a transparent-background PNG of --text. Default output signature.png.
--out file
Output path for addsig (default signature.png) or preview (default _input__preview.pdf).
fields input.pdf
Print a table of AcroForm fields: name, type, page, and rectangle (llx lly urx ury). Reports when the PDF has no form.
preview input.pdf
Stamp a labeled coordinate grid onto one page. --grid is the line spacing in PDF points (default 50). Open the result in a viewer and read numbers for sign --x --y.
help, -h, --help
Print usage. qwiksi command -h prints that command's flags.

CAVEATS

This does not produce a legally binding digital signature; it only draws a graphic. Recipients can still edit the PDF. Encrypted, signed, or unusual PDFs may fail depending on pdfcpu. Keep the unsigned original.sign refuses mixing --field with --page/--x/--y, and refuses both --signature and --text. Interactive mode always uses font 1, size 100, and black ink; it cannot load an existing PNG.Coordinates and sizes are PDF points (1/72 inch). pdfcpu treats each image pixel as one point before scalefactor, which is why --width/--height are specified in points rather than pixels.

HISTORY

Written in Go by krisraven (repository created 2026-08-11). It wraps pdfcpu for form inspection, watermarking, and annotation removal. No SPDX license is declared on the repository.

SEE ALSO

pdfcpu(1), pdftk(1), qpdf(1), cpdf(1), mutool(1), gs(1)

RESOURCES

Braincup
Open source brain training for math, memory and focus
Braincup mini-games
41 mini-games · Apache-2.0
No ads · No tracking
Play in browser
Download Braincup on the App StoreGet Braincup on Google PlayGet Braincup on F-Droid
276 stars
From the maker of Linux Command Library
Copied to clipboard
Braincup
Open source brain training for math, memory and focus. 41 mini-games, from mental arithmetic to Sudoku, N-Back and Solo Chess.
Apache-2.0 licensed · No ads · No tracking · No account
From the maker of Linux Command Library
Download Braincup on the App StoreGet Braincup on Google PlayGet Braincup on F-Droid