DEV Community

PackForge Industries
PackForge Industries

Posted on

GSM to Kilograms: Work Out Copier Paper Weight per Ream in Python

Ordering paper for an office is easier when you know what a carton weighs before it arrives. The GSM printed on the ream (grams per square metre) is all you need to work it out.

The formula

weight of one sheet = GSM x sheet area (m²)

A4 is 210 x 297 mm, so one sheet is 0.21 x 0.297 = 0.06237 m². A3 is exactly twice that.

SIZES_M2 = {"A4": 0.210 * 0.297, "A3": 0.297 * 0.420}

def ream_kg(gsm, size="A4", sheets=500):
    return gsm * SIZES_M2[size] * sheets / 1000

for gsm in (70, 75, 80):
    print(gsm, "GSM A4 ream:", round(ream_kg(gsm), 2), "kg")
Enter fullscreen mode Exit fullscreen mode

Output:

70 GSM A4 ream: 2.18 kg
75 GSM A4 ream: 2.34 kg
80 GSM A4 ream: 2.49 kg
Enter fullscreen mode Exit fullscreen mode

An 80 GSM A3 ream comes to about 4.99 kg.

Cartons

Paper usually ships in cartons of 5 or 10 reams:

def carton_kg(gsm, reams, size="A4"):
    return ream_kg(gsm, size) * reams

print(round(carton_kg(80, 5), 1))   # 12.5
print(round(carton_kg(80, 10), 1))  # 24.9
Enter fullscreen mode Exit fullscreen mode

That is paper only; the carton itself adds a little more.

How many reams a month?

def reams_per_month(pages_per_day, working_days=26):
    return pages_per_day * working_days / 500

print(round(reams_per_month(400), 1))  # 20.8 -> order 21 reams
Enter fullscreen mode Exit fullscreen mode

Picking a GSM

As a rough guide, 70 GSM is lighter and cheaper per sheet and works for internal drafts, while 80 GSM is stiffer and less see-through, so it suits double-sided printing and documents that go to customers. 75 GSM sits in between.

PackForge supplies A4, A3 and legal-size copier paper in 70, 75 and 80 GSM, by the ream of 500 sheets or in cartons of 5 or 10 reams: Printing and copier paper.

Top comments (0)