Digital Menu Guide

How to Digitize Your Restaurant Menu in Minutes

By Ibrahim Anjro · · 16 min read

A printed restaurant menu photographed flat on a table next to a phone importing the same dishes into a digital menu

The real question behind "should we go digital" is always the same one: do I have to retype all of this? No. You photograph what you already print. But it is worth knowing exactly what the import does well, what it hands back to you, and where a spreadsheet is the better tool.

TL;DR — Key Takeaways

  • You upload, the AI drafts, you review. Five JPG, PNG, WebP or PDF files per import — a PDF up to 12 pages, one import up to 16.

  • Layout is data. S 8,00 / M 10,00 / L 12,00 arrives as one dish with three sizes; toppings printed under a burger arrive as add-ons.

  • Nothing uncertain is published on trust. Every dish gets a confidence score; doubtful reads land in a "Needs you" tab.

  • Allergens, photos and diet tags are not part of the read. You get sections, names, descriptions and prices. The rest is your work.

  • The spreadsheet import is a separate tool. Seven fixed columns, a preview before a row is written, and it leaves allergens, photos, choice groups and translations alone.

What the import is actually for

Two jobs get confused here. Putting a PDF on your website is file hosting. Turning that PDF into a menu means every dish becomes its own record — a price you change in a tap, an allergen line, a photo, a translation, a sold-out switch. One thing worth checking before you start: a page for your restaurant may already exist, compiled from your printed card. If so, claiming it hands you a menu that is already built.

The import is the bridge, and it exists because the alternative is a data-entry evening most owners never finish. The full route from printed card to live page is here: how to digitize your restaurant menu.

Photo import is on every plan in Intermenu, Free included, with no charge per import. It isn't the upsell — it's the front door.

What you can upload, and why it's checked first

Each import takes up to five files — JPG, PNG, WebP or PDF. A single PDF can run to12 pages, and one import to16 pages across all its files.

The file count, types and sizes are checked before anything uploads — the difference between a two-second "that's a .docx" and a two-minute upload that dies at the end. The limits also hint at how to organize the work: a food card, a drinks list and a dessert menu don't belong in one upload.

What to photograph, and how

The read is only as good as the picture, and ten minutes of care removes an hour of correcting later.

  • One page per photo. Not a spread, not two pages at an angle — a frame per page keeps the text large.

  • Lay it flat, out of its cover. A curved page bends the price column away from the lens.

  • Shoot from directly above, phone parallel to the table. From your chair you tilt the page and squeeze the bottom lines.

  • Use even, indirect light. Near a window on an overcast day is close to perfect, and keep your shadow off the page.

  • Watch the glare on laminate. Glossy cards throw a white blowout right where the price column sits — turn the menu 90 degrees until it slides off.

  • Shoot the drinks card separately. Different layout, different sections — and it wants its own import.

  • Shoot the back of the card too. Desserts, the wine list, the kids' menu — the back is the page owners forget. If there's content on it, it's a page.

  • Take it out of the holder. Behind glass or in a rigid stand you're photographing a reflection and a curve. Pulling the card out takes half a minute.

  • Shoot a long single-column card in overlapping thirds. One distant frame makes every line small. Top, middle, bottom, each overlapping the next by a dish. The dish that lands twice gets set aside in review — one tap.

  • Check each shot. Zoom in on the smallest price: if you can't read it, neither can the AI.

If your designer still has the original PDF, use that instead.

What the AI reads

For every dish it captures four things as printed: section, name, description, price. As printed matters — nothing is rewritten or rounded into something tidier.

The more interesting part is the structure your menu expresses through layout rather than words:

  • Sizes. S 8,00 / M 10,00 / L 12,00 becomes one dish with three sizes, not three dishes fighting for the same spot.

  • Add-ons. Toppings or sides printed under a dish come in as add-ons that add to its price, not an orphan item called "Extra cheese".

That decides whether you get a maintainable menu or a list of lookalike rows. A card with four sizes on every pizza is either twelve dishes or forty-eight, and only one of those is still editable next year.

What the import does not read: allergens, diet labels, calories, stories, photos. Be suspicious of any tool claiming to scrape allergens off a printed card and hand them back as fact. That's a legal disclosure, and it belongs to someone who knows the kitchen: allergen labeling on a digital menu.

Confidence scores, and the three tabs

Every dish carries a confidence score, and low-confidence reads go to you rather than being published on trust. A smudged price is a complaint at table six; a smudged price you were asked about is a five-second fix.

