HomeHow to Import PDF into Canvas
Canvas · QTI 1.2 · Tutorial

How to Import PDF into Canvas (QTI 1.2)

Your exam lives in a PDF — maybe even a scanned one. Canvas wants a QTI package. This guide covers the clean path in between: PDF → CSV → QTI 1.2 → Canvas, including how OCR turns a scanned page into importable questions.

By ExamParser Team Updated Sep 23, 2026 7 min read Topic: Assessment import

Why Canvas can’t read your PDF directly

Canvas does not parse .pdf files. Its “Import Course Content” flow only understands structured interchange formats — most commonly QTI 1.2, delivered as a .zip (or .imscc) archive of XML files. A PDF is just a fixed-layout document: text, vectors, or — in the case of a scan — a flat picture of a page. None of that tells Canvas “this is question 20, these are its five options, and the correct answer is E.”

That gap is the whole problem. To move questions from a PDF into Canvas you must translate the document into QTI’s question model. The reliable way to do that is a two-stage conversion: first normalize your questions into a flat, predictable CSV, then compile that CSV into a Canvas-ready QTI 1.2 package. And if the PDF is a scan, an OCR step reads the page first.

Bottom line: PDF is for sharing; QTI is for importing. You need a converter in the middle — and for scans, that converter needs OCR.

The workflow at a glance

  1. PDF → structured CSVExtract every question into one tidy row with a fixed column layout. Scanned pages are read with OCR first.
  2. CSV → QTI 1.2 packageCompile the rows into the XML bundle Canvas expects, packaged as an importable .zip.
  3. QTI → CanvasUpload the package via Settings › Import Course Content and the quizzes appear in your course.

Step 1 — Turn your PDF questions into a structured CSV

The CSV is the contract between your source document and the QTI builder. Each row is one question. ExamParser’s CSV uses a compact, fixed column order. Here are two real rows — one single-answer, one multi-answer:

MC,,5,Q20,5,a,b,c,d,e
MR,,5,Q21,"2,4",a,b,c,d,e

Both rows describe a 5-point question with five options (a through e). The first is a single correct answer (E); the second has two correct answers (B and D). Here is what every field means:

PositionFieldMeaningExample
1TypeQuestion type. MC = Multiple Choice (exactly one correct answer). MR = Multiple Response (more than one correct answer).MC, MR
2Group / reservedOptional. Usually left blank. Can carry a question-bank group or section tag when you want questions organized on import.(empty)
3PointsThe score assigned to the question in Canvas.5
4TitleThe question reference/name shown in Canvas (handy for tracking).Q20, Q21
5Answer key1-based index of the correct option(s). For MC, a single number. For MR, a quoted comma-separated list of indices. Quoting is required because the list itself contains commas.5 → option E; "2,4" → options B & D
6…NOptionsThe answer choices, in order. a=1, b=2, … The answer key points at these positions.a,b,c,d,e
Indexing rule that trips people up: the answer key is 1-based and counts only the option columns. In MC,,5,Q20,5,a,b,c,d,e, the 5 in the answer field means the 5th option — e — is correct. In MR,,5,Q21,"2,4",a,b,c,d,e, "2,4" means the 2nd and 4th options — b and d.

What if the PDF is a scanned (image-only) document?

This is the common case with old exam papers: the “PDF” is really just a photo of each page, with no selectable text. A normal text extractor sees nothing. The fix is OCR (optical character recognition): the page image is analyzed and the printed characters are turned back into text. Once OCR recovers the question stems, options, and the marked answer, the same CSV layout above applies.

So the only difference for a scan is an extra front-end step — OCR — before the CSV is built. The output is still plain text questions in the QTI-ready CSV; scans are supported as an input format, not as embedded image questions.

How do you actually get the PDF into this CSV?

Doing it by hand — re-typing hundreds of questions from a printout — is slow and error-prone. The practical move is to let a converter read the PDF (running OCR when needed) and emit this exact CSV. ExamParser does exactly that: upload the PDF, and it detects each question, its options, and the marked correct answer — scans included — then outputs the QTI-ready CSV you can spot-check.

Step 2 — Convert the CSV into a Canvas-ready QTI 1.2 package

The cleanest way to run this stage is a single tool: ExamParser. You upload your PDF at examparser.com and it produces both outputs in one pass — the QTI-ready CSV you can review and the final QTI 1.2 .zip for Canvas. Grab the CSV to audit the questions, or go straight to the package and import.

Step 3 — Import the QTI package into Canvas

  1. In your course, open SettingsImport Course Content.
  2. Choose QTI .zip file as the content type.
  3. Select the .zip from Step 2 and click Import.
  4. Wait for the job to finish, then find the quizzes under Quizzes (Classic Quizzes).

If your institution uses New Quizzes, import into Classic Quizzes first, then use Canvas’s built-in migration to convert the item bank or quiz to New Quizzes.

One tool for the whole pipeline: ExamParser

ExamParser is built for this exact job — PDF to Canvas, scans included. Upload your PDF (native or scanned) and it returns both the QTI-ready CSV and the Canvas-importable QTI 1.2 package at the same time. For scans, OCR runs automatically before extraction. Use the CSV to review questions and answer keys; use the .zip to import. No sub-tools, no copy-paste, no re-typing.

Convert your PDF — even a scan — into a Canvas QTI package

Upload a PDF or scanned exam and get a QTI 1.2 .zip ready for Canvas. OCR handles scans automatically.

Try ExamParser →

Common pitfalls (and how to avoid them)

Can Canvas import a PDF file directly?

No. Canvas does not parse PDF files. It imports assessments through a QTI 1.2 package (an .zip or .imscc archive of structured XML). You must first convert the PDF content into that QTI format, which is what ExamParser does automatically.

Does it work with scanned (image-only) PDFs?

Yes. Scanned PDFs contain no selectable text — just page images. ExamParser runs OCR (optical character recognition) on the pages to read the questions, options, and answer keys, then builds the same structured CSV and QTI package. Printed, clean scans work best; very low-resolution or handwritten pages may need a clearer copy.

What is QTI 1.2 and why does Canvas use it?

QTI (Question and Test Interoperability) 1.2 is an IMS open standard for exchanging quiz and question data as XML. Canvas’s “Import Course Content” flow accepts a QTI 1.2 .zip and rebuilds the questions, options, points, and answer keys inside your course.

How are multiple correct answers represented in the CSV?

Use the MR (Multiple Response) type and put the correct option indices in the answer field as a quoted, comma-separated list, e.g. "2,4" meaning the 2nd and 4th options are correct. Quoting is required because the list itself contains commas.

Does the QTI package work with New Quizzes?

The QTI 1.2 export targets Classic Quizzes. After importing, Canvas lets you migrate Classic Quizzes to New Quizzes with its built-in migration tool if your institution uses New Quizzes.

CanvasQTI 1.2PDF to QTIScanned PDFOCRExamParser