User guide

How to use MagLab: lay out designs on sheets, calibrate your printer, print exactly to size, make address labels and print shop orders automatically.

MagLab lays out your designs on sheets, prints them at exactly the right size and, with MagLab Pro, prints your shop’s orders by itself. This guide follows the order you’ll usually need it in.

Keyboard shortcuts are shown for Mac. On Windows and Linux, use Ctrl for ⌘ and Alt for ⌥.

1. Your first sheet (2 minutes)

The layout screen has three parts: your photos on the left, the sheet in the middle, and settings for whatever you’ve selected on the right.

For a guided look round, choose a tour under Show me around on Home or in Help: Getting around, Laying out sheets and The Designer. MagLab offers each one the first time you open its screen.

  1. Click Layout and choose what you’re making, then pick a template, for example 2.25” Button or Rectangle 2.5 × 3.5”. (Home → New layout and ⌘N open the same list.)
  2. Drop photos onto the sheet. Drop a photo onto a shape to put it exactly there, or anywhere else to fill the next empty shapes.
  3. In the Photos list on the left, set how many of each you need with − and +, then press Auto-fill. MagLab adds more sheets if it needs them.
  4. Click a shape to select it, then drag to move the photo inside it, or hold ⌥ and scroll to zoom. The panel on the right rotates, flips and fits the photo, and adds text.
  5. Print (⌘P). MagLab prints at exact size and corrects for your printer automatically once you’ve calibrated it.

Tip: put the quantity in the file name, such as sunset_x9.jpg, sunset qty9.jpg or 9x sunset.jpg, and MagLab reads it for you.

MagLab saves your layout as you go, and recent layouts are on Home. Save (⌘S) also writes a project file you can keep or move to another computer. Export (⌘E) makes a PDF, a PNG or a cut file instead of printing.

Change the template as you go: click Edit next to the template’s name in the right-hand panel. The template opens in the Designer; make your changes (a logo, a header, different sizes) and click Done to come back to your layout with them. Photos stay in their shapes, and keep their crop unless their shape changed size. Photos from shapes you removed move to the first empty shapes. Done also saves the template in your library (a built-in template is saved as your own copy). The back arrow returns without the changes.

Products: sheets you sell again and again

A product is a layout saved to print again whenever it sells, for example a sheet of stickers with twelve different designs, or two sheets of a magnet set. Several products can use the same template.

  • Save one: lay the sheets out, then click Save as product in the toolbar. Give it a name and, if you like, a SKU or code (what your shop calls it).
  • Print one: open Templates → Products and click the product. It opens as a new layout, ready to print (set the number of copies when printing). Changing it there doesn’t change the product until you choose Product → Update the product with these sheets in the toolbar, or Save as a new product….
  • Your template changes apply: a product prints on the library’s current version of its template, so a logo or header added in the Designer appears on every product that uses it.
  • Automation prints them too: a Shopify product or variant can print a product’s sheets, once for each one ordered (choose it in the Design column). Order feeds, webhooks, hot folders and the local API can name a product by its name or SKU. See Automation.

Moving things around

To… Do this
Swap two shapes’ photos Drag a filled shape onto another
Copy a photo to another shape Hold ⌥ while dropping
Fill this sheet’s empty shapes with one photo Double-click the photo in the Photos list, or right-click it → Fill empty slots on this sheet
Select several shapes ⇧-click or ⌘-click them, or ⌘A for all
Nudge a photo inside its shape Arrow keys (hold ⇧ for bigger steps)
Turn a photo 90° R (⇧R turns it the other way)
Empty the selected shapes Delete
Undo or redo ⌘Z or ⇧⌘Z

Photo colour

Select a photo and open Colour in the right-hand panel to change its brightness, contrast and saturation. Use these colours for every photo in this job copies the settings to the rest. To adjust every photo a template prints, including automated orders, use the template’s Photo colour correction in the Designer.

Resolution warnings