Reading runs under "Reading your menu" with a page counter. Then everything lands on a review screen split into three tabs:

  • Needs you— a missing or unclear price, a dish with no section or name, a price of zero, any low-confidence read. Work it until it's empty.

  • Looks good— dishes read cleanly. Skim them; don't audit every line.

  • Set aside— things that shouldn't join the permanent menu: the Tuesday special, the Christmas insert, the wine flight you stopped running.

The split does something quiet: it turns a 120-dish review into a 15-dish one.

The review tools that save the most time

The source photo with the read region marked. Open a dish and a side panel shows the photo it came from, with the region that dish was read from marked. Checking a price is a glance, not a hunt through fourteen pages — and where a read is doubtful, you're asked to confirm you've checked it against that photo.

Duplicate detection. If a dish looks like one already on your menu, you're offered the option to update that dish instead of adding a second copy — which is what keeps you from two Caesar salads at different prices.

Fix several at once. Pick a run of dishes and move them to one section together, or set them aside together. When the AI read your "Sides" column as part of "Mains", that's one action, not eleven.

Card review mode on a phone. One dish at a time, big, with a swipe or tap to approve, set aside, or come back later — owners clear whole tabs standing at the pass.

One messy block, read line by line

Abstractions don't help, so take a real one — a size range, a row of extras, footnote markers and leader dots in four lines. Printed on the card:

SCHNITZEL & PFANNEN

Wiener Schnitzel vom Kalb — klein 16,90 / groß 21,50

paniertes Kalbsschnitzel mit Preiselbeeren und Zitrone, dazu Pommes

oder Bratkartoffeln

Dazu: Spiegelei +2,00 · Champignonrahm +3,50 · Extra Pommes +3,00

Cordon Bleu vom Schwein2, 3 ............................ 18,90

2 = mit Konservierungsstoff · 3 = mit Farbstoff

What arrives, and what you'd fix:

  • The header becomes a section — if it's set bigger or bolder than the names under it. If it isn't, "Schnitzel & Pfannen" lands in "Needs you" as a dish with no price. Set it aside.

  • The size line works better than people expect. klein 16,90 / groß 21,50 arrives as one dish with two sizes, not two lookalikes. Check the two numbers. On Free it comes in as a price range of €16.90–€21.50 instead.

  • The wrapped description is the line to watch. If "oder Bratkartoffeln" turns up as its own row with no price, the wrap was read as a new item — move the text back and set the stray aside.

  • The "Dazu:" line should arrive as three add-ons that add to the price: +€2.00, +€3.50, +€3.00. Check where they landed. If they came in as three dishes instead, set those aside and build one extras group in the library.

  • The footnote markers come along: the name arrives as "Cordon Bleu vom Schwein2, 3" and you strip the digits in the dish editor. The legend at the foot of the card doesn't arrive at all, so retype what it means yourself.

  • The leader dots are where a price can slide. Open the Cordon Bleu and confirm against the marked read region that 18,90 came off that line, not the one above it.

Five checks, two edits, one set-aside, and not one dish retyped. That's the shape of an import: you're proofreading, not producing.

When the read goes wrong, and what to do

None of these are exotic. Each comes from something a printed card does to save space, and each has a fix cheaper than re-shooting the page.

  • One dish split into two rows. A second row named after the tail of the dish above it, usually with no price: a wrapped line read as a new item. It lands in "Needs you". Check the marked read region, move the text back, set the fragment aside.

  • Two dishes merged into one. One row carrying both names under a single price, because tight leading left nothing to cut on. Trim the row back to the first dish and add the second by hand: Basics, Allergens & photo, Choices & extras.

  • A footnote or additive marker stuck to the name."Vorderschinken7, 8", "Schwarz (2)*", printed in the same line at nearly the same size. Strip it in the dish editor. If your card uses numeric additive markers with a legend printed elsewhere, that legend has to be carried over by hand.

  • A decimal comma read as a point, or the reverse. A price that lost its cents, or one an order of magnitude from its neighbors. Sample rather than audit: open five or six odd-looking prices against the read region. The error is systematic, so a clean sample means a clean card.

  • A section header read as a dish, or a dish read as a section. A "Desserts" row with no price, or a run of dishes filed under a section named after one of them. Cards that set headers at the same weight as names give the read nothing to tell them apart. Set a stray header aside; "Fix several at once" moves a misfiled run together.

  • Prices drifting to the wrong row. Every price below a certain line is one dish off. In a far-right column the tie between name and number is weak, and one uneven gap shifts everything after it. It passes as "Looks good," so check adjacency on three dishes spread down the page. If one is off, re-shoot tighter and import again — duplicate detection updates rather than duplicates.

  • A chalkboard, handwriting, or a stylized display font. Nonsense words, missing dishes, most of the page in "Needs you". The read is built for printed cards, and chalk hands it letterforms it can't resolve. Type those dishes in by hand; if the board was one page in a bigger import, the pages that worked are kept.

  • A two-column card read across the columns. Sections alternate: a starter, a dessert, the next starter. The read ran across the page rather than down each column. Photograph a column per frame; a page isn't the unit here. "Fix several at once" repairs one already imported.

