Aligning Double-Sided Cards in Spite of Cricut Design Space
August 8, 2026
cricut
printing
pdf
automation
Cricut Design Space is the required software to use when interacting with a Cricut device. It is also one of the most infuriating, piece of shit softwares I have ever had the necessity to use.
Most of what makes it awful is a licensing decision rather than a technical one. A Cricut is a stepper-driven gantry with a tool head on it. That is a CNC machine. Nearly every other machine in that class — mills, routers, 3D printers, most desktop lasers — speaks some dialect of G-code, which means you can drive it from whatever software you prefer, or from a file you generated yourself. Cricut instead ships a proprietary protocol, an account requirement, and a cloud round-trip for a device sitting eighteen inches from your hands. There is no engineering reason a blade on a gantry needs to phone home before it moves three inches to the left.
The lock-in is the whole point, and they have been fairly open about it. In March 2021 they announced that anyone without a subscription would be capped at twenty uploads of their own artwork per month, and only reversed it after several days of very loud backlash. That is the posture of a company that knows you cannot take your machine elsewhere. The software is as bad as it is because it has never had to be better.
Anyway. Here is one specific way it is broken, and the workaround I ended up being forced to build.
The Registration Marks Are Not Where They Say They Are#
“Print Then Cut” is the feature for producing a custom graphic design in two steps: you print the artwork on a normal printer first, then feed that sheet into the Cricut to cut it out. Since the machine has no idea what your printer did with the page, the two steps have to be tied together somehow.
That job falls to the registration marks. “Print Then Cut” prints your design inside a rectangle of black marks, and the machine’s sensor sweeps the sheet, finds them, and uses them to figure out where the artwork actually landed on the paper. The cut lines then get placed relative to the marks rather than relative to the mat, which is what makes the cuts line up with the printing.
For a sticker sheet this is fine. The mark box only has to be findable. Where it sits on the page is irrelevant, because nothing else has to agree with it.
For a double-sided card it is the entire problem. The intended workflow is straightforward enough: lay out the front, mirror the layout along the vertical axis, then design the back into the mirrored positions so that each back panel sits behind its own front panel once the sheet is turned over.
Design Space will happily show you a registration placeholder on the canvas while you do this, and the placeholder does not move when you mirror. This is a lie. What actually gets sent to the printer is not what the canvas promised — the mark box is positioned as a function of the design, and a mirrored layout is, as far as that positioning is concerned, a different design. So the marks move. Not just horizontally, which you might at least expect from a horizontal mirror, but vertically too.
From my experience, any unused space to the left or the top of the image appears to be silently stripped before the reference marks get added. The image, regardless of where you actually placed it on the page, seems to end up aligned against the left and top alignment markers during printing and exporting. Whatever position you set on the canvas is not carried through.
You end up with a front sheet whose marks sit at one place on the page and a back sheet whose marks sit somewhere else, and no indication anywhere in the UI that this has happened.
Why A Small Offset Becomes A Big One#
The part that took me an embarrassingly long time to internalize is that this error does not stay the size it started at.
Say the front’s mark box sits 2mm right of the page center. Print it, flip the sheet over, print the back. If the back’s mark box also sits 2mm right of center on its own page, then flipping has carried it to 2mm left of where the front’s is. The two sides are now 4mm apart, from an offset that was 2mm on either sheet individually and completely invisible if you only ever looked at one side at a time.
The ratio holds in practice, and quite precisely. Leaving even 1mm of slack between the edge of the artwork and the registration block was enough to produce roughly 2mm of misalignment in the duplexed output.
That also points fairly directly at the mechanism. If the mark box tracks the extent of the design, then the room it has to wander is bounded by the room you leave it. Spreading the layout across almost the full width of the page does measurably help, and the horizontal drift dropped to nearly nothing when I did that.
It is not a fix, though. Running the design that close to the paper’s edge means it starts to clip, because getting the alignment perfect enough to survive a 1mm margin is not something this pipeline can actually do. Widening the layout also does nothing for the vertical drift, which is free to move regardless. The choice on offer is between cards that are misaligned and cards that are cropped.
Taken to its logical end, this suggests drawing an explicit bounding box out to the margins and letting that pin the marks in place. I never tried it. A large rectangle of ink on every single sheet has an obvious cost, and it would eat into the usable area of the page as well, since everything inside it has to shrink to make room. It seemed better to leave the layout alone and fix the file after Design Space had finished with it.
Anything off-center on a duplex sheet is off by twice as much once you turn the page over. Center each side against the page and the two sides register against each other for free.
That second sentence is the useful half, and it is a better deal than filling the page. There is no need to measure the front against the back, or to work out what Design Space did to your marks this time. Centering is an absolute target. Two sheets that are each centered on the same page size are, necessarily, aligned to each other — and because the target is the page rather than the paper’s edge, you can keep a sane margin around the artwork instead of racing it into the clip zone.
The Workaround#
The short version:
- Design the front in Design Space as usual.
- Mirror the layout along the vertical axis, then design the back into it.
- Print — but not from Design Space. Use the system print dialog and print to a PDF instead.
- Run both PDFs through an alignment pass that centers each one on its registration marks.
- Print the corrected PDFs natively from your computer, again not through Design Space. Flip the page in the tray for the back, or use duplex mode if your printer will take the stock (unlikely on anything card-weight).
- Go back to Design Space for the cut, and click the “I’ve already printed” button.
Step three is what makes the rest possible. Design Space’s own print path hands the job straight to the printer and gives you nothing to inspect or correct. Printing to a PDF gets you an artifact you can measure, and by that point the marks are already baked in — whatever Design Space decided to do, it has finished doing it.
duplex-align#
Step four is a small tool I wrote called duplex-align. It takes the sheets, measures where the marks actually are, and writes corrected copies with the mark box centered on the media box.
$ duplex-align "front.pdf" "back.pdf"
front.pdf
page 612.00 x 792.00 pt (8.50 x 11.00 in)
mark box 514.259 pt x 710.789 pt
margins L 39.001 pt R 58.741 pt
T 39.001 pt B 42.210 pt
imbalance horizontal 19.740 pt OFF-CENTRE
vertical 3.210 pt OFF-CENTRE
to centre dx 9.870 pt dy -1.605 pt
That 19.74pt horizontal imbalance is about 7mm, on a sheet that looked perfectly fine in the Design Space canvas. Doubled across the flip, it is most of a centimeter.
Mechanically it rasterizes the page, walks the per-column and per-row ink coverage to find the outermost ink on each of the four sides, and centers that box. It measures coverage rather than thresholding to black and white, which matters more than it sounds like it should — a mark edge that half-covers its pixel reads as half coverage, so the edge resolves to a fraction of a pixel instead of rounding to a whole one. On real artwork that is worth roughly a quarter-point, which is about the margin between two sides registering and not.
The correction itself is deliberately boring. It prepends one cm operator and wraps the existing content in q/Q, so page objects, color management, and embedded images are all untouched and nothing gets re-encoded. The output is a few hundred bytes larger than the input rather than a re-render. Then every corrected file is re-rasterized and re-measured, and the residual imbalance is reported as PASS or FAIL, because I did not want to take the tool’s own arithmetic on faith.
It also writes proofs. The per-sheet ones tell you each side is centered, which is not quite the same claim as the two sides meeting, so it additionally superimposes them into a registration overlay — front tinted blue, back tinted red and mirrored, multiplied together. Corner marks that register merge to solid purple. Marks that miss show up as a blue arm sitting next to a red one. It is a much faster read than a column of numbers.
Everything lands in ./corrected/ and ./proofs/, never beside the source file, specifically so that you cannot grab the wrong one out of a print dialog at eleven at night. There is a --check flag that measures and writes nothing if you just want to know how bad it is.
What It Does Not Fix#
Worth being clear about the limits, because a few of these bit me before I understood them.
It cannot fix your printer. Centered files come out with well under a tenth of a millimeter of front-to-back drift, and then an office duplexer will cheerfully add one or two millimeters of its own. Print dialogs set to “Fit to Printable Area” are worse, and will quietly shrink the page by around 4%. If you want to know which problem you have, duplex a PDF carrying the same page on both sides — any offset there is entirely mechanical, because the content is identical.
It cannot fix a size difference either. If the front and back mark boxes are not the same size, no amount of shifting will make them agree, and the fix has to happen in the source artwork. The tool reports the discrepancy but will not pretend to solve it.
It centers the outermost ink on the page, which is the registration marks right up until it isn’t. On a design that bleeds past the marks, it will dutifully center the bleed. Look at the proofs.
And it is macOS only at the moment, since the rasterizing goes through CoreGraphics. Moving that to pypdfium2 and numpy would make it portable and delete a Swift helper in the process. I haven’t done it because I use a Mac and haven’t needed to, though I may expand it for wider compatibility at some point.
Conclusion#
None of this should be necessary. A cutting machine that spoke G-code, or even one whose software placed its own registration marks somewhere deterministic, would make the entire post unnecessary. Cricut has instead built a walled garden around a device that is, underneath, a fairly ordinary two-axis gantry, and the quality of the software inside that garden reflects exactly how much competitive pressure it faces.
But the cards come out right now, which was the actual goal. If you have been trying to do double-sided “Print Then Cut” and blaming your printer or your own layout, it is very likely neither.
Hopefully this works out for you, or was at least helpful. If you have any questions, don’t hesitate to shoot me an email, or follow me on twitter @nrmitchi.