An amber ! on a shape means the photo has too few pixels to print sharply at that size: under 200 dpi (dots per inch) by default, which you can change in Settings. Select the shape to see its exact resolution in the right-hand panel.

2. Text, names and address labels

  • One-off text: select shapes and type in Text in the right-hand panel. On round shapes, Arc top and Arc bottom curve the text around the edge. On pin-back buttons, text stays inside the visible face automatically.
  • A list of names or addresses: open the Text & labels tab (next to Photos) → Paste list, with a blank line between entries. Each entry goes on its own label.
  • A spreadsheet: Text & labels → Spreadsheet → Import CSV. Shops such as Shopify and Etsy, and spreadsheet apps, can all save a CSV file.
    • MagLab guesses an address layout from the column names. To change it, edit the layout: {{Column}} stands for a column’s value, and clicking a column’s name inserts it.
    • Lines that come out empty are left out, so a missing “Address 2” doesn’t leave a gap.
  • Text settings belong to the shape: select a shape and choose its font, size, colour and where the text sits (Left / Centre / Right, Top / Middle / Bottom) under Text in the right-hand panel. They stay with that shape on every sheet, through Place all and Fill empty, and in new layouts, products and automated orders printed with the template. With a built-in template they stay in that layout only. Use this style for all text gives every shape of the template the same style.

3. Templates

A template is the sheet layout: the paper size and the size and position of every shape.

Built-in templates

Button templates list both the finished face and the cut circle: a 2¼” button needs a 2⅝” circle of paper to wrap around the shell. Cut sizes vary slightly between button makers (American Button Machines, Tecre, Badge-A-Minit and others), so check your press’s instructions. To adjust one, choose Customise a copy in Templates, or change Pin-back button size in the Designer.

The Designer

  • Automatic or by hand: the switch at the top of the right-hand panel (with nothing selected). Automatic fills the sheet with shapes from the settings below it. By hand, every shape stays where you put it. Adding, dragging or resizing a shape switches to By hand, and MagLab says so with a Back to automatic button; the bar under the sheet shows it too. Switching back restores the automatic layout as it was.
  • Shape and size: type sizes in any unit. 2 5/8, 2-5/8", 66.7mm and 3in - 1/8 all work.
  • Arrangement:
    • Grid lines shapes up in rows and columns. Nested rows offsets every other row, which usually fits 10–20% more circles.
    • Optimise tries every arrangement and rotation and lists them by how many fit.
    • A spacing of 0 gives shared cut lines: one cut with a trimmer separates two rows.
  • Guides:
    • Bleed extends the artwork past the cut line, so a slightly-off cut doesn’t leave a white edge.
    • Face and safe zone show what will be visible on a button.
  • Pictures, text & lines print the same picture, text or lines on every sheet. Add them with Picture and Text in the toolbar, or in the panel on the left:
    • Every sheet: placed from the page’s top-left corner, such as a header reading Order {$reference} · page {$page} of {$pages}.
    • Every shape: placed from each shape’s top-left corner and repeated by every shape, or only by shapes with a photo or text. Use negative values to go above or left of the shape. Set the rotation to 180° for text on a flap that folds behind a magnet.
    • Pictures such as your logo or a mascot: PNG (transparency is kept), JPEG, WebP, GIF or SVG. Drop a picture file on a shape to put it on every shape, or elsewhere on the sheet to print it once per sheet. A picture prints on top of photos and text, or behind them with Behind photos and text (lower its opacity for a watermark). The picture is saved inside the template, so it goes with exported templates, saved layouts and automated jobs. MagLab warns when a picture is too small for the size it prints at.
    • Click any picture, text or line on the sheet to select it, and drag it to move it, like a shape. It snaps to the grid, and to the middle of the page or shape, with a red guide line; hold ⌥ to move it freely. Drag a picture’s corner to resize it (hold ⇧ to stretch it), and a line’s ends to reshape it. Double-click text to edit it. Arrow keys nudge, ⌘D duplicates and ⌫ deletes, as for shapes. Moving pictures and text never switches off the automatic grid.
    • A logo beside an address: put the picture on every shape at the left of the label, then click Keep text clear of it. It sets the Left indent of the template’s Default text style, so addresses start beside the logo.
    • Words in braces are filled in when the sheet prints: {$reference}, {$page}, {$slot} (the shape’s number), {$order} (the order a shape is for, when orders share a sheet), {$date} and, for automated orders, any order detail such as {customer.name}. The Designer previews order details as ‹field›. The API reference has the full list.
  • Default text style: the size, padding, left/right indents and placement (across and down) of text and address labels in the template’s shapes. To place one shape’s text differently, such as an address box with its text at the top left, select the shape and choose Text across and Text down under Text on the right.
  • Photo colour correction adjusts every photo printed with the template, on top of each photo’s own colour settings. For example, add saturation and contrast for magnets under a clear film.
  • Cut lines → Lines between columns/rows draws full-length lines through the middle of each gap: one straight trimmer cut per line.
  • By hand: dragging or resizing a shape switches off the automatic layout.
    • Shapes snap to a 1/32” (or 0.5 mm) grid; hold ⌥ to move them freely.
    • Drag the handles on a selected shape’s corners and sides to resize it; the opposite side stays put. Hold ⇧ to keep its proportions. Circles stay round, and turned shapes resize along their own sides.
    • Double-click the sheet to add a shape. Select several to align or space them evenly.
  • The bar at the bottom checks the template as you work: shapes that overlap, run off the page, or reach into the edges your printer can’t print (once you’ve recorded them while calibrating).
  • Export saves the template as:
    • a MagLab template (.mltpl) to share or back up
    • a PDF or SVG template with guides
    • a Transparent PNG guide overlay to design on in Canva
    • a Cut file (SVG) for Cricut, Silhouette or a laser cutter
    • Print & cut marks adds Silhouette registration marks to every sheet (see Die-cut stickers)

