QR Code Studio

Text QR Code Generator

Create a QR code that stores plain text directly inside the code. Customize the matrix, finder eyes, colors and frame, then export the finished QR code.

Need the QR on an invoice? Use the Invoice Maker to create the invoice, add payment details and generate a QR for the saved invoice.
Static GS1 Digital Link
This generator keeps the GS1 Digital Link URI directly inside the QR code. Premium QR dynamic redirects are not used for GS1 Digital Link codes.
Waiting
Enter a GTIN with a valid GS1 check digit.
Default: https://id.gs1.org. A custom resolver must use HTTPS.
Optional Key Qualifiers
Premium QR Codes emits qualifiers in GS1 Digital Link path order: AI 22, AI 10, then AI 21.
GTIN validation is enforced again on the server. Valid GTIN-8, GTIN-12 and GTIN-13 values are normalized to the 14-digit representation used by this GS1 Digital Link implementation.

Advanced Customization
Standard
AI Art Blend
Neon Cyber
3D Isometric
Liquid Metal
Halftone
Standard Solid
✨ Liquid Glass Mode
Square
Dot Matrix
Rounded
💎 Diamond
✨ Starry
➕ Cross / Plus
♥ Heart
Square Eye
Circle Eye
Rounded
Square Pupil
Circle Pupil
Rounded
No Frame
Scan Me Box Banner
Designer
Colors & Gradients
Branding
Logo & Social Icon
Export
QR Code Size
512px
Enter the required fields to preview your QR code.
Generated QR code preview
PROFESSIONAL EXPORT STUDIO Production-ready QR export
PNG · 2048×2048 px · Current QR background
SVG remains vector. PNG, WEBP and JPG are rasterized in your browser. Transparent background is unavailable for JPG.
QR INTELLIGENCE
Waiting for QR code Generate a QR code to analyze scan readiness.
-- /100 EST. READINESS
QR STRUCTURE —
PAYLOAD —
CONTRAST —
LOGO SAFETY
STYLE RISK —
ERROR RESILIENCE —
MIN. PRINT SIZE —
DEPLOYMENT —
Your QR code has not been analyzed yet.
AUTOMATIC DESIGN SAFETY Logo & Design Preflight
SAFE
Safety score —
QR structure —
Logo footprint
Minimum contrast —
Generate a QR code to run design preflight.
Preflight guidance only. Real Scan Lab performs decoder verification.
PRINT-SIZE INTELLIGENCE Physical QR Print Guidance
Waiting for QR code
QR STRUCTURE —
INCLUDING QUIET ZONE —
RECOMMENDED MINIMUM —
PREFERRED PRINT SIZE —
MODULE SIZE AT PREFERRED —
QR DENSITY —
SUITABLE DEPLOYMENT —
Generate a QR code to calculate physical print guidance.
Physical-size recommendations are preflight guidance, not a universal scanner or print guarantee.
QR VERIFICATION CERTIFICATE Decoder Verification Record
Not verified
Run Real Scan Lab before generating a certificate.
DEPLOYMENT PROFILES Optimize for where your QR will be used
Digital / Screen

    Selecting a profile does not change the QR until you apply it.
    QR KNOWLEDGE STUDIO

    Text QR Code Generator

    Quick answer: A text QR code encodes plain text in the QR symbol with no URI scheme. Scanning it displays the text on screen rather than opening an app or browser. A Version 40 QR code at error correction level L holds up to 4,296 alphanumeric characters or 2,953 bytes of arbitrary text.

    Runs in your browser No data upload Custom design SVG, PNG, WEBP, JPG

    How to create a text QR code

    1. Type or paste your text into the input field. There is no minimum length.
    2. Choose an error correction level: L for the smallest code, H for the most damage tolerance.
    3. Customise the pattern style, finder-eye shape, colours and logo if needed.
    4. Check the live preview — a very long text at a small size will produce a dense symbol; increase the export size if the preview looks crowded.
    5. Download the finished code as PNG, SVG, WEBP or JPG at 512, 1024, 2048 or 4096 px.

    The QR code is built in your browser as you type. Nothing you enter is sent to a server.

    What a text QR code is

    A text QR code is a standard QR code whose payload is a plain string — not a web address, not a tel: number, not a mailto: link, just the text itself. The symbol follows ISO/IEC 18004:2015, the international standard defining QR Code symbology. When a device scans the code, it reads the string and presents it on screen. The device does not launch a browser or an app because there is no scheme to trigger one.

    This behaviour makes the format useful whenever the value to be communicated is the text itself: a door code, a serial number, a luggage tag identifier, a product lot number, or a short set of offline instructions. The code works without internet access because the data lives inside the pattern.

    Encoding modes and data capacity

    The four encoding modes

    ISO/IEC 18004 defines four encoding modes. The generator selects the most efficient mode automatically based on the characters you enter, but understanding the modes explains why long text produces a larger, denser code.

    ModeCharacter setBits per character (approx)Max chars at Version 40, ECC-L
    Numeric0–93.337,089
    Alphanumeric0–9, A–Z (uppercase only), space, $ % * + - . / :5.54,296
    ByteAll 256 ISO-8859-1 values; UTF-8 text in practice82,953
    KanjiShift-JIS double-byte characters131,817

    Entering a digit-only string (for example, a serial number or a door code) allows the generator to use Numeric mode, which stores three digits per 10 bits. Adding a lowercase letter forces the switch to Byte mode, which costs 8 bits per character. That switch more than doubles the bits needed per character and produces a larger, denser symbol.

    The alphanumeric charset limitation

    Alphanumeric mode covers exactly 45 characters: the digits 0 through 9, the uppercase letters A through Z, and seven symbols — space, dollar sign, percent, asterisk, plus, hyphen, full stop, forward slash, and colon. Lowercase letters are not in the alphanumeric charset. Any text containing a lowercase letter will use Byte mode instead.

    If your use case is an uppercase-only code (door entry PINs, airline seat codes, product references in a system that stores them in uppercase), keep the text uppercase and you will get a smaller, less dense symbol at any given data length.

    Why long text makes a dense, hard-to-scan code

    Each additional character requires more modules. A Version 1 QR code is 21 × 21 modules and can hold at most 41 characters in Numeric mode or 25 characters in Alphanumeric mode. Version 40 reaches 177 × 177 modules and holds the maximums shown in the table above. When the symbol version climbs because the payload is long, each module must shrink proportionally if the physical print size is fixed. Smaller modules are harder for a phone camera to resolve. The practical limit for a code printed at business-card size is roughly 150 to 300 characters; beyond that, print larger or reduce the text.

    Error correction and data density

    LevelRecovery capacityEffect on module count
    L~7% of codewordsSmallest code, fewest modules
    M~15% of codewordsGeneral-purpose default
    Q~25% of codewordsSuitable for partial damage risk
    H~30% of codewordsLargest code; use when adding a logo

    Choosing Level H for short text has almost no visible effect on symbol density. For long text, Level H can push the symbol up by several versions and noticeably increase module count. Use Level L or M for long text unless you need damage tolerance.

    When to use a text QR code

    Door and access codes. A printed text QR code on a key card or instruction sheet lets residents or guests retrieve a PIN without reading a small font or phoning reception. It works without a data connection.

    Serial numbers and asset tags. Equipment, tools, or consumable packaging labelled with a text QR code can be identified by scanning rather than manual transcription. Errors from misread digits are eliminated.

    Product lot numbers in warehouse environments. A warehouse scanner that cannot resolve a URL or a tel: number can still read a plain text payload. Text QR codes are a neutral format any reader supports.

    Offline instruction sheets. A machine manual or safety guide can include a text QR code for a brief access code, a short reference string, or a PIN for locked configuration menus — none of which require internet.

    Laboratory sample identifiers. Clinical and laboratory environments use plain numeric or alphanumeric codes to label samples. A Numeric-mode QR code is the most compact format for a purely digit-based identifier.

    Event and venue codes. A backstage pass, conference lanyard, or locker code printed as a QR code reduces the surface area for transcription errors during check-in.

    Design and print requirements

    Maintain a quiet zone of at least four modules on all four sides. ISO/IEC 18004:2015 §6.3.3 specifies this minimum, and scanners need the unprinted margin to detect the symbol's boundaries.

    Print at 2 cm by 2 cm or larger for close-range scanning. A code held 10 to 30 cm from a phone should be at least 2 cm square. Codes intended to be scanned from a metre or more should be at least 3 cm square; large-format posters warrant 8 cm or more.

    Use dark modules on a light background. This is the combination that all modern scanner firmware optimises for. Inverted codes (light on dark) scan less reliably across older hardware.

    Keep strong contrast. Low-contrast colour choices and transparent or busy backgrounds are the most common cause of a code that looks good in a design tool but fails on a printed surface.

    When you embed a logo, raise the error correction level to H. The H level recovers up to approximately 30% of codewords, which is enough to withstand a centred logo occupying up to about 25% of the symbol area. If you are not embedding a logo, Level M is sufficient for most uses.

    Long-text codes at a fixed print size produce small modules. The fix is to print the code larger, not to compress the design. Reducing the quiet zone below four modules to save space is counterproductive and will cause scan failures.

    Troubleshooting: why your text QR code is not scanning

    The symbol is too small for the print size. More data means more modules, and more modules at the same physical size means each module is smaller. Print at a larger size or reduce the payload length.

    The quiet zone is missing or cut off. A common problem when the code is embedded in a bordered design. Ensure at least four modules of unprinted margin on every side before the nearest edge or other artwork.

    Low contrast between modules and background. Pastels, reversed colours, and transparent overlays all reduce contrast. Restore a dark module on a light background combination.

    The payload contains characters that force Byte mode unexpectedly. Checking the encoding mode in the live preview helps — if a serial number meant to be numeric-mode has dashes or slashes, those characters trigger Byte mode and expand the symbol. Remove special characters or replace them with characters inside the alphanumeric charset if density matters.

    The error correction level is set to H on a long payload. H on long text can push the symbol into a higher version with smaller modules at the same print size. Try Level L or M and reprint.

    The phone is reading the raw string but taking no action. This is expected for a plain-text payload. There is no URI scheme, so the device shows the text on screen. If you want scanning to open a link or dial a number, use the URL or phone QR generators instead.

    Text QR codes versus URL QR codes

    A text QR code and a URL QR code both produce ISO/IEC 18004-compliant symbols. The difference is in the payload, not the symbol structure.

    Text QR codeURL QR code
    PayloadPlain text stringFull URL (https://...)
    Action on scanDisplays text on screenOpens browser or app
    URI scheme requiredNoYes (http:// or https://)
    Works offlineYesDepends on destination being available
    Editable after printingNo (static)No (static) / Yes (dynamic)
    Best forCodes, identifiers, instructionsLinks, pages, landing pages

    A URL QR code's payload includes the scheme (https://) and typically a domain, which alone consumes 12 to 30 characters before any path or query string. For the same module density, a text QR code can encode more meaningful content. If the destination is a web page, use a URL QR code. If the destination is a string to be displayed or transcribed, use a text QR code.

    What this Text QR Code Generator gives you

    This browser-based tool stores plain text directly inside the QR symbol, without opening a website or another app. It is designed for door codes, asset numbers, short instructions, reference IDs and offline notices. The live preview updates while you edit, which makes it easier to catch a missing field or an unexpectedly dense symbol before download.

    You can adjust matrix patterns, finder-eye styles, foreground and background colours, gradients, frames, size and an optional logo. Exports are available as SVG, PNG, WEBP and JPG at 512, 1024, 2048 or 4096 pixels. SVG is the practical choice for professional print. A high-resolution PNG suits office documents and digital artwork.

    The static payload is constructed in your browser. The information entered into the generator does not need to be uploaded to create the QR image. Long paragraphs create dense symbols, so concise wording and a larger print size give more reliable results.

    Using this QR code in Bahrain and abroad

    Useful for Bahrain offices, events, accommodation desks and facilities where a short code must remain available even when mobile data is weak.

    Use British English spelling in customer-facing copy when that matches your organisation’s house style, and provide Arabic wording where the audience expects it. Keep the action after scanning obvious. A short line beside the symbol such as “Scan to save the contact” or “Scan to open the location” gives people confidence before they point their camera.

    Test the final design on current iPhone and Android devices. Test it again after printing on the actual paper, sticker, card, sign or packaging material. Bahrain’s bright outdoor light can expose glare and low-contrast problems that are less obvious on a computer screen. For international use, confirm country codes, currencies, time zones, regional app availability and payment-network compatibility.

    EDITOR’S CHECKLIST

    Before you publish

    • Correct QR payload type
    • Complete and verified data
    • Four-module quiet zone
    • Strong foreground contrast
    • Proportional square scaling
    • Logo kept within safe limits
    • SVG or high-resolution PNG
    • Final-size device scan test
    Return to generator ↑
    QR CODE FAQ

    Frequently asked questions

    Open a question to read a concise technical answer.

    01Can a QR code contain plain text?+

    Yes. A QR code can encode a plain text string with no URI scheme. When scanned, the device displays the text on screen rather than opening an app or browser. The QR symbol follows ISO/IEC 18004 regardless of what the payload contains — the difference is in the content, not the structure of the code.

    02How much text can a QR code hold?+

    A Version 40 QR code at error correction level L holds up to 7,089 numeric characters, 4,296 alphanumeric characters (uppercase letters plus digits and a handful of symbols), or 2,953 bytes of arbitrary text such as UTF-8 prose. Using a higher error correction level or including lowercase letters reduces these maximums.

    03What is the maximum number of characters in a QR code?+

    The ISO/IEC 18004 maximum is 7,089 numeric digits in a Version 40 code at error correction level L. For mixed text including lowercase letters, the byte-mode maximum is 2,953 characters at the same settings. Adding error correction or using a lower version reduces capacity further in proportion to the recovery percentage chosen.

    04Can I put a paragraph of text in a QR code?+

    Yes, up to the capacity limits. A short paragraph of 200 to 400 lowercase characters fits in byte mode at a moderate symbol version. The resulting code will be denser than a short-text code, so print it larger — at least 3 cm square — to ensure reliable scanning with a phone camera.

    05What happens when someone scans a text QR code?+

    The scanner reads the plain string and the device displays it. No app opens and no browser loads, because there is no URI scheme to trigger an action. The user sees the text directly on screen — useful for codes, identifiers, and instructions that need to be read, not clicked.

    06Is there a difference between a text QR code and a URL QR code?+

    Yes. A URL QR code includes a scheme such as https:// in its payload, which causes the device to open a browser. A text QR code has no scheme, so the device only displays the content. URL QR codes link to live web pages; text QR codes carry self-contained information that does not require internet access to use.

    07What is alphanumeric mode in a QR code?+

    Alphanumeric mode is an encoding defined in ISO/IEC 18004 that stores two characters per 11 bits — more efficient than byte mode's 8 bits per character. It covers 45 characters: the digits 0–9, uppercase A–Z, and the symbols space, $, %, *, +, -, ., /, and :. Lowercase letters are not included; any text containing a lowercase letter uses byte mode instead.

    08Why does my text QR code look so dense and complex?+

    Code density increases with payload length and error correction level. Long text, lowercase characters (which force byte mode), and high error correction all increase the number of modules. To reduce density: shorten the text, use uppercase-only if possible to enable alphanumeric mode, or select a lower error correction level such as L or M.

    09Does a text QR code work without internet?+

    Yes. The text is encoded entirely within the QR pattern, so the code works with no network connection. There is no redirect, no server, and no expiry. The code continues to work indefinitely as long as the printed symbol remains legible.

    10Why is my text QR code displaying the raw string instead of doing something?+

    That is the intended behaviour of a plain-text QR code. No URI scheme means the device has nothing to act on — it simply shows what it reads. If you want scanning to open a link, dial a number, compose a message, or connect to WiFi, use the corresponding dedicated QR type instead of the plain-text generator.