# Printexam > Printexam is a JSON format and browser renderer for printable exams. Create a valid exam document, encode it in a render URL, and open or return that URL. ## Guides - [Create an exam](/create.md): Required workflow, minimal document, complete validated example, and authoring rules. - [Components and blocks](/components.md): Every supported document component and exercise block with canonical JSON. - [Content formatting](/format.md): Safe HTML, fill-in-the-blank markers, word banks, plain text, and KaTeX input. - [Render and print](/render.md): UTF-8 Base64 URL encoding, print mode, JavaScript examples, privacy, and errors. ## Schema - [Exam JSON Schema](/schema.json): Authoritative machine-readable validation contract. When prose and schema disagree, follow the schema. ## Agent workflow 1. Read the user request without adding unstated questions, answers, scores, or student data. 2. Read the relevant guides above. 3. Build one complete exam document. Give the exam and every nested item a unique, non-empty string `id`. 4. Include all properties shown by the schema, including properties with documented defaults. Never add unknown properties. 5. Validate the final document against `/schema.json`. 6. Encode the validated document exactly as described in `/render.md`. 7. Return the render URL. Use print mode only when the user asks to print or save as PDF.