Importing templates you already have

Templates → Import, or drag files onto the template library:

  • .mltpl: MagLab templates.
  • SVG: circles, ellipses, rectangles (including rounded and rotated ones), polygons and paths come in at their real size. Canva’s 816 × 1056 px pages are recognised as US Letter.
  • PDF, PNG or JPG: for example a blank template downloaded from Canva. MagLab finds every shape to cut, recognises rounded corners and button face rings, and rounds sizes to clean fractions. It works out the paper size from the image’s proportions or resolution.

Always check an imported template in the Designer before printing a big batch.

Die-cut stickers

A die-cut sticker’s cut line follows its design, with an even border round it (white unless you choose another colour). Start one from Die-cut stickers under Start a layout, or choose the Die-cut shape in the Designer.

  • Designs: use PNGs with a transparent background, and the cut follows the edge of what’s there. A design on a plain background (white, or any single colour) works too: the background is left out. A photo with neither is cut round its edge, as a rounded rectangle, and the sticker’s Sticker panel says so. Holes inside a design are filled, and pieces close together become one sticker.
  • Cut line: select a sticker to fix its cut in the Sticker panel. With Cut out a gap, click a gap inside the design, such as the middle of a donut, to cut it out (the border runs round the inside too), and click it again to fill it back in. With Pick background, click the background when MagLab didn’t find it, and move Background match if too much or too little is cut away. Back to automatic undoes all of this. It applies to every copy of the design.
  • Packed sheets: each sheet is packed with its own stickers, as tightly as their outlines allow, keeping the template’s space between cut lines and turning stickers to fit. Turn stickers to fit (in the right-hand panel with nothing selected, or in the Designer) chooses how: Never, 90°, 45° or Any (every 15°, slowest). With 45°, MagLab packs with quarter turns too and keeps whichever fits more, so a diamond or a design drawn at a slant can turn to sit square and pack tighter; when turning doesn’t help, the sheets come out as they would with 90°. Auto-fill packs every design × its quantity, larger ones first, and fills gaps with smaller ones. Dropping designs on a sheet adds them to the room that’s left.
  • Sizes: the template sets the largest a sticker can be (its longest side, border included). Give a design its own size in the photo bin before Auto-fill, or select a sticker on the sheet and change its Size; the sheet is packed again. Rotate a sticker the same way. Re-pack sheets (in the right-hand panel with nothing selected) packs every sheet again, for example after removing stickers.
  • Border and bleed: set the border’s width and colour in the Designer (None cuts round the design itself). The border colour carries on past the cut line by the template’s bleed, so a cut that’s slightly off doesn’t show paper. Select a sticker for Its own border colour.
  • Grids of die-cut stickers: with Grid or Nested rows instead of Packed, or shapes placed by hand, each shape is the largest box a sticker can fill. Use this for a sheet laid out the same way every time.
  • Cutting them out:
    • By hand, or with a scanning cutter: leave Cut lines → Outline on to print the line round every sticker.
    • Cut file: Export → Cut file saves each sheet’s cut lines as SVG, or DXF for Silhouette Studio’s Basic Edition, which can’t open SVG. Every sheet is different, so each gets its own file. Print the sheets from MagLab, then cut them with that sheet’s file.
    • Silhouette print & cut: turn on Print & cut marks → Silhouette registration marks in the Designer. MagLab prints them on every sheet and keeps stickers clear of them. In Silhouette Studio, turn registration marks on with the same inset, length and thickness, open the sheet’s cut file, and send it to cut.
    • Cricut Print Then Cut: Export → Cricut saves every different sticker as a transparent PNG, cut to shape with its border. Upload them to Design Space as Print Then Cut images. Each file’s name gives its size and how many you need (dog 63.5x48.2mm x3.png): set that width in Design Space.
    • A print shop’s cutter: in the PDF export choose Cut lines as → Spot colour (CutContour). The cut lines are drawn in a CutContour spot colour that cutting software (Roland VersaWorks, Summa, Mimaki, Graphtec and others) cuts along and doesn’t print. Change its name in the right-hand panel if the shop uses another. Automations can save their PDF copies this way, for a print shop’s hot folder.
  • Check the size of your first cut against the sheet before cutting a big batch, as your cutter’s software may need its own settings to match.

