How to export Azure DevOps work items to PDF: 4 options compared
Michael Thomsen
·5 min read
Short answer: Azure DevOps Services cannot export work items, queries or sprint backlogs to PDF or Word out of the box. The options are the browser's print dialog, copying a query result into Excel or Word, a script against the REST API, or a Marketplace extension that renders work items through a template. For a document you produce more than once, the template route is the only one that stays consistent.
The question appears on Microsoft Q&A every few months, usually from a project manager who has to hand a sprint report, a requirements document or a change list to someone without Azure DevOps access. Microsoft's own answer for sprint plans is to share the backlog URL, email a query, or "copy an HTML-formatted table of selected items and paste it into a Word document". For progress reports from Test Plans, Microsoft's answer (May 2025) is that they cannot be exported or printed at all.
Why there is no export button
Work items are records, not documents. Azure DevOps renders them as a board, a backlog, a query grid or a form, and each of those views is optimized for editing, not reading. A stakeholder outside the team needs the opposite: a fixed snapshot with a title page, headings, the fields that matter to them and nothing else. Turning records into a document means deciding on a layout, and Azure DevOps leaves that decision to you.
Option 1: Print the page from the browser
Open a query result or a work item form and use the browser's print function, saving to PDF.
- Good for: a single work item, once.
- Problems: the navigation chrome is printed too, long descriptions get cut at page breaks, rich text fields lose images, and a query grid prints as a table with truncated columns. There is no way to add a cover page or a logo.
Option 2: Copy to Excel or Word
Select the rows in a query result, use the "Copy as HTML" action, and paste into Word or Excel. Alternatively, open the query in Excel through the Azure DevOps Office integration.
- Good for: flat lists of titles, IDs and states where the reader only needs a table.
- Problems: descriptions, acceptance criteria and attachments do not come across. Formatting breaks the moment someone edits the pasted table. Every report is a manual job, and two people produce two different documents from the same query.
Option 3: Script the REST API
The Work Item Tracking REST API lets you run a saved query, fetch each work item with the fields you need, and feed the result into a document generator such as a Markdown-to-PDF converter or a Word library.
- Good for: teams with a developer who owns the script and a documented, rarely changing layout.
- Problems: HTML fields have to be sanitized, images are served from authenticated URLs and must be downloaded with a token, and every change to the layout is a code change. The script tends to live on one person's machine. Microsoft's own sample release notes generator is an Azure Function for exactly this reason: it needs hosting.
Option 4: A template-based extension
A Marketplace extension that renders work items through a template gives you a repeatable document with a fixed structure. Several exist, with different trade-offs: some push work items into a Word template, some render Markdown and HTML to PDF, and pricing ranges from per-user plans to per-document credits.
- Good for: any document you produce more than once: sprint reports, release notes, requirement documents, status reports.
- Problems: it is a paid add-on in most cases, and someone has to build the template once.
Worked example: a sprint report with Bravo Notes
Bravo Notes is an Azure DevOps extension (paid, with a 30-day trial) that generates Markdown, HTML and PDF documents from work items using a template. The document below is a typical sprint report for a steering committee.
Step 1. Open Bravo Notes from the Azure DevOps project navigation and create a new document. On the Work items tab, click Add and choose the current iteration, or pick a saved query.
Step 2. Paste this template on the Template tab:
# Sprint report: {{ param 'Sprint' }}
Prepared on {{ date 'dd mmm yyyy' }} for the steering committee.
{{#section '$UserStory'}}
## Delivered this sprint
{{#workItems orderBy='Priority'}}
### {{ field 'Title' }} ({{ id }})
{{{ field 'Description' }}}
**Acceptance criteria**
{{{ field 'Microsoft.VSTS.Common.AcceptanceCriteria' }}}
{{/workItems}}
{{/section}}
{{#section 'carried-over'}}
## Carried over to next sprint
{{#workItems}}
- {{ field 'Title' }} ({{ field 'State' }})
{{/workItems}}
{{else}}
Everything planned for this sprint was completed.
{{/section}}
The carried-over label is a rule such as "State not in Closed, Resolved" that you define once on the Work items tab. Built-in labels such as $UserStory and $Bug separate work item types without any setup. Sprint is a parameter you fill in on the Parameters tab before exporting.
Step 3. Click Export, choose PDF, and pick page size, orientation, cover page, table of contents and header or footer options (PDF options documented here). Download the file, or send it as an email attachment straight from the export dialog.
The next sprint, you add the new iteration's work items and export again. The layout does not change, so readers learn where to look.
Which option should you pick?
| Need | Pick |
|---|---|
| One work item, right now | Browser print |
| A flat list of titles and states | Copy to Excel |
| A custom pipeline that already exists | REST API script |
| A recurring document with descriptions, images and a fixed layout | Template-based extension |
Frequently asked questions
Can Azure DevOps export a query to PDF natively? No. Queries export to CSV, and sprint backlogs can be emailed or copied as an HTML table. PDF and Word require the browser print function, a script, or an extension.
Can I include images from work item descriptions in the PDF? With copy-paste and browser print, usually not. Template-based tools such as Bravo Notes download attachments and inline images with the user's permissions and embed them in the PDF.
Do readers of the PDF need an Azure DevOps license? No. The PDF is a regular file. Only the person who generates it needs access to the project and, for an extension, a license for the extension.
Can I export work items from several projects into one document? Bravo Notes loads the result of any saved query the user can run, and Azure DevOps queries can span projects when the user has access to each. Test a small cross-project query first, since custom fields can differ between process templates.
What about Word instead of PDF? Some extensions target Word templates directly. Bravo Notes produces Markdown, HTML and PDF; the HTML opens in Word if a .docx is required afterwards.
Summarize this article