Developer Space / Deep Link Print
Integration guide 4 of 7

Deep Link Print Universal URI

The most versatile way to trigger a print: the btprinterplus:// URI scheme underneath both JavaScript Interface and Intent Printer - open it from literally anywhere that can open a URI: a browser, another app, a QR code, an SMS, an email, or ADB.

This is the general-purpose building block. If you're specifically wiring up a website button, see JavaScript Interface. If you're building a native Android app, see Intent Printer - both ultimately either use this scheme or a close equivalent.

URI format

btprinterplus://print?content=<url-encoded text>&placeholder_<name>=<value>&placeholder_...&strict=true

content is required and must be URL-encoded. Any number of placeholder_<name> params can follow to fill in [[name]] tokens inside content. strict is optional - see Strict Mode below.

Examples

Plain text

btprinterplus://print?content=Hello%20World

Rich text

content supports the same markup syntax as the other integrations: **bold**, [center]/[right]/[small] blocks, [qr]...[/qr], and an 8+ dash divider line.

btprinterplus://print?content=%5Bcenter%5D**MY%20STORE**%5B%2Fcenter%5D%0A--------------------------------%0A**Total%3A%20%2410.50**

(decoded: [center]**MY STORE**[/center]\n--------------------------------\n**Total: $10.50**)

Placeholder

btprinterplus://print?content=Hello%20%5B%5Bname%5D%5D%2C%0AYour%20order%20%23%5B%5Border%5D%5D%20is%20ready.&placeholder_name=Arun&placeholder_order=A-1042

(decoded content: Hello [[name]],\nYour order #[[order]] is ready., with placeholder_name=Arun and placeholder_order=A-1042)

#[[dynamic]] tokens with no matching placeholder_ param instead prompt the user for input on-screen, same as Intent Printer.

📸 Screenshot: tapping a btprinterplus:// link (e.g. from a QR code scan) and landing straight on the printed receipt

Strict Mode Optional

Add &strict=true to render content as a dithered image instead of raw ESC/POS text - pixel-for-pixel what a formatted on-screen template would look like, independent of whatever the phone's Settings screen has Strict Mode set to. Slower and heavier than normal printing, so use it when formatting fidelity matters more than speed.

btprinterplus://print?content=%5Bcenter%5D**MY%20STORE**%5B%2Fcenter%5D&strict=true

Ways to trigger it

SourceHow
Web pagewindow.location.href = "btprinterplus://..." or an <a> tag - see JavaScript Interface
Another Android appstartActivity(Intent(Intent.ACTION_VIEW, Uri.parse("btprinterplus://...")))
QR codeEncode the full URI as a QR code; scanning it with the camera opens the app directly
SMS / email / chatThe URI renders as a tappable link on most Android messaging apps
ADB (testing)adb shell am start -a android.intent.action.VIEW -d "btprinterplus://print?content=Test"
AI agent (MCP)The generate_print_link MCP tool builds this URL for you - see MCP

Limitations