4. Calibrate your printer (once per printer and paper size)

Printers rarely put ink exactly where the file says. They’re typically 0.3–1% too big or small and 0.5–2 mm off-centre, which is enough to put a cut line through your artwork. Calibrating measures this so MagLab can correct it.

  1. Calibrate → New calibration. Choose the printer and paper.
  2. Print sheet, at 100% or Actual size. Never use “Fit to page” or borderless printing.
  3. Let the ink dry, then measure with a steel ruler marked in millimetres:
    • Line X and Line Y: from crosshair A to the tick at the end of each line
    • Edge X: from the left edge of the paper to the vertical line
    • Edge Y: from the top edge of the paper to the horizontal line
  4. Optionally, turn on Record unprintable margins and read the rulers printed along each edge: enter the smallest number whose line actually printed. MagLab then warns you when a template reaches into areas your printer can’t print.
  5. Print check sheet. Its square should measure exactly 100 mm, and its lines should be 20 mm from the edges. If anything is still slightly out, adjust it with the nudge buttons (0.1 mm steps) and print another. Then Save calibration.

From then on, the correction is applied whenever you print to that printer on that paper size. Calibrate again if you change paper type, paper tray or printer driver.

5. Automation (Pro)

Automation is part of MagLab Pro, and of the free trial. With MagLab Standard you can still set everything up: jobs wait in the queue and print once you upgrade (Settings → Subscription → Upgrade to Pro).

Automation keeps running with the window closed: MagLab stays in the menu bar on a Mac, or the system tray on Windows and Linux. For an always-on print station, turn on Settings → Open MagLab when I log in.

Hot folders

A hot folder is a folder MagLab watches: whatever you save into it is laid out and printed. Automate → Hot folders → Add hot folder, then choose the folder, the template, and whether to print, save a PDF copy or both.

