I think I've isolated one cause of "We're sorry, an error occurred while preparing this print"

The plot is quite thick, as it turns out. I’ve been experimenting to try to find what is and isn’t supported, and some things are quite baffling. I started with a simple SVG:

<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1in" height="1.208in" viewBox="0 0 72 87">
  <title>logo</title>
  <image width="72" height="87" xlink:href="data:image/png;base64,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"/>
</svg>

Then I tried adding various transform attributes to it.

  • transform="scale(0.5)" works
  • transform="translate(50 50)" works
  • transform="rotate(-45)" works (!)
  • transform="rotate(-180)" fails (?!)
  • transform="skewX(45)" works (seriously!)
  • transform="translate(50 50) rotate(-45) skewX(45) scale(0.5)" also works
  • transform="matrix(-1, 0, 0, 1, 72, 0)" fails
  • transform="matrix(0.5 0 0 0.5 0 0)" (equivalent of scale(0.5)) works (!!)

When I say works or fails, by the way, I mean at the printing stage. All of these load successfully into the GFUI, and after you click print it does the scanning thing for a while, goes to “Preparing your design”, and only then does it spit out an error, if it’s going to.

Just for fun, I applied the “fails” transforms to a simple vector rectangle, and they all worked, including the matrix flip.

So what is unsupported seems to be specific to images, and specific to some deeper aspect of the transform, not simply "we don’t reject matrix()".

My brain hurts.

11 Likes