# QR code images: branded cards, posters and badges with your QR code inside

> Put QR codes into branded images — table cards, posters, badges — from a template. Generate the code with any QR library; we lay it out and render it.

Published 2026-11-07 · https://shareglint.com/en/use-cases/qr-code-images

A QR code on its own is a black square; on a table card, a poster, a badge or a product insert it needs a design around it: a headline, a call to action, a logo, a short URL for people who do not scan. With Shareglint that design is a template and the QR code is one of its image fields. **We do not generate QR codes** — you make the code with a QR library or the system that issues it (a ticketing tool, a menu service, a link shortener), and the template lays it out and renders the card.

## The templates

| Template | Use | QR field |
|---|---|---|
| `qr-card` | Table cards, posters, flyers, "scan to…" social posts | `qr`, with headline, CTA, caption, URL label, logo |
| `event-badge` | Attendee badges with a check-in code | `qr`, with name, role, company, ticket type, event |
| `event-ticket` | Tickets with seat, gate and a code | (a code image in your own copy of the template) |
| `menu-special` | A dish of the day with a "scan to order" code | add a `qr` field in your own copy |

`qr-card` and `event-badge` have a `qr` image field built in; any template can get one when you copy it into your account and add an image field. All of them render in every size preset (og 1200×630, square 1080×1080, portrait 1080×1350, story 1080×1920, pinterest 1000×1500, youtube 1280×720) and as one-page PDFs.

## Making the QR code

Any QR library produces a PNG or SVG you can host and pass by URL. Two common ones: [node-qrcode](https://github.com/soldair/node-qrcode) for JavaScript and [qrcode](https://pypi.org/project/qrcode/) for Python. In Node:

```javascript
import QRCode from 'qrcode';
import { writeFile } from 'node:fs/promises';

// A large PNG with the default quiet zone; upload it where the renderer can fetch it.
await writeFile('table-12.png', await QRCode.toBuffer('https://northwind.cafe/order?table=12', { width: 800, margin: 4 }));
```

Upload the file to your storage or CDN and send its public URL. Image fields take public URLs fetched when the card renders; private or internal addresses are refused.

## One card per table, ticket or product

```bash
curl -X POST "https://shareglint.com/v1/batches" \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "template": "qr-card",
    "format": "pdf",
    "rows": [
      { "id": "t12", "filename": "table-12", "headline": "Order from your table", "cta": "Scan to see the menu", "url_label": "northwind.cafe/t12", "qr": "https://cdn.example.com/qr/table-12.png" },
      { "id": "t13", "filename": "table-13", "headline": "Order from your table", "cta": "Scan to see the menu", "url_label": "northwind.cafe/t13", "qr": "https://cdn.example.com/qr/table-13.png" }
    ]
  }'
```

Each row is one card; `format: pdf` gives a one-page vector PDF per card, at the template's size (96 px per inch), ready for the print shop, and the ZIP contains them all named by `filename`. Rows per batch by plan: Free 50, Starter 500, Pro 1,000, Scale 2,000, Business 5,000. For screens and social posts, use PNG instead.

## Make it scan

QR codes fail in print more often from layout than from data. QR Code was invented by DENSO WAVE and is standardised as ISO/IEC 18004 ([qrcode.com](https://www.qrcode.com/en/)); in practice:

- **Keep the quiet zone.** The white margin around the code is part of it. Do not let the template's background, a border or a shadow eat into it — generate the code with its margin and keep it on a white or very light area.
- **Contrast.** Dark code on a light background. Brand-coloured codes work if the contrast stays high; inverted (light on dark) codes may not scan on every phone.
- **Size.** Bigger is safer, especially on posters read from a distance. Generate the code image larger than it will be shown, so it stays sharp.
- **Short URLs.** A shorter URL makes a simpler code with bigger modules that scans more easily from further away.
- **Test before printing.** Scan the rendered card — not the bare code — with several phones, in the light where it will hang.

Always print the URL in words under the code (`url_label`) for people who cannot scan.

## Codes that change

If the destination of a code may change — a seasonal menu, a campaign page — point the code at a short URL you control and change the redirect instead of reprinting. The card itself stays the same: same code, same file. If you do need new codes, generate them, upload them, and run the batch again; only the rows whose code URL changed render anew, so reprinting ten tables out of sixty costs ten renders.

## Where QR cards are used

- **Restaurants and cafés:** table cards for menus and ordering ([restaurant menu specials](https://shareglint.com/en/use-cases/restaurant-menu-specials)).
- **Events:** badges and tickets with check-in codes from your ticketing system ([event graphics](https://shareglint.com/en/use-cases/event-graphics)).
- **Retail and packaging:** inserts linking to manuals, warranties or reorder pages, one code per product.
- **Social posts:** "scan to join" or "scan to download" cards, where a QR code on screen is useful to people viewing on another device.

## Cost

One render per card and size; repeats are free. Sixty table cards as PDFs are 60 renders, once. The Free plan's 100 renders carry a watermark — test with it, but not for print; Starter is $9 a month for 2,000 renders ([pricing](https://shareglint.com/en/pricing)).

## What it does not do

- It does not generate, track or shorten QR codes or URLs.
- It does not produce multi-up print sheets (several cards on one A4 page); each PDF is one card, and your print shop or a PDF tool imposes them.
- It does not check that a code scans; test the printed result.

## FAQ

### Do you generate the QR code?

No. The QR code is an image you make with any QR library or your ticketing system and pass as a URL to the template's qr field. We place it in the design and render the card, poster or badge around it.

### PNG, JPEG or PDF for printing QR codes?

For print, a one-page vector PDF of the card keeps text sharp; the QR image inside it is the image you supplied, so make it large enough. For screens, PNG keeps the code's edges crisp; avoid heavy JPEG compression on QR codes.

### Will the QR code still scan inside a design?

Usually, if it keeps its quiet zone (the white border), high contrast and enough size. Test-scan every template with a few phones before printing a batch.

### Can every card have its own QR code?

Yes. Generate one code per row — a ticket, a table, a product — and send each code's URL in the batch. Every card then carries its own code.