You drop… MagLab…
photo.jpg Lays out one copy
photo_x9.jpg Lays out nine, when How many of each photo? is set to From the file name
photo.jpg and photo.json containing {"quantity": 6, "text": "Max"} Lays out six with the text, when How many of each photo? is set to From a .json sidecar
orders.csv Makes one label per row. A column called Quantity, Qty, Copies or Count sets how many of each.
order-1042.json in the API’s job format Prints exactly that job. An item can be a saved product: {"product": "Cat stickers", "quantity": 2}
  • When to print: Each file right away, When a sheet is full, or After files stop arriving (best for batches).
  • After printing: Move to Processed / Failed moves each file into a Processed or Failed folder inside the hot folder, sorted by date. Leave in place (remember them) leaves files where they are, and MagLab remembers which ones it has printed.
  • For a folder on another computer or a network drive (NAS), tick Network drive / NAS (check by polling). Those folders don’t always tell MagLab when a file arrives.

Shopify

MagLab can print your Shopify orders by itself. It checks your shop for paid orders every minute and prints your customers’ photos, or your own designs for products you sell ready-made. Orders go straight from Shopify to your computer, and orders placed while your computer was off print when MagLab starts again.

You need: for products made from customers’ photos, a photo upload app on your product page, so customers can upload their photos. Choose one that saves a link to each photo on the order (ask the app’s support team if you’re not sure). For products with ready-made designs, you only need the design files.

Step 1: make an app for MagLab in Shopify (once per shop). Open Automate → Shopify in MagLab and click Open Shopify’s Dev Dashboard, then:

  1. Sign in with the login you use for your shop.
  2. Click Create app (choose Start from Dev Dashboard if it asks), and fill in the three fields below. MagLab shows each with a copy button. Leave everything else as it is, and click Create app.
    • App name: MagLab
    • App URL: https://shopify.dev/apps/default-app-home. MagLab never opens inside Shopify, and this is Shopify’s own default page for apps like it.
    • Scopes: read_orders,write_orders,read_products
  3. Once the app is created, open Overview and click Install app. Choose your store and click Install.
  4. Open App settings and copy the app’s Client ID and Client secret.

Step 2: connect. Back in Automate → Shopify, enter your shop’s address (it ends in .myshopify.com), paste the Client ID and Client secret, choose the Default template your photos print on, and click Connect.