Publishing

One confirmation publishes everything marked as looking good: sections that don't exist are created, new dishes added, matched dishes updated in place. Dishes still waiting stay in the import — not lost, not silently published. Publish the clean 90% tonight, handle the awkward ten tomorrow.

Two follow-ups belong in the same sitting. The dish list offers to generate photos for up to 25newly imported dishes at once, the fastest way past the blank-tile problem: AI food photo prompts for restaurants. Then print the code: QR code menus for restaurants.

On a plan without choice groups, sizes become a price range

If your menu has sizes and your plan has no choice groups, the dishes still publish — nothing is dropped. A dish sold in three sizes comes in with a price range, so a guest sees €8.00–€12.00 rather than a size picker.

That's truthful, which is the point. The decision applies to the whole import at once so the menu stays consistent, rather than some pizzas getting a picker and others a range. Afterwards the Dishes page says plainly that sizes were added as a price range, with the count and a link to the plans — and a bulk percentage change moves both ends. If you want the picker, the pricing page has the current lineup.

If the dish limit can't take everything

A plan limit is a ceiling on what you can add, never a switch that removes something. If your import is bigger than the room left, the dishes that fit publish and the rest wait — nothing already live is hidden or deleted. On Free's 40 dishes, a 60-dish import means 40 go live and 20 wait, so if you're going to be selective, be selective before you import.

Big PDFs, failed pages, and several imports

Large PDFs are read in batches rather than one pass, and the consequence is the one that matters: if some pages fail while others succeed, the pages that worked are kept. You don't lose eleven good pages because page twelve was a photo of a chalkboard. Re-shoot the page that didn't land — a retry, not a restart.

Imports are also kept in their own list, newest first, so a drinks list, a lunch card and a dessert menu can each be imported separately. Treat that as the default: every review sitting stays short, and re-importing one card later stays contained.

The first hour after you publish, in order

Everything here wants doing. The order runs from what costs you at the table down to what makes the page nicer.

  • 1. Prices, alone and first. A wrong price is the only import error a guest can argue with you about while holding the menu. Everything below it can wait a day without costing you anything.

  • 2. Section order. The import builds sections in your printed card's order, laid out for a folded sheet rather than a six-inch screen. Eyes land at the top of each section, so first position there is quiet money. Two minutes on the Sections screen, and the best-paid two on this list.

  • 3. The dishes that still need a human. What you set aside, plus anything left in "Needs you". Do it tonight, while you still remember why it's there.

  • 4. Allergens. Until you tag them, every dish reads "Allergens not specified" and sits in a separate "Allergen info not provided" group. Honest, and also where a guest filtering for nuts closes the page. Start with what you sell most.

  • 5. Photos. Appetite rather than correctness, which is why it's fifth. Photos lift orders on the dish that has one, most of all on dishes a guest doesn't recognize — and the batch offer is sitting right there on the dish list.

  • 6. Translation, last. A language is only offered to guests once half the dish names are translated into it, so it's a threshold rather than a slope. Every run made before the wording settles is a run you'll make again: a multilingual menu for tourists.

The temptation is to do photos first, because photos are the fun part. But a beautiful tile on a dish priced two euros too low is still a dish priced two euros too low.

The spreadsheet route is a different tool

If you already keep your menu in a spreadsheet, don't photograph a printout of it. A separate import starts from the Dishes page and solves a different problem.

  • Download the template. An Excel file with seven fixed columns for sections and dishes. Fixed means fixed — fill it in, don't restructure it.

  • Fill it in and upload. Up to10 MB, prices as plain numbers like 12.50 — no currency symbols, no text in the price column.

  • Read the preview. Before anything is written you see how many dishes will be added, updated and skipped, with a sample of old and new prices — where you catch a decimal comma that should be a point.

  • Apply. The whole thing is written in one go.

