Skip to main content

CompilePDF — the only writer in the Print With Synergy stack. Rewrite, marks, impose, and trap producers built on top of codex-pdf.

Project description

compile-pdf

CompilePDF — the only writer in the Print With Synergy stack.

Four producers under one Python package, four FastAPI services in one Railway project, one Redis-backed Celery broker, one S3-compatible object bucket.

Producer Purpose
compile_pdf.rewrite OCG flips, metadata patches, color-space swaps, hygiene strips, page lifecycle ops on a single PDF
compile_pdf.marks Register / crop / color-bar / fold marks; 1-up proofing slugs; external mark template ingestion
compile_pdf.impose Sheet-level step-and-repeat layout; work-and-turn / tumble; bleed handling
compile_pdf.trap Ink-pair spread / choke trap with three engine slots (pure_python / ghostscript / external)

Architectural invariants (mechanically enforced by scripts/consume_surface_audit.py):

  • CompilePDF is the only writer in the stack.
  • codex-pdf stays read-only — its produce_surface_audit.py enforces.
  • Every producer consumes Codex primitives through published surfaces; re-implementation is forbidden.
  • Every producer emits deterministic bytes; same input + same plan + same engine fingerprint → same SHA-256 output.

Status

compile-pdf 0.5.1 on PyPI, built against codex-pdf 1.8.1. All four producers (rewrite, marks, impose, trap) are live, the CJD orchestrator + lineage store are wired, and retention-for-training is opt-in per request. See CHANGELOG.md for the release log and docs/ for operator + integrator documentation.

Install

pip install compile-pdf

For producers that need geometry primitives (marks, impose, trap):

pip install 'compile-pdf[geom]'

For the trap producer with Ghostscript engine fallback:

pip install 'compile-pdf[geom,trap-gs]'

CLI

compile-pdf rewrite  --plan plan.json     input.pdf output.pdf
compile-pdf marks    --template tmpl.json input.pdf output.pdf
compile-pdf impose   --layout layout.json input.pdf output.pdf
compile-pdf trap     --policy policy.json input.pdf output.pdf

compile-pdf version
compile-pdf contract
compile-pdf health
compile-pdf cjd apply <job.json|job.xml>
compile-pdf lineage <id> [--chain]

Opting in to retention-for-training

Every producer endpoint (and the CJD orchestrator) accepts an explicit opt-in signal that retains the call's inputs and outputs for engine training. Off by default; engaged per-request.

curl -X POST $COMPILE_BASE/v1/rewrite/apply \
  -H "X-Compile-Retain-For-Training: true" \
  -H "X-Compile-Tenant: acme-co" \
  -H "Content-Type: application/json" \
  --data-binary @request.json

Operators wire it up by setting COMPILE_RETAIN_BUCKET and friends (see docs/operations/retention.md). With no bucket configured the consent header is parsed and logged but nothing is written.

CLI defaults to local-mode (in-process) when COMPILE_API_BASE is unset; otherwise POSTs to the configured central or sidecar URL.

Docs

License

AGPL-3.0-or-later. See LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

compile_pdf-0.5.2.tar.gz (267.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

compile_pdf-0.5.2-py3-none-any.whl (121.3 kB view details)

Uploaded Python 3

File details

Details for the file compile_pdf-0.5.2.tar.gz.

File metadata

  • Download URL: compile_pdf-0.5.2.tar.gz
  • Upload date:
  • Size: 267.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.17

File hashes

Hashes for compile_pdf-0.5.2.tar.gz
Algorithm Hash digest
SHA256 e5dc9e7272ddf82db11b2f7908cfdabd5a68763ba79ebe3686b61f031981049a
MD5 4e6eb6a6d00896d6cb6d67e6059705cd
BLAKE2b-256 c8f596ce9c00d739c6e7492950f5f2e7e48e9434af99151a5f1c533f1b2cc454

See more details on using hashes here.

File details

Details for the file compile_pdf-0.5.2-py3-none-any.whl.

File metadata

File hashes

Hashes for compile_pdf-0.5.2-py3-none-any.whl
Algorithm Hash digest
SHA256 fefbf744cf071795e4417d945a66387f9363d43e6bd0da9b0a71c9205cf1263c
MD5 208c4946f34bd6602b0446927dd98870
BLAKE2b-256 8a1a779e36224a03aa534bcea904c9a1d16c4fcb6e5d4820ef804a3e53612f64

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page