From then on:

  • Every paid order with photos or a product design comes into Automate → Print queue. A new shop starts with Print automatically off, so your printer doesn’t start without warning: orders wait on hold until you print them (one at a time, or Print all) or switch Print automatically on in the shop’s Output. Switching it on prints everything that was on hold, and every order after that prints by itself. Each photo prints once for every pack bought.
  • Paid orders placed before you connected that haven’t been sent yet wait in Automate → Print queue as backlog. They don’t print by themselves: print or skip each one, or use Print all or Skip all.
  • Printed orders get the tag maglab-printed in Shopify, so you can see what has printed and nothing prints twice.
  • Each product appears under Templates after its first order. It prints on the Default template until you give it a template of its own, or set it to Don’t print. To choose templates before products are ordered, click Sync products from Shopify to list every active product in your shop, or type one product’s name under Add a product, exactly as it appears in Shopify (capitals don’t matter). Syncing again adds new products and keeps your settings for the rest. Changing the default changes every product still set to it. Products are recognised by name, so a renamed product appears as a new one. Products without photos or a design, such as gift cards, are never printed.
  • Designs: for products you sell ready-made (magnets, stickers or cards with your own designs), click Choose… in a product’s Design column and pick A picture for one design file, or one of your saved products to print its whole sheets. Each one ordered prints the design on the product’s template, or the saved product’s sheets on the saved product’s own template. Saved products’ sheets are whole sheets, so with Print several orders on the same sheets they print without waiting for other orders. If a customer uploads photos for that product, their photos print instead. To give variants (sizes, colours) their own design or template, click Set up a variant or N variants under the product. A variant set to Same as the product uses the product’s template, and a variant without a design of its own uses the product’s design. Sync products from Shopify lists every product’s variants too. Variants are recognised by name, like products.
  • Sharing sheets: switch on Print several orders on the same sheets so sheets aren’t printed half empty. Orders then wait in Automate → Print queue and print together when a sheet is full (Print as soon as there’s a full sheet), at the times you add under Print everything waiting at, or when you click Print now. You can use both: full sheets print as they fill, and whatever is left prints at, say, 16:00 before the post goes. With full sheets only, an order can be split: the rest of it prints with the next full sheet, and its address label prints with its last part. Each order is marked as printed in Shopify once all of it has printed. Every shape gets its order number next to it, below the shape if there’s room, otherwise beside it. If there’s no gap between shapes, the sheet lists its orders with their shape numbers in its widest margin instead (shapes are numbered in the order the sheet fills). To place order numbers yourself, add Text by every shape with {$order} in the template’s Pictures, text & lines. Address labels on shared sheets print together too.
  • Address labels: switch on Also print an address label for each order, choose a label template, and choose whether labels print (on a label printer next to your photo printer, say), save as a PDF in a folder you choose, or both. Saving PDFs with printing switched off is a handy way to check labels before printing any. Each label comes from the order’s shipping address and prints with the order’s photos, so an order prints completely or not at all. Orders with no shipping address, such as collections, print without one.
  • Check now looks for new orders straight away.
  • Edit connection changes the shop address or the app’s codes, for example to fix a typo. MagLab checks them with Shopify before saving. The Client secret shows as dots: click the eye next to it to see it.
  • The Client secret is kept in MagLab’s settings, and in settings backups. If a shop says to enter its Client secret again (shops connected on a Mac or Windows PC with MagLab 1.0.7 to 1.0.9 kept it in the system keychain), copy it from App settings in the Dev Dashboard and paste it in with Edit connection.
  • Connect another shop adds more shops, each with its own templates and printer, so shops that sell different things can print differently. Make a MagLab app for each shop.

If MagLab says it doesn’t have permission, or can’t mark orders as printed, Shopify hasn’t granted the app’s scopes to your shop yet. In the Dev Dashboard, check that Scopes says read_orders,write_orders,read_products and click Release. Then uninstall the MagLab app in your Shopify admin (Settings → Apps) and install it again from the Dev Dashboard: Shopify only grants changed scopes on a fresh install. Then click Connect or Check now again. read_products is only needed for Sync products from Shopify: orders print without it. If it says Shopify won’t let this app connect, make sure you created the app while signed in as the shop’s owner, and installed it on the same shop. If it says the app isn’t approved to read orders, reinstall it the same way: an app you make for your own shop is approved automatically. If it says Shopify didn’t share shipping addresses for labels, check your Shopify plan: Shopify may only share customers’ names and addresses with apps like this on the Grow plan or higher. On Grow or higher, reinstall the app the same way. If an error persists, it ends with Shopify’s own words and a request id, which Shopify support can look up.

Connecting other shops: local API, webhooks and order feeds

There are three more ways for orders to reach MagLab. The API reference has the details.

  • Order feeds: MagLab checks your website for new orders every couple of minutes (you choose how often) and prints them. Nothing on the internet needs to reach your computer, so this is the simplest way to connect a website you control. After printing an order, MagLab can tell your website it’s done.
  • Incoming webhooks: your shop (Shopify, WooCommerce and others) sends each new order to MagLab, and you tell MagLab which details hold the photo, quantity and text.
  • Local API: other programs, such as a script or your till system, send print jobs to MagLab.

Webhooks arrive through the local API, so both need it turned on and need MagLab to be reachable. On your own network, turn on Allow other computers on my network in Automate → Local API. For services on the internet, such as Zapier or Make, you also need a tunnel: a service such as Cloudflare Tunnel or ngrok that gives MagLab a secure public web address.