The matching rule is worth memorizing. A row whose section and dish name both match an existing dish updates that dish in place. Any other row adds a new dish, and a section name that doesn't exist yet creates the section. So a typo in a section name doesn't update your fries — it quietly creates a second section, which is exactly what the preview shows you.

And the part that makes it safe for seasonal price work: the spreadsheet import never touches allergens, photos, choice groups or translations. The evening you spent tagging the 14 EU allergens, the photos you generated, the size group attached to every pizza, the German and French dish names — none of it moves when you push new prices through.

So: starting from paper or a designer's PDF, use the photo import. Maintaining prices in a menu you keep in Excel, use the spreadsheet. To see the finished article first, the live demo menu is one you can poke at.

Which import should I use?

Three tools, and picking the wrong one costs you an evening. The cases that actually come up:

  • Starting from a printed card. Photo import, no argument. Photographing what you already print is the whole point.

  • Starting from a designer's PDF. Photo import — but feed it the PDF itself, not a photo of the printout. No glare, no curve, no shadow: the best input the read ever gets, 12 pages at a time.

  • You keep the menu in Excel. Spreadsheet import, and don't print it out to photograph it. Move your columns into the seven-column template and read the preview.

  • You're changing 40 prices. Spreadsheet, every time. The preview shows old against new before a row is written, and allergens, photos, choice groups and translations stay untouched. Same percentage across a whole section? Skip both — the Dishes page does bulk percentage changes.

  • You're adding three new dishes. By hand. Building a spreadsheet for three rows takes longer than typing them, and each dish is live the moment you save.

  • A chalkboard that changes weekly. By hand, then lean on the sold-out switch. Re-shooting a board every Monday is a losing routine; enter the dishes once and run the week one tap at a time.

  • A second location with a similar menu. Neither import. On Multi, adding a location offers to copy another location's sections, dishes and choice groups with their translations. Importing the same card twice throws away work you already did.

While you're cleaning up the text the import produced, how to write menu descriptions that sell is the companion piece — the import captures what's printed, not what converts.

Common mistakes with a menu import

  • Photographing a spread instead of a page. Halves your resolution where the small print lives.

  • Shooting a laminated card under a spotlight. The glare lands on the price column.

  • Skipping the "Needs you" tab. Leaving those dishes is choosing to publish a guess.

  • Importing everything at once. Three small imports review faster than one big one.

Import your menu free with Intermenu

Intermenu does the typing: upload five photos or a PDF, watch it read, review what it wasn't sure about, publish. Then tag your allergens, add photos, translate it, and put a QR code on the table.

One location, 40 dishes and two languages are free — no card, no time limit, and photo import on every plan.

Turn your printed menu into a digital one with Intermenu →

Frequently Asked Questions

Do I have to retype my whole menu?
No. Upload photos or a PDF of the menu you already print, and the sections, dish names, descriptions and prices are drafted for you. Your time goes into reviewing what the AI flagged.

What file types and sizes can I upload?
JPG, PNG, WebP and PDF, five files per import. A PDF can have 12 pages and one import 16 — all checked before anything uploads.

Does the import read allergens off my printed menu?
No. It captures section, name, description and price. Allergen and diet tagging is a separate step you do yourself — the honest way to handle a disclosure guests filter on.

What happens to dishes the AI wasn't sure about?
They go to the "Needs you" tab: missing or unclear prices, dishes with no section or name, prices of zero, low-confidence reads. They wait there until you deal with them.

My menu has sizes but my plan has no choice groups. What happens?
The dishes still publish. Sizes come in as a price range, so guests see something like €8.00–€12.00, applied across the whole import so the menu stays consistent.

One dish came in as two rows. How do I fix it?
The extra row usually has no price, so it's waiting in "Needs you". Check it against the marked read region, move the text back into the real dish's description, and set the fragment aside.

Can I import the same menu card twice?
Yes. Imports are kept in their own list, and duplicate detection offers to update an existing dish instead of adding a second copy — which is what makes re-shooting a page that read badly a safe move.

Should I use the spreadsheet import instead?
Use it if you maintain your menu in Excel, especially for price updates. Download the seven-column template, fill it in, upload up to 10 MB, check the preview. It never touches allergens, photos, choice groups or translations.

Written by

Ibrahim Anjro

Founder & Business Developer

+10 years of exp in Business Development