How these projects were selected

  • Clear licenses and maintained repos or normative specs.
  • Agent relevance: CLI, APIs, skills/MCP, or deterministic batch builds.
  • Delivery vs ingestion separated (reading PDF ≠ shipping PDF).

At a glance

ProjectLicensePrimary outputAgent-friendly?Determinism notes
K2FApache 2.0PDF, DOCX, PPTX, IDML, .K2FSkill + MCP stdioLock; PDF pixel-identical; Office exports slight reflow
PandocGPLMany via filtersCLI in CITemplate-dependent
TypstApache 2.0PDFCLIStrong when compiler pinned
LaTeX / TeX LiveLPPL / mixedPDFMature automationPin TeX year
QuartoGPLPDF, HTML, DOCX, …R/Python/JupyterReproducible envs
WeasyPrintBSDPDF from HTML/CSSPython APICSS pagination quirks
MarpMITHTML/PDF slidesCLINo native PPTX
SlidevMITHTML/PDF slides (dev)CLI + VueNo native PPTX
python-docx / python-pptxMITDOCX / PPTXLibrariesYou own OOXML
ReportLabBSDPDFPython libraryProgrammatic PDF
DoclingMIT (verify repo)Structured text from PDFPipelinesIngestion only
MarkerGPL (verify repo)Markdown from PDFPipelinesIngestion only
OpenCodeMITCode reposTerminal agentPair with K2F for docs

Markup and typesetting

Typst, LaTeX, Quarto

  • Typst: fast PDF for new developer reports (typst.app).
  • LaTeX: academic and publisher norms; agent edits to .tex need care.
  • Quarto: scientific multi-format from Markdown/Rmd.

Conversion

Pandoc

  • Graph between markup families; DOCX via reference.docx.
  • Limitations: Complex layout = your template problem.

PDF delivery (generate)

WeasyPrint, ReportLab, Typst/LaTeX

  • Choose based on whether your source is HTML, Python, or markup.

PDF ingestion (read—for agents, not publish)

Docling and Marker

  • Docling (docling-project): PDF → structured content for LLM workflows.
  • Marker: PDF → markdown for analysis pipelines.
  • Do not use these as substitutes for K2F/Typst/lock-based publish when you need a golden layout artifact.

Slides from text

Marp and Slidev

  • Marp: Markdown → slides (HTML/PDF).
  • Slidev (sli.dev): developer slide decks in Vue ecosystem.
  • Limitations: Neither is a native PPTX compiler—export via other tools if PowerPoint is required.

Programmatic Office libraries

python-docx and python-pptx

  • Build or patch OOXML in code—common in agent scripts.
  • Limitations: No cross-format lock or pack_verify story.

Semantic packages and verify gates

K2F

  • Agents edit semantic JSON; engine compiles render lock; viewers/exports paint the lock (exporting overview).
  • PDF: pixel-identical to lock; AcroForm from form_field nodes.
  • DOCX/PPTX/IDML: lock drawings; slight reflow allowed; no Word content controls; exports are not sources (*_IS_NOT_A_SOURCE).
  • Agent skill + optional integrity signatures.

Agent harness (not a document format)

OpenCode

Pipelines readers actually build

  1. Academic PDF: Agent → Quarto/LaTeX → PDF → human proofread.
  2. Investor pack: Agent → K2F → PDF + PPTX + optional IDML package (Document Fonts/).
  3. Ops DOCX: Agent → Markdown → Pandoc → DOCX with reference.docx.
  4. RAG on PDFs: Docling/Marker → text → LLM; separate publish step via K2F or Typst.
  5. Open agent + open compiler: OpenCode → K2F skill → verified exports.

When K2F fits vs another OSS tool

  • K2F: stable node IDs, multi-format lock exports, pack_verify, integrity banners.
  • Typst/LaTeX/Quarto: PDF-first cultures; no built-in DOCX/IDML lock story.
  • Pandoc: conversion glue with template maintenance.
  • Docling/Marker: consume PDFs, do not deliver them.
  • OpenCode + K2F: avoid locking both agent and compiler to one SaaS.

Docs · Compare · GitHub

Sources & freshness

ProjectLast verifiedSource
K2F exporting2026-09k2f/docs/guide/exporting*.md
OpenCode2026-09github.com/anomalyco/opencode
Docling2026-09github.com/docling-project/docling
Typst, Slidev2026-09typst.app, sli.dev

This roundup is based on publicly available information at the time of writing. Capabilities, pricing, and policies may change; verify details with the relevant provider.