Orders that don’t print, and orders sent twice. An order with nothing to print, such as one for a product without photos, is skipped and noted in Activity; MagLab still tells the shop it arrived, so the shop doesn’t keep resending it or switch the webhook off. If the shop sends the same order again (shops resend when MagLab is slow to answer), it prints only once. To test with the same order again, click Forget received orders in the webhook’s settings.

Several documents per order. In an order feed or incoming webhook, Also print for each order adds more documents, such as an address label on a label printer alongside the photo sheet on your inkjet. MagLab downloads and lays out everything first, and checks that every printer is there before printing anything, so an order prints completely or not at all. If a printer stops part-way, Retry prints only what didn’t print.

Photo downloads refused. If downloads fail with Download refused (403), the site hosting the photos is probably blocking downloads that don’t come from your shop. Add a header under Photo download headers, for example Referer: https://your-shop.example/.

The Print queue shows every job with its progress, and lets you retry or cancel jobs and open their PDFs.

Working hours

Working hours choose when automation may print. Use them to keep the printer quiet while you sleep, or to print the day’s orders overnight while the shop is shut. Click Working hours at the top of Automate, switch on Only print automatically during working hours, and choose the days and times.

  • Start from fills in common hours: Daytime (08:00–22:00 every day), Overnight (22:00–07:00 every night) or Weekdays (09:00–17:00, Monday to Friday). Change the days and times to suit you.
  • Hours that end earlier than they start, such as 22:00–07:00, run past midnight into the next morning. The days you tick are the days they start on, so Friday 22:00–07:00 ends on Saturday morning.
  • Add more hours sets different hours on some days, such as 09:00–17:00 on weekdays and 10:00–14:00 on Saturdays, or a break in the middle of the day.
  • Times follow your computer’s clock, including summer time.

Working hours apply to every automation: Shopify, hot folders, the local API, webhooks and order feeds. Outside working hours, orders still arrive and wait in Automate → Print queue. The queue says how many are waiting and when they’ll print, and they print in the order they arrived when working hours start. A job that has started printing finishes, even if working hours end while it prints. Jobs that only save a PDF don’t wait.

Anything you print yourself from the Print queue prints straight away, even outside working hours: Print now on a waiting job (or on all of them), Retry, Print again, and printing Shopify orders that are on hold or from the backlog. Switching a shop’s Print automatically on is different: its orders on hold then print during working hours, like new orders. For Shopify shops that share sheets, sheets that are ready outside working hours (full, or at a set time) wait in the Print queue until working hours start.

Programs sending jobs through the local API can add "ignoreWorkingHours": true to a job that needs to print straight away, such as an order from a customer waiting in the shop.

Back up or move your automation settings

Automate → Backup → Export settings… saves a .mlauto file with your Shopify connections, order feeds, webhooks, hot folders, local API settings and working hours, plus the templates, product designs and saved products they use. It also contains the passwords and keys from those settings, including Shopify Client secrets, so keep it private.

Backup → Import settings… loads that file on this or another computer. It replaces the current automation settings and adds any templates you don’t have yet. Everything arrives switched off: check the printer names and folder paths, then switch each one on. You can choose whether the order feeds and webhooks remember the orders they’ve already received. Keep them when restoring a computer; drop them if the file comes from a computer you were only testing on.

Settings survive updates, so you don’t need this to install a new version. It’s handy for backups, a replacement computer, or setting everything up on a fast computer before moving it to a Raspberry Pi.

6. Raspberry Pi print station

A Raspberry Pi next to your printer makes a small, always-on, low-power MagLab print station for hot folders, the local API and order feeds.

You need: a Raspberry Pi 5 with 4–8 GB of memory (a Pi 4 with 4 GB works, but more slowly), 64-bit Raspberry Pi OS with desktop (Bookworm or newer), and a printer that works on Linux. Most Epson EcoTank printers work with the standard printer-driver-escpr package.

  1. Add your printer: Preferences → Print Settings → Add. Print a test page from there first.

  2. Install MagLab: download the Raspberry Pi installer (the file ending _arm64.deb) from MagLab’s download page. Then open a terminal in the folder you saved it to and run:

    sudo apt install ./MagLab_*_arm64.deb
  3. Calibrate the printer from the Pi (Calibrate → New calibration), the same as on a computer. Calibration belongs to the computer that prints.

  4. Set up automation (a hot folder, the local API or an order feed), then turn on Settings → Open MagLab when I log in.

  5. Run it without a screen:

    • In Raspberry Pi Configuration → System, set Boot to To desktop and turn Auto login on. MagLab needs the desktop running to prepare sheets, even with no screen attached.
    • Turn on VNC under Interfaces, so you can see and control the Pi from your Mac or PC with a VNC viewer app.
  6. To use the Pi’s hot folder from other computers, share the folder over your network (Raspberry Pi OS can do this with Samba) and tick Network drive / NAS (check by polling) for it. Or send jobs to the Pi’s local API with Allow other computers on my network turned on.

A Pi takes a few seconds to prepare each sheet rather than a fraction of a second. That’s fine for automated printing, but designing templates is quicker on a computer.

If MagLab opens to a blank window on Linux, start it once from a terminal with:

WEBKIT_DISABLE_COMPOSITING_MODE=1 maglab

If that fixes it, please tell us your board and system version.

7. Your subscription

  • The free trial starts the first time you open MagLab and includes everything in MagLab Pro. Templates, layouts, products and automation settings you make or export during the trial remember when it started, so opening them on another computer (say, moving from your laptop to a print station) carries on the same trial rather than starting a new one. Once you’ve activated MagLab, your exports carry no trial date.
  • To activate, paste the licence key from your purchase email into Settings → Subscription and click Activate.
  • To move to a new computer, choose Deactivate this computer in Settings → Subscription on the old one (or remove it from your account page), then activate the new one with the same key.
  • Changing plan sends you a new licence key by email. Paste it into Settings → Subscription.
  • Working offline: MagLab checks your licence about once a day when it’s online. Offline, it keeps working for 7 days, then reminds you for another 7 before printing and export pause.
  • If your subscription ends, you can still open and design layouts and templates. Printing, export and automation pause until you renew, and nothing you made is lost.
  • New versions: when there’s a new version of MagLab, a message says so, with a Download button that opens the download page. Install the new version over the old one (on a Raspberry Pi, with sudo apt install as above): your templates, layouts and settings are kept. The message comes once for each version, and again a week later if MagLab still hasn’t been updated; until then Settings → About shows the new version too. MagLab looks for new versions on the MagLab website when it starts and twice a day, and sends nothing about you or your work. Switch it off with Settings → Tell me about new versions, and look yourself with Check for updates in Settings → About.

8. Troubleshooting

Still stuck? Click Help in the sidebar to open this guide or to email us a question, a problem or an idea for a feature. MagLab fills in the email for you, and can add its version and your printer names so we can help faster.

Problem Fix
Prints are slightly too big or small You printed from another app with “Fit to page”, or the printer isn’t calibrated. Print from MagLab and calibrate.
Everything is a few millimetres off Calibrate (it measures how far off the printer is), and check the paper guides in the tray are snug.
Shapes near the edge are cut off Your printer can’t print that close to the edge. Record its margins while calibrating, then move shapes inwards in the Designer.
HEIC photos from an iPhone won’t import On a Mac they’re converted automatically. On Windows and Linux, save them as JPEG first.
A hot folder doesn’t react Check it in Automate → Hot folders: a red badge shows the problem. For network folders, turn on polling.
Orders arrive but don’t print Check the badge at the top of Automate. Paused means automation is paused: click Resume. Outside working hours means jobs wait until working hours start; click Print now in the Print queue to print them anyway.
The local API says the port is in use Another program is using port 5719. Choose a different port in Automate → Local API.
A printer is missing Click the refresh button next to the printer list. If it’s still missing, add the printer in your computer’s printer settings first.