Skip to content
Site volume
Colourway

Generators

Posters and one-pagers

A3 and Tabloid posters and A4 and Letter one-pagers as tagged PDFs, printed by Chromium from the site's own print routes.

  • Experimental
Import from@maxgrits/overprint-generators/pdf
On this page

A poster prints the cover's art window large, one display title with its second ink, the facts as numerals and a footer with the mark and the edition, with registration targets in the margins. A one-pager is a reading sheet: the title, then the story in two thirds and the art and facts in one third, ending on the literal action "Get a quote at makrlabs.dev/contact". Both are React server components laid out in millimetres; the PDF is Chromium's print of the page, tagged and with its fonts embedded.

When to use#

  • A poster for a launch, a case study on a wall, a print run.
  • A one-pager to send after a call or to leave on a table: one case study or one service.

Live sheets, scaled down. Each links to its print route; add &bleed=3 to a poster for 3 mm of bleed with crop marks outside the trim.

  • Poster, A3, Fernlight (a printed photo)

  • Poster, Tabloid, Pebblepath (the project plate)

  • One-pager, A4, Fernlight case study

  • One-pager, Letter, Pebblepath service

Inputs#

OnePagerInput
FieldTypeRequiredDefaultLimits
kind"case" | "service"YesNoneNone
sheet"a4" | "letter"YesNoneNone
titlestringYesNone≥ 1 chars, ≤ 60 chars
kickerstringNoNone≤ 90 chars
line"k" | "r" | "a" | "m" | "wood"YesNoneNone
summarystringYesNone≥ 1 chars; at most 90 words
sectionsobject[]YesNone≤ 3 items; head at most 6 words, body at most 60 words
factsobject[]NoNone≤ 4 items
coverobjectNoNoneNone
editionintegerNoNone≥ 1, ≤ 999
lookobjectNoNoneNone

<PosterSheet> takes sheet (a3 or tabloid), a cover, a title of at most 60 characters fitted on two lines, an optional kicker, facts, edition, look and bleed.

How makrlabs.dev calls it#

next build && next start
overprint-gen pdf --base http://localhost:3000 --config overprint.print.json --out public/print

overprint.print.json lists [{ "route": "/print/poster/fernlight", "sheet": "a3", "out": "fernlight-a3.pdf" }]. The route renders the sheet, writes the sheet's @page, and sets html[data-mk-print-ready="true"] once fonts and images have decoded; the CLI waits for it, prints with backgrounds, tags the PDF and checks the 8 MB budget.

For a document that is not a site route, htmlToPdf(html, { sheet, assets, out }) serves it from a private address on your Mac and prints it through the same core.

The print check#

The first PDF run proved the pipeline (40 §1.6): Anybody at width 76 and 122 from the variable files embeds (as Type 3 outlines with the instance in their names, text still selectable), multiply overprints stay multiply, and a 72 dpi raster of the PDF matches a print-media screenshot except for antialiasing along edges. The static font instances embed as TrueType when a printer needs real font programs.

Rules#

  • Body copy is Schibsted (D-D7); one display moment per sheet.
  • Status and action words stay literal (D-I2).
  • Backgrounds print exactly (print-color-adjust: exact); no PDF over 8 MB.