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.5.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.5-py3-none-any.whl (121.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: compile_pdf-0.5.5.tar.gz
  • Upload date:
  • Size: 267.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for compile_pdf-0.5.5.tar.gz
Algorithm Hash digest
SHA256 60270eaae7fc24628d739a7a9386223841be06faccb246e61af22db8501b6cfb
MD5 8af6ef63a096aa6996b9d47f2575e940
BLAKE2b-256 bb4b5b0ae73c91c161d032d5748bd4ad0c0d4166a83bda03341bde6c2a54b0f6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: compile_pdf-0.5.5-py3-none-any.whl
  • Upload date:
  • Size: 121.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for compile_pdf-0.5.5-py3-none-any.whl
Algorithm Hash digest
SHA256 c0fc4ca4d5622f8c44baf61ed33d94da99fc0940ce281876d2274efcb94d190a
MD5 2873b763e6f14da051b5e4bc927c7038
BLAKE2b-256 7aa506ea8b2c91b8f369cb51a4a7f11abe13cf63aacbc37a4782dcb33da835e9

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