# DOCX Export

> Render the MGT4897 report from Markdown to a submission-ready DOCX and PDF in the Clean Technical Document standard — A4, 1-inch margins, centred black title, dark teal

- Skill: `faaz17/docx-export` (Agent Skill, multi-file: 5 files)
- Install (CLI): `npx skillmds@latest add faaz17/docx-export`
- Raw SKILL.md: https://api.skillmd.com/api/skills/faaz17/docx-export/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- Author: Faaz17 (https://skillmd.com/u/faaz17)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/faaz17/docx-export

---


# Document export — Clean Technical Document standard

## The standard

| Element | Specification |
|---|---|
| Page size | **A4** *(deviation from the standard's US Letter default — this is a UK university submission; A4 is expected)* |
| Margins | 1 inch (2.54 cm) all round |
| Body font | Calibri 11pt, 1.5 line spacing |
| Title | Centred, black, bold, 20pt, on the cover page |
| Headings | Dark teal `#0F4761`, **sentence case** — "Capacity gap analysis", not "Capacity Gap Analysis" |
| H1 / H2 / H3 | 16pt / 13pt / 11.5pt bold, all in `#0F4761` |
| Section transitions | Plain. **No decorative horizontal rules** after sections |
| Tables | Complete thin grey `#7F7F7F` borders around **every** cell — all four sides, including interior gridlines |
| Table headers | Bold, minimal shading only |
| Page breaks | Real Word page breaks. **Never** emit `\newpage`, `---`, or any visible layout command |
| Numbering | Page numbers in the footer, centred |

Sentence case on headings is the detail most often missed.

## What this report specifically needs

The brief mandates a **cover page** and a **table of contents**. Both sit outside the word
count. The cover page carries:

- Report title
- "Prepared for: the Chief Operating Officer, Dubai International Airport"
- Student name and student ID
- Module: MGT4897 Global Operations Management
- Submission date: 4 September 2026
- Word count

## Running the export

    py .claude/skills/docx-export/scripts/md_to_docx.py 01-Report/report.md \
       -o "04-Exports/Surname_MGT4897_Report.docx" \
       --title "DXB capacity and location strategy to 2036" \
       --author "<Student Name>" \
       --subtitle "MGT4897 Global Operations Management" \
       --date "4 September 2026" \
       --toc

Options:

    --title "Report title"         Cover page heading
    --author "Student Name"        Cover page author line
    --subtitle "Module"            Cover page subtitle
    --date "4 September 2026"      Submission date
    --no-title-page                Skip the cover page (for section drafts)
    --toc                          Insert a Table of Contents field — required here

The script reads GitHub-flavoured Markdown: ATX headings, paragraphs, bullet and numbered
lists, pipe tables, bold/italic inline, and `<!-- pagebreak -->` for an explicit page break.

**The table of contents is a Word field.** It appears empty until Word populates it: open the
DOCX, select the TOC, and press F9 (or right-click → Update Field). Do this before exporting
the PDF or the contents page ships blank.

## Excel figures

Charts come out of `02-Analysis/DXB-Calculations.xlsx`, not out of the Markdown. Paste them
into the DOCX after export as **Picture (Enhanced Metafile)**, add a numbered caption, and
make sure the main text refers to each one. See the `excel-deliverables` skill.

Because figures are added after the Markdown export, **re-adding them is a manual step every
time the document is re-rendered.** Do the prose edits in Markdown, render, then add figures
once, late. Never hand-edit prose in the DOCX — the next export overwrites it.

## Mandatory PDF inspection

The standard requires rendering the PDF and inspecting **every page**. Check for:

- Blank pages
- Clipped or overflowing table columns — the weighted factor table is wide and is the usual
  offender
- Overlapping text or figures
- **Visible source commands** — any stray `\newpage`, `---`, `|---|`, `#`, `**`, or other
  Markdown that leaked through
- Broken page flow — a heading orphaned at the foot of a page
- **Table borders actually visible on every cell** — the most common silent failure
- The table of contents populated, with correct page numbers
- Every figure present, legible at print size, and captioned

Convert:

    soffice --headless --convert-to pdf --outdir 04-Exports 04-Exports/Surname_MGT4897_Report.docx

If LibreOffice is unavailable, open the DOCX in Word and export manually — but do not skip
the inspection.

## Before Turnitin

- [ ] Word count 2,250–2,750, verified in the exported file (`/wordcount`)
- [ ] Cover page complete; table of contents populated and accurate
- [ ] All eight tasks answered under professional sub-section headings
- [ ] Every table has visible borders on every cell
- [ ] Every figure numbered, captioned, sourced, and referred to in the text
- [ ] Reference list alphabetical, Harvard throughout, ≥5 journal articles with DOIs
      (`/refcheck`)
- [ ] Appendices labelled and cross-referenced from the main text
- [ ] Declaration of Gen AI Use included
- [ ] No Markdown syntax visible anywhere in the PDF
- [ ] Page numbers present
- [ ] File is `.docx` or `.pdf`
- [ ] Filename meaningful: `Surname_MGT4897_Report.docx`

## Word count caveat

Word's count includes headings, table text and captions. The brief's 2,500 ±10% is measured
on the report body; the cover page, contents, references and appendices are excluded. Use
`/wordcount` for the section-by-section breakdown, and confirm the headline figure in Word
before submitting. Where the two disagree by more than about 3%, the exported file is
authoritative — state the count on the cover page and make sure it is the one Word reports
for the assessed sections.

