nowfound

AI · June 10, 2026

PP

Papermill Press – An AI-friendly markup language for PDF generation

If you’ve generated PDFs from HTML, you’ll know the pain: headless Chrome in Docker, CSS hacks, content that flows over pages or table boundaries and other quality issues. The fundamental problem is that HTML was designed for screens, not print. We built Press, a markup-based document language where pages, content flows, and assets are first-class concepts. Content can flow across frames, columns, and pages without manual pagination. Pages are created dynamically based on the available content. Press templates separate layout from content. You can send markdown, Press markup, or a mixture of…

Alternativestop 4% of June 2026

In plain words

Papermill Press is a markup-based document language designed for PDF generation that treats pages, content flows, and assets as core concepts. Unlike HTML-based approaches, it handles content flowing across pages, columns, and frames automatically without manual pagination. Users can submit markdown, Press markup, or mixtures of both via API, with data in JSON, CSV, or XML formats. The XML-based structure makes it suitable for AI agents and automation workflows, with templates that separate layout from content.

written from the facts on this page · September 2026

From the sources

In the maker’s words, at launch

If you’ve generated PDFs from HTML, you’ll know the pain: headless Chrome in Docker, CSS hacks, content that flows over pages or table boundaries and other quality issues. The fundamental problem is that HTML was designed for screens, not print. We built Press, a markup-based document language where pages, content flows, and assets are first-class concepts. Content can flow across frames, columns, and pages without manual pagination. Pages are created dynamically based on the available content. Press templates separate layout from content. You can send markdown, Press markup, or a mixture of both to the API. Data can be sent in JSON, CSV, XML. Because Press is XML-based it can easily be generated by agents - some of our users are generating complete documents in a single shot, although the language is designed for repeatable automation. You can also use our MCP server, which enables models to design templates. A simple API call sends a markdown payload, which is injected into a <flows><body>…<&#x2F;body><&#x2F;flows> element in Press: curl -X POST https:&#x2F;&#x2F;api.papermill.io&#x2F;v2&#x2F;pdf?template_id=papermill-modern-report \ -H "Authorization: Bearer $PAPERMILL_API_KEY" \ -H "Content-Type: text&#x2F;markdown" \ --data-binary @- \ -o report.pdf <<'EOF' # Q3 Revenue Summary Quarterly performance across our core product lines. | Product | Revenue | Growth | |----------|----------|--------| | Platform | £482,000 | +18% | | Add-ons | £124,000 | +42% | | Services | £67,000 | -3% | Strong quarter overall, driven by add-on adoption. EOF PDF output: https:&#x2F;&#x2F;mill.pm&#x2F;hn Pages and frames in Press can declare dependencies on a content flow like the <body> above. By default, if there’s no content in the flow then the frame or page won’t be generated. You can run flows between frames and pages, and combine multiple flows on a page - for example, a sidebar can run across pages until no content is left, then make room for body content. This makes it possible to implement complex layouts. You can mix markdown and Press: # Visualisation Sometimes it's *useful* to mix both markdown and Press: <visualization>...<&#x2F;visualization> The typesetter adapts to dynamic content (e.g. LLM output). For example, tables and columns can be automatically sized and Papermill will even auto-rotate a table and its page to fit if needed. Templates support components, repeating over data, document logic, and conditional styling. We mostly use an inline-styling approach, and provide the concept of a style “alias”, which is a bag of styling properties you can reuse and compose. Here’s an example template written in Press, our document language. It uses the first page layout until the sidebar flow is exhausted, then switches to the second: <press> <document format="A4" page-margin="2cm"> <repeat flow="sidebar"> <page> <frame direction="row"> <frame padding-left="1cm" padding-right="1cm"><flow name="body" &#x2F;><&#x2F;frame> <frame width="20%" background-color="#f5f5f5" padding="0.5cm" font-size="9pt"><flow name="sidebar" &#x2F;><&#x2F;frame> <&#x2F;frame> <&#x2F;page> <&#x2F;repeat> <repeat flow="body"> <page><flow name="body" width="fill" &#x2F;><&#x2F;page> <&#x2F;repeat> <&#x2F;document> <flows> <body type="markdown"><lipsum paragraphs="10" &#x2F;><&#x2F;body> <sidebar type="markdown"><lipsum paragraphs="3" &#x2F;><&#x2F;sidebar> <&#x2F;flows> <&#x2F;press> Papermill is a paid API with a free tier. Press is the document language. Try it for free: https:&#x2F;&#x2F;app.papermill.io&#x2F;signup (no credit card needed) Docs including MCP setup: https:&#x2F;&#x2F;docs.papermill.io Data-only sandbox: https:&#x2F;&#x2F;app.papermill.io&#x2F;demo.html (no email needed) We're a small team based in Manchester, UK. Tom (CTO) and I are happy to answer questions about the language design, the rendering engine, or anything else!

More ai this month

the category →
  • I trained a 125M-parameter transformer to autocomplete piano performances in real time (~108 notes&#x2F;sec on an iPhone 15). The idea is basically GitHub Copilot or Tabnine, except instead of prompting it with code, you prompt it by playing a few notes on a MIDI piano. The model then continues what you played, entirely on-device. The app is free if anyone wants to try it. Happy to answer questions about the model, training, Core ML, or the many things that didn't work.

    AI · 17d ago · simedw.com

  • Astute585

    Automate your B2B brand going viral, with new media creators

    AI · 18d ago · company-app.joinastute.com

  • Grok Bot547

    AI teammates that you can give real work to

    AI · 25d ago · x.ai

  • Hey HN, Henry from Cactus here! We previously released Cactus Needle, a 14MB agentic LLM for tool call, device use, and structured extraction for phones, wearables, smart homes, small robots and microcontrollers. We got really great feedback here, and have now incorporated the suggestions to release Needle 2. The whole model is a single 14MB binary that runs a full session in 28MB of RAM; 45m parameters at 2bit compression. Needle hits 500 tokens&#x2F;sec decode speed on a Raspberry Pi 5, sits between 400-1,500 tokens&#x2F;sec on VR devices like Meta Quest 3S and Apple Vision Pro, and ranges…

    AI · 27d ago · cactuscompute.com

  • Make your software self-driving

    AI · 30d ago · coldtea.ai

  • Soloop472

    Approval-first Agent OS for solo founders

    AI · 30d ago · soloop.io

Launched alongside, June 2026

the whole month →
  • Fundraisly1,544

    AI fundraising agent that finds investors and books meetings

    AI · Jun 2026 · fundraisly.com

  • H6

    Today, I’m proud to announce Homebrew 6.0.0. The most significant changes since 5.1.0 are a new tap trust security mechanism, the new faster, smaller, default internal Homebrew JSON API, sandboxing on Linux, better defaults informed by our user survey, many brew bundle improvements, improved performance and initial support for macOS 27 (Golden Gate). Happy to discuss any questions here!

    Dev tools · Jun 2026 · brew.sh

  • PU

    hope you enjoy

    Life & fun · Jun 2026 · vorpus.github.io

  • Upstream977

    The inbox designed for humans and agents

    AI · Jun 2026 · upstream.do

  • Goldfish962

    Press Option. It knows your work and replies like you

    AI · Jun 2026 · goldfish.sh

  • IM

    Life & fun · Jun 2026 · hackernewstrends.com