File and media QR code generator

One tool for video, audio, Word, Excel, PowerPoint and anything else with an address, because a QR code cannot hold a file. It tells you what each type does on a phone.

Video, audio, Word, Excel, PowerPoint, a zip, anything with an address. The file lives on your host, the code carries the link.

By QRotto · Updated · 6 min read

One tool, because the job is the same

There are separate pages all over the internet for Word QR codes, Excel QR codes, video QR codes and audio QR codes. They are the same page with a different heading, because the operation is identical: a QR code cannot hold a file, so every one of them encodes a link.

The limit is hard. A QR code holds 2,331 bytes at the usual error correction level. A Word document is around 18 KB, eight times over. A three minute MP3 is about 1,400 times over. Nothing changes that, so we built one tool and put the differences where they actually are: what each file type does when a phone opens it, and which hosts hand out the wrong link.

What each type does on a phone

FileWhat the scanner seesWorth knowing
Word, .docxDownloads, or opens in a viewer if one is installedMany phones download rather than display. Export to PDF if it only needs reading.
Excel, .xlsxDownloads in most casesWide sheets are unreadable on a phone. A published web view beats a file.
PowerPoint, .pptxDownloadsPDF is the friendlier format for a phone.
Video, .mp4Plays in the browser playerStreams over their data. Size matters here, unlike the code.
Audio, .mp3Plays in the browserWorks well. A good fit for audio guides and labels.
Zip archiveDownloadsAwkward on iPhones. Avoid for anything public facing.

The pattern is that Office files download rather than display, which on a phone is a worse experience than people expect. If the file is only meant to be read, converting it to a PDF before you link to it will do more for your scan than anything about the code. Our PDF generator covers that route.

Video and audio deserve a different answer

Linking straight to an .mp4 works, but it makes the visitor download your video over their mobile data with no quality options and no pause that survives closing the tab.

For anything more than a few seconds, upload it to a video platform and link to that page instead. You get adaptive quality, a player people recognise, captions, and you stop paying for the bandwidth. The code is the same either way, so this costs nothing.

Audio is different. A short MP3 linked directly is genuinely fine, and it is a good fit for museum labels, plant markers, language tags on menus and anywhere a few seconds of speech beats a paragraph of text.

Word, Excel and PowerPoint files

Why no Office file fits

The largest QR code holds 2,953 bytes at the lowest error correction level. We saved a blank file of each type with Python libraries (python-docx, openpyxl and python-pptx) and checked the size in bytes. Even empty, every one is too big.

Blank fileSize in bytesFull codes it would need
Excel, .xlsx4,7832
PowerPoint, .pptx27,38710
Word, .docx36,56313

These are zipped bundles, so even an empty one carries a fixed load of internal parts. Real files, with text, tables, images and charts, are larger again. No phone camera reads a dozen codes at once, so the code has to hold a link.

Excel: the phone screen problem

A spreadsheet is wide and a phone is narrow. Our tool warns that spreadsheets download rather than display, and that wide sheets are unreadable on a phone. The fix that most people miss is to not link the raw file at all:

  • Publish a web view. Google Sheets can publish a sheet to the web as a page, and Excel on the web can share a read-only view. Make the code from that page's link. It reads well on a phone and you can update the numbers without reprinting the code.
  • Link the .xlsx only when people genuinely need to download and work in it, such as a template.

What we tested

We pasted a link of each type into the live file tool and recorded the note it showed. The output always matched what we typed, and a short link of 34 to 37 characters gave a 29 by 29 grid, a light code that prints well at the 2 cm floor.

LinkWhat the tool said
.docx or .docRecognised a Word document. Most phones download a Word file rather than displaying it. If it only needs reading, export to PDF first.
.xlsx, .xls or .csvRecognised a spreadsheet. Spreadsheets download rather than display, and wide sheets are unreadable on a phone. A published web view is usually better.
.pptx or .pptRecognised a presentation. Presentations download rather than display. PDF is friendlier on a phone.
A Google Docs, Sheets or Slides linkNoted it as a Google link and pointed to our Drive generator.

