Text QR Code Generator

Turn any text into a scannable, customizable QR code — generated instantly in your browser.

Runs in your browserNo sign-up requiredNo watermark
0 characters
Try an example:

Fill in the details above to generate your QR code.

Colors & Style
#111827
#111827
#111827
#ffffff
Logo
Error Correction

Higher levels keep the code readable when part of it is damaged or covered by a logo (L about 7%, M 15%, Q 25%, H 30%), but the pattern gets denser. M suits most uses; adding a logo switches to Q.

Frame

What Is a Text QR Code?

A text QR code encodes plain text directly into the pattern — no link, no app opens. When someone scans it, their phone shows the text right on screen. It is the simplest QR code type there is, useful whenever you want to share a short message without a website behind it, or without needing the scanner to have an internet connection at all.

How to Use This Generator

  1. 1Type or paste your textAnything you want people to read when they scan: a notice, a product label, a clue. Line breaks, Hindi and emoji are kept.
  2. 2Check the length meterGreen is easy to scan; amber means a dense code that needs printing larger. The preview shows exactly what phones will display.
  3. 3Style it if you likeColours, dot shapes, a logo or a "Scan Me" frame. Each change is scan-tested, and low-contrast designs are flagged.
  4. 4Download and printPNG or JPEG up to 2048 × 2048 px, or SVG for any size. The tool tells you the smallest size to print it.

Why Text Length Actually Matters

  1. 1More text, more squaresA QR code holds more by packing in more, smaller squares. A short sentence makes a 25 × 25 grid; a long paragraph can need 100 × 100 or more, which phones only read up close and in good light.
  2. 2Hindi and emoji take more spaceCodes store text as UTF-8 bytes. An English letter is one byte, a Hindi or Gujarati letter is three, and an emoji is four, so the same length of Hindi text makes a denser code. The meter counts bytes for you.
  3. 3Keep printed codes under about 300 charactersA code can hold up to 2,331 bytes at the default error correction, but for a code printed a few centimetres wide and scanned casually, a few lines of text is far more reliable. For longer content, put it on a web page and use a URL QR code.

Common Ways to Use a Text QR Code

  • Notices in two languages, such as "Please remove your shoes here" with the Hindi below it.
  • Product and batch labels: batch number, packing date, storage instructions.
  • Treasure hunts and classroom games, where scanning reveals the next clue.
  • Short instructions on equipment, like how to restart a machine.
  • Messages that need to work offline: a text code needs no internet to read.

Frequently Asked Questions

How much text can a QR code hold?

Up to 2,331 bytes at error correction M (the default), or 2,953 at level L. That is about 2,300 English characters or roughly 770 Hindi characters, since each Hindi letter takes three bytes. For reliable scanning from print, keep it to a few lines.

Does it work with Hindi, Gujarati and emoji?

Yes. The text is encoded as UTF-8, which phone cameras read correctly, and every code is checked by decoding it back before you download. Many free generators corrupt non-English text; this one is tested with Hindi, Gujarati, ₹ and emoji.

What happens when someone scans a text QR code?

The phone shows the text on screen, usually with an option to copy it. Nothing opens, because there is no link. If your text is a link, email or phone number, the tool suggests the matching QR type so it opens directly.

How big should I print it?

The tool shows a minimum print width for your text, based on about half a millimetre per square. Short text can be printed around 2 cm wide; longer text needs more. Always test-scan a printed copy.

Is my text stored anywhere?

No. The code is made in your browser and the text is never sent to our servers.

Can I change the text later without reprinting?

No. A text code contains the text itself. If the message will change, host it on a web page and use a URL QR code instead, then edit the page whenever you need.