How to convert a PDF to SCORM (and keep completion tracking)

How to convert a PDF to SCORM that actually tracks: prepare the document, pick a completion rule, handle long PDFs, and test before the LMS does.

What a converted PDF course is

When you convert a PDF to SCORM, the output is a single SCO: an HTML viewer that renders the document page by page, wrapped in an imsmanifest.xml, with JavaScript that talks to the LMS runtime API. The viewer records which page the learner is on, writes a bookmark so the course resumes where they left off, and — the entire point of the exercise — reports completion when your rule says the document has been read. Uploading the PDF itself to an LMS as a file attachment does none of that: most platforms will record "downloaded" at best, and nothing at all once the file is open in a browser tab.

So the question to hold onto through this guide is not "how do I get a zip" — every converter produces a zip — but "what will this package report, and when?" A PDF that tracks is a course; a PDF that does not is a handout with extra steps.

Prepare the PDF first

Conversion is faithful to the source document, flaws included. A few minutes of preparation changes the quality of the result more than any converter setting.

  • Give it bookmarks or real headings. Converters build the course outline from the PDF's bookmark tree (or detected headings). A 40-page document with no bookmarks becomes a course whose only structure is "page 1 of 40". If the source was Word or InDesign, regenerate the PDF with the heading-to-bookmark option on.
  • Check it is text, not scans. A scanned PDF is a stack of images: it renders, but text cannot reflow or be searched, and file size balloons. Run OCR first, or better, export a fresh PDF from the source document.
  • Flatten forms and annotations. Interactive form fields, comments, and sticky notes do not survive as interactive elements — they either render flat or disappear. Do not rely on them.
  • Mind the page geometry. A4 and Letter portrait pages render well in a viewer; wide landscape tables and posters force zooming on laptops and become unreadable on mobile. If a table matters, consider giving it its own page.
  • Trim what nobody must read. Cover sheets, version-history tables, and 30 pages of appendix inflate the page count that your completion rule is about to be based on.

Decide the completion rule

This decision determines whether the LMS report means anything. Write it as one sentence before you build, because that sentence is also your test case. The realistic options for a document:

  • Every page viewed. The strictest honest rule: completion is set when each page has been displayed at least once. Right for policy sign-offs and compliance reading.
  • Last page reached. Looser — a learner can scroll to the end in eight seconds. Acceptable for reference material where "opened and skimmed" is genuinely enough.
  • Pages viewed plus an acknowledgement or check. A final "I have read and understood" step, or a short quiz, gives you a completion that stands up to audit. In SCORM 2004 the quiz score and the completion are separate fields; in SCORM 1.2 they collapse into one status, so decide which one the single status should represent.

Avoid time-based rules on their own — "in the course for 10 minutes" rewards an open tab, not reading. If a regulation demands a time floor, combine it with page tracking rather than replacing it.

Page tracking and long documents

Page tracking has a cost most people meet the hard way: state. The viewer has to remember which pages have been seen, and in SCORM that state lives in cmi.suspend_data — a single string capped at 4,096 characters in SCORM 1.2 and 64,000 in SCORM 2004. A compact page bitmap fits easily; a verbose JSON blob recording per-page timestamps for a 120-page manual can blow past the 1.2 cap, and many platforms truncate silently. The symptom is a course that never resumes correctly or, worse, never completes because the record of pages 90–120 keeps vanishing. The mechanics of that failure are covered in why SCORM courses lose completions.

Long documents deserve one more decision: whether to split. A 150-page PDF as one SCO is a wall; three 50-page modules with their own completions give learners a resume point they can feel and give you reporting per section. If the document has a natural parts structure, split at those seams before converting.

Choose the SCORM version

Ask whoever owns the destination LMS which version they want. If nobody knows, SCORM 1.2 is the safe default — it imports everywhere. Choose SCORM 2004 when either of two things is true: you need completion ("read it") and success ("passed the check") reported separately, or the document is long enough that page-tracking state will crowd the 4 KB suspend-data cap. A 20-page policy is comfortable in 1.2; a 100-page manual with a quiz is a 2004 build. The full decision table is in SCORM 1.2 vs 2004.

Test before delivery

Do not let the destination LMS be the first runtime your package meets. Open the build in a test player and walk it exactly as a learner would, with the runtime log visible. Four things must be true: the bookmark advances as you page; closing and relaunching resumes at that bookmark; completion fires at precisely the moment your one-sentence rule says — not on launch, not on page 1; and the final Commit and Terminate land when you exit. Then do one hostile pass: jump straight to the last page and confirm the course does not complete if your rule says every page. The general checklist, including platform quirks worth replaying, is in testing a SCORM package before the LMS does.

A converted document is the easiest kind of SCORM package to under-test, because it looks trivial. It is also the kind most often shipped to compliance-critical audiences, where a silent tracking failure matters most. Test it like it matters, because it does.

Where SCORM Central fits

SCORM Central converts files you already have — PDF, PowerPoint, Word, or video — into SCORM 1.2, SCORM 2004, cmi5, or xAPI, and shows you the manifest, the full runtime log, and a conformance report on every build, so you can see exactly what a package will report before an LMS does. See how it works, or start with one file.

Keep reading

How-to4 min Convert SCORM to video or PowerPoint? Can you convert SCORM to MP4, HTML5 or PowerPoint? What is inside a package, the routes that work, and what you lose with each one. Explainer4 min Does your LMS support xAPI? How to check What xAPI LMS support really means: launching xAPI content, a built-in LRS, or forwarding statements. The questions to ask and a quick test to run. Explainer4 min LMS vs LRS: what is the difference? LMS vs LRS: an LMS runs courses and learners; an LRS stores xAPI statements. Why SCORM does not use an LRS, and when you need both.

Start with one file.

Upload something you already have and see it as a package, with the conformance report and the runtime log alongside it.

→ upload  handbook.pdf
  parsing … 14 sections
  building manifest …
  validating … 0 errors, 2 notes
✓ handbook-scorm2004.zip
✓ preview link ready