The grid sizes come from calculation with a QR library, not from printing, and we did not test how every phone opens each file type, so try yours.

Audio files

Why an MP3 does not fit

The arithmetic

The size of an audio file in bytes is the bitrate in kilobits per second, times 1,000, divided by 8, times the length in seconds. The largest QR code (version 40, 177 by 177 squares) holds 2,953 bytes at the lowest error correction level, and 2,331 bytes at the medium level. Here is how many full codes some common clips would need at the lowest level.

ClipSize in bytesFull codes needed
10 seconds at 32 kbps40,00014
30 seconds at 64 kbps240,00082
3 minutes at 64 kbps1,440,000488
3 minutes at 128 kbps2,880,000976
3 minutes at 192 kbps4,320,0001,463

These are calculated figures, not measurements of a particular file, and they ignore the small extra data in an MP3 file.

How much audio one code could hold

Working the same sum backwards, 2,953 bytes is about 0.74 seconds at 32 kbps, 0.37 seconds at 64 kbps, and 0.18 seconds at 128 kbps. That is less than a syllable. The picture below shows a 3 minute clip at 128 kbps as 976 squares, each one a full QR code, next to the single code that holds the link.

Infographic. On the left, one QR code holding a 35 character link, 29 by 29 modules, needing 14.8 millimetres. On the right, a grid of 976 squares, each representing a full QR code, which is what a 3 minute MP3 at 128 kbps would need.
One code for the link, or 976 codes for the sound.

What we tested

Three kinds of link in our file tool

We pasted three links into the live tool, then decoded each code to confirm it held exactly what we typed. The print size is the minimum width at 0.4 mm per square plus a margin of 8 squares on each side. These are technical minimums for each grid. In print, never go below about 2 cm, the floor our sizing guide sets for any code.

LinkCharactersGridMinimum print width
Plain link ending in .mp33529 x 2914.8 mm
Dropbox link, dl=1 ticked4733 x 3316.4 mm
Link to a page about the file3429 x 2914.8 mm

What we saw

The plain .mp3 link was encoded unchanged. The Dropbox link stayed at dl=0 until we ticked the checkbox, then became dl=1. The page link got this note: "No file extension recognised, so this may be a page about the file rather than the file itself. Open it and check." We did not test how every phone or browser handles the audio once the link opens, so try yours.

Link straight to the MP3

This is the simplest. There is nothing to build, and the code stays short. The downside is that you leave it to the phone to decide how to present the file.

Link to a page that holds the player

A page lets you add a title, a transcript, a picture and a way to share. It also lets you swap the audio later without reprinting the code, because the printed link stays the same. The cost is that you must keep that page online.

Common questions

Can I upload my file here?

No. We do not host files, because a printed code that depends on our servers is a code we could break, and a code that stops working is worse than no code.

Does a bigger file make a bigger QR code?

No. The code carries the address, so only the length of the link matters. A 2 GB video and a 5 KB spreadsheet give identical codes if their links are the same length.

Can I put a Word file inside the code itself?

No. The largest QR code that exists holds 2,953 bytes at the lowest error correction level. A small Word document is roughly eight times that, and it gets worse from there.

What if the file moves later?

The printed code breaks. Point it at a short address on a domain you own and redirect from there, so you can move the file whenever you like. Our guide to static and dynamic codes covers the alternatives.

How big should the printed code be?

It depends on the distance people will scan from, not on the file. Our sign maker sets the size for you, and the sign size guide gives the character budget for each size.

Use the PDF generator for a PDF, the image generator for a picture, and the Drive generator for anything on Google Drive. For an ordinary web page, the URL generator is the simplest. Check any finished code with the stress test before printing.

QRotto

QRotto builds free browser based QR code generators and writes the guides that go with them. Every generator is verified by decoding the codes it produces and confirming the output matches the input exactly. See our editorial standards.