Thank you for this suggestion. The documentation for ImageSize in the Mathematica documentation says it uses PrintersPoint as its units in a couple of places, and later it says pixels, which is confusing. Assuming PrintersPoint is the correct unit, when I run the following code, I expected a 10 cm radius circle:
Graphics[Circle[{0, 0}, 10], Axes -> True,
ImageSize -> 20* (72/2.54), PlotRangePadding -> None, Ticks -> None]
having set Magnification->1 in the Global options, and in the Front End, and in the Printer Page Setup, with the FrontEnd ScreenEnvironment->Printout. I get instead a circle of radius 5 cm on my iMac (1920x1080) screen, and of radius 7.2 cm on a printout from a HP LaserJet Pro. This result suggested trying a different interpretation for ImageSize, and the following code produced my desired test result:
r = 10; (* desired circle radius *)
Graphics[Circle[{0, 0}, r], Axes -> True,
ImageSize -> 2*r* 39.3701,
PlotRangePadding -> None, Ticks -> None] (* ImageSize is a scaling factor times twice the radius *)
which prints (most of) a 10 cm radius circle on my printer. The scaling factor of 39.3701 happens to be the number of inches per meter. Why is this needed here - I don't know, but it gives the right answer. Anyone got an explanation for why this works ?