How to check a large canvas

2 min readAug 25, 2022

In Illustrator, the document canvas was limited to 227 × 227 inches. Since version 24.2 (СС 2020), you can create a document in large canvas mode, where the working area is 100 times larger (2270 × 2270 inches).

Illustrator will automatically create an artboard on a large canvas

The large canvas mode in the Illustrator interface scales all sizes by a factor of 10. Two years later, the scripts have no methods for checking the canvas mode and still count all sizes at what they think is a “real” 1:10 scale. What the user sees in the app interface and gets in the script does not match.

Dimensions in 1:10 scale

Simple solution

The app.activeDocument.scaleFactor attribute, which returns the scale factor, has been added to global document variables since CC 2020: 1 — normal canvas, 10 — large. We’ll use this factor to calculate the size of artboards, objects.

Checking the canvas mode and recalc the visible dimensions
var coeff = app.activeDocument.scaleFactor ? app.activeDocument.scaleFactor : 1;
var width = selection[0].width;
width *= coeff;

The ternary operator is needed to make the script compatible with Illustrator CC 2019 and below, where there was no large canvas mode. scaleFactor will return undefined and assign 1 to the coefficient.

More info

New versions of Adobe Illustrator write a comment into the document structure containing the canvas scale value %AI24_LargeCanvasScale: 1 — normal canvas, 10 — large canvas. If there were no global variable, we could find the scaling factor this way. Notes:

  • if the document was created in an earlier version, it will not have %AI24_LargeCanvasScale
  • the new document must be saved before running the script
function isLargeCnvs(doc) {
var $file = File(doc.fullName),
str = '';
while (!$file.eof) {
str = $file.readln();
if (/^%AI24_LargeCanvasScale/.test(str)) {
var ratio = (/\d+$/).exec(str)[0];
return ratio == '10';
return false;
var isLarge = isLargeCnvs(activeDocument);
var width = selection[0].width;
width *= isLarge ? 10 : 1;

As you can see, the alternative solution is more complicated and because of the need to save the document is not universal.




Sergey Osokin. Product Illustrator, Icon Designer, Script Developer (Ai, Ps). Writing about bugs and tricks in Adobe Illustrator scripts