How to generate a PDF from Dataverse or Power Apps: 6 methods and where each breaks
Six ways to turn a Dataverse record into a PDF, each with its steps, its licence and the documented limit where it stops working.
To generate a PDF from Dataverse or Power Apps, match the method to the job. Use PDF() or Print() for a quick capture of a canvas screen, Export to PDF for Dynamics 365 Sales records, Power Automate for low-volume flows, paginated reports for long print-exact reports, and a document engine for high-volume branded documents that change often.
Disclosure. We build SSS DocGen, one of the options in method 6; Simple Smooth Safe sells products and consultancy on Dataverse. Every Microsoft fact below links to the page we read it on, checked on 25 September 2026.
Choosing between add-ins? This page is organised by method, not vendor. For vendors, read Dynamics 365 document generation tools compared.
The six methods at a glance
“Breaks when” is the first documented limit most teams hit; each section lists the rest.
| Method | Where it runs | Licence needed | Good for | Breaks when |
|---|---|---|---|---|
1. Canvas PDF() functionExperimental | On the user’s device, inside the canvas app | A Power Apps licence that covers Dataverse, such as Power Apps Premium | Capturing a form or inspection screen and emailing it | You need it in production, nested galleries, charts or large files on mobile |
2. Canvas Print() and the browser dialog | The browser’s print dialog on the user’s machine | Same as the canvas app; no extra licence | A one-page printout or “Save as PDF” by a person | The content runs past one page, or users are on mobile |
| 3. Word template, then Export to PDFDynamics 365 Sales | Inside the Dynamics 365 app, on Microsoft’s servers | Customer engagement apps; Export to PDF is documented for Sales | One quote, order or invoice at a time, on demand | More than 100 related rows, conditional sections, custom fonts or batches |
| 4. Power Automate: Populate a Word template, convert to PDF | A cloud flow, with templates in OneDrive or SharePoint | Premium connector: Power Automate Premium or Process | Automatic PDFs on a trigger, at modest volume | Files over 10 MB, conversions over 2 minutes, MFA conditional access, labelled files |
| 5. Power BI paginated report exported to PDF | The Power BI service; API export needs capacity | Pro or PPU to publish; Premium, Embedded or Fabric capacity for API export | Long, print-exact reports and statements | You try bulk export on PPU (one per five minutes) or exports run past 60 minutes |
| 6. Document-generation add-in or engine | Vendor cloud or your own Azure, depending on the product | The vendor’s licence, on top of your Microsoft licences | Branded documents at volume that change several times a year | The document is simple enough that the licence is not worth it |
1. How do you generate a PDF in a Power Apps canvas app?
The canvas PDF() function exports a screen, or part of one, to a PDF object (PDF function, Microsoft Learn).
- In Power Apps Studio, open Settings > Upcoming features > Experimental and turn on PDF function. It is off by default (Work with the PDF function).
- Put the document’s content inside a container or vertical gallery.
- In a button’s
OnSelect, call something likeSet(myPDF, PDF(Container1, {Size: "A4", ExpandContainers: true})).ExpandContainersprints the full content of scrolling containers and galleries. - Show the result in the PDF viewer control, attach it to an Outlook email, or pass it to a flow (PowerApps (V2) trigger with a File input) that saves it.
Licence. No separate price, but the app needs a licence that covers Dataverse. Power Apps Premium is listed at $20 per user per month, paid yearly, with Dataverse entitlements (Power Apps pricing). Microsoft 365 use rights do not cover standalone custom apps on Dataverse; Dynamics 365 licences include Power Apps rights only in the context of the licensed Dynamics 365 app (licensing overview).
Where it breaks (all from the PDF function reference):
- It is experimental. Microsoft says experimental features “aren’t meant for production use and may have restricted functionality”.
- It renders on the device. A very large PDF can crash the app, especially on mobile.
- Only the current screen can be included.
- Unsupported content. Charts, Power BI tiles, maps and some third-party PCF controls are not supported. Nor are nested galleries, so lines with sub-lines are out.
- Fonts and forms. Non-Latin scripts, bold and italic may not appear for some fonts, and fillable PDFs are not supported.
2. Can you just print a Power Apps screen to PDF?
Yes, for one page. The canvas Print() function opens the current screen in the browser’s print dialog, where the user can save it as a PDF (Print function, Microsoft Learn).
- Add a screen with New Screen > Portrait print (or size one to 794 × 1123 for A4) and lay out the record.
- Add a button with
Print()inOnSelect. Set itsVisibleproperty toNot Screen1.Printingso the button does not appear in the output. - The user chooses Save as PDF as the printer in the browser dialog.
Licence. Nothing beyond the licence the canvas app already needs (see method 1).
Where it breaks (from the Print function reference):
- One page only. The function “can’t print multiple pages”.
- Not on mobile devices or SharePoint forms.
- Images can disappear. In some browsers the user must turn on Background graphics to see all images and colours.
- A person has to do it. Output goes through the browser dialog, so nothing runs in bulk.
Print() is canvas-only. For Dynamics 365 Sales records, Microsoft’s printing guidance is to export to PDF (Print quote, invoice, or other records). That is method 3.
3. How do you create a PDF from a Dynamics 365 record?
Dynamics 365 Sales has a built-in Export to PDF command. It fills one of your Word templates with the record’s data and returns a read-only PDF (Export sales records to PDF).
- An administrator turns it on. In Sales Hub, go to App Settings > Productivity tools > Convert to PDF and select the tables (Enable PDF generation).
- In the Power Platform admin center, open the environment’s Settings > Templates > Document templates > New > Download Word Template, and pick the table and relationships (Use Word templates).
- In Word, use Developer > XML Mapping Pane to insert fields, set the related-records table row to Repeating, and upload the template.
- A user opens the record, selects Export to PDF, picks the template, and chooses Download, Email, or Save to SharePoint (or Save to Dynamics, which stores it as a note).
Licence. Word templates are a feature of the customer engagement apps (Use Word templates). Export to PDF is documented for the Sales Hub and Sales Professional apps, and Microsoft points to the Sales licensing guide if it is missing (Export sales records to PDF).
Where it breaks. The Word template limits apply first (Use Word templates):
- Related records. At most 100 related records per relationship, listed in creation order.
- Controls. Only Plain Text and Picture content controls.
- Environments. A template works only in the environment it was downloaded from.
The PDF step adds its own limits (Export sales records to PDF):
- Fonts. Only fonts installed on the server that generates the PDF, as listed by Microsoft.
- File size. Performance is best under 2 MB. Larger files “can require considerably more response time”.
- Accessibility. The output is not a fully accessible PDF.
- Channels. Custom table records work only in the web app, not the phones app.
- One record at a time. It is documented as a command a user runs on an open record, with no bulk or scheduled mode described.
More detail and workarounds: Dynamics 365 Word template limitations.
4. How do you generate a PDF from Dataverse with Power Automate?
Use the Word Online (Business) connector’s Populate a Microsoft Word template action, then convert the result (Word Online (Business) connector).
- Build the template in desktop Word with titled content controls (plain text, image, repeating section and others) and save it to OneDrive for Business or SharePoint.
- Trigger the flow from a row change or an app, read the row and related rows, and shape the lines into an array for the repeating section.
- Call Populate a Microsoft Word template. It returns a Word file.
- Save the file to the library, then wait about a minute, as Microsoft suggests.
- Call Convert Word Document to PDF, or the OneDrive for Business Convert file action with PDF as the target type (OneDrive for Business connector).
- Write the PDF back to the record, or email it.
Licence. Word Online (Business) is a premium connector in Power Automate and Power Apps (connector reference). Power Automate Premium is listed at $15 per user per month and Process at $150 per bot per month, paid yearly, both with premium connectors (Power Automate pricing).
Where it breaks. From the Word Online (Business) reference:
- Size and time. The input file can be at most 10 MB for both actions, and a document must convert in under 2 minutes or the request times out.
- Throttling. 100 API calls per connection every 60 seconds. The OneDrive for Business connector has the same limit.
- Security policies. Populate cannot be used under an MFA conditional access policy, and Convert does not support files labelled Confidential or Highly Confidential.
- Images. No images in headers, and images take the placeholder’s size, not their own aspect ratio.
The OneDrive Convert file route cannot convert digitally signed, password-protected or IRM-restricted Word documents (OneDrive for Business connector). Apply to each runs one iteration at a time by default (up to 50), and daily Power Platform requests range from 10,000 on the Low performance profile to 500,000 on High (Power Automate limits).
5. When should you use a paginated report for PDFs?
When the output is really a report. Microsoft positions them for “highly formatted, print-ready output optimized for printing or PDF generation”; a long table prints in full across pages (Paginated reports in the Power BI service).
- In the free Power BI Report Builder, connect to Dataverse, a native data source (Supported data sources).
- Design the report with a parameter for the record ID, so one run produces one document.
- Publish to a workspace. Outside My Workspace, that needs a Pro or Premium Per User licence and at least a Contributor role (Supported data sources).
- Export to PDF by hand from the service, or automate it with the
exportToFileAPI (request, poll, download) or Microsoft’s Power Automate templates (Export paginated report to file).
Licence. Microsoft lists Power BI Pro at $14 and Premium Per User at $24 per user per month, paid yearly. Fabric capacity is “variable” there (Power BI pricing). For automated export, the report must sit in a workspace backed by Premium, Embedded or Fabric capacity (exportToFile). Microsoft’s Power Automate templates list A4–A6 or P1/F2 and above as the prerequisite (Export paginated reports with Power Automate).
Where it breaks:
- PPU. On Premium Per User,
exportToFileallows one request in any five-minute window. More requests get a 429 error (exportToFile). - Concurrency and throttling. A capacity takes at most 250 concurrent paginated render requests. Exports are throttled at 250 requests per minute without a service principal profile, and 25 with one.
- Time. An export is limited to 60 minutes, and the download URL lasts 24 hours.
- Power Automate. An export that takes more than two minutes to download fails, because of the flow’s outbound request limit (Microsoft Learn).
- Gateways. A Dataverse source cannot use a gateway, because multifactor authentication is not supported there (Supported data sources).
6. When do you need a document-generation add-in or engine?
When methods 1–5 each fail on something you need: batches, conditional sections, deep related data or frequent template changes.
- Install the vendor’s solution or connector.
- Design the template in the vendor’s tool, bound to Dataverse tables.
- Call it from a button, a flow or an API.
- Store the PDF on the record, in SharePoint, or send it out.
Licence. The vendor’s, on top of your Microsoft licences, priced per user, per document, per credit or per environment. We compare nine options and their published prices in Dynamics 365 document generation tools compared.
Ours, for transparency. SSS DocGen is a document engine that runs in your own Azure subscription. Apps and flows call one Dataverse custom API, sss_GenerateDocument. Templates are Handlebars HTML plus FetchXML datasets, stored as Dataverse rows, rendered to PDF by Chromium. The licence is €7,500 per production environment per year, excluding VAT, with dev and test environments free. Deployment and onboarding is €5,500 for the first environment (DocGen, pricing).
Where it breaks, for DocGen specifically:
- Cold starts. The first request after an idle period takes 10–20 seconds (case study).
- Batch size. Default scaling handles about 40 documents in flight; month-end runs of thousands need it raised (cost notes).
- Data volume. Datasets page at 5,000 rows with a 50,000-row hard cap (DocGen).
- Template skills. Templates are HTML and Handlebars, not Word, and the engine needs your own Azure subscription.
- Small teams. For a handful of simple documents, method 3 or 4 costs less.
Which method should you use?
Stop at the first clear answer.
- A quick copy of a canvas screen?
Print()for one page;PDF()for a file, accepting it is experimental. - One Dynamics 365 Sales record, a short list of lines, standard fonts? A Word template with Export to PDF; no add-in needed.
- Automatic PDFs on a row change, a few dozen a day? Power Automate, if you hold premium licences and no MFA conditional access blocks the connector.
- The output is a long report, and you already run Power BI capacity? Use a paginated report with
exportToFile. - Batches, conditional content, brand fonts, deep related data or frequent changes? Shortlist an add-in or engine and price it at your busiest month’s volume.
Two numbers usually decide it: related rows per document and documents per month. Check both before you build.
SSS DocGen
When the built-in methods run out
SSS DocGen renders branded PDFs from Dataverse records in your own Azure subscription. Templates are configuration held as Dataverse rows, so changing one needs no code release. €7,500 per production environment per year, excl. VAT. Unlimited users, templates and documents; dev and test environments are free.
Sources
Microsoft pages this article relies on (checked 25 September 2026):
- PDF function (experimental), Microsoft Learn
- Work with the PDF function (experimental), Microsoft Learn
- Print function, Microsoft Learn
- Print quote, invoice, or other records, Microsoft Learn
- Export sales records to PDF, Microsoft Learn
- Enable or disable PDF file generation from sales records, Microsoft Learn
- Use Word templates to create standardized documents, Microsoft Learn
- Word Online (Business) connector reference, Microsoft Learn
- OneDrive for Business connector reference, Microsoft Learn
- Limits of automated, scheduled, and instant flows, Microsoft Learn
- Paginated reports in the Power BI service, Microsoft Learn
- Supported data sources for Power BI paginated reports, Microsoft Learn
- Export paginated report to file, Microsoft Learn
- Export paginated reports with Power Automate, Microsoft Learn
- Licensing overview for Microsoft Power Platform, Microsoft Learn
- Power Apps pricing, microsoft.com
- Power Automate pricing, microsoft.com
- Power BI pricing, microsoft.com