What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Power Apps can produce a PDF, but its native PDF() function is designed for a canvas screen or supported controls—not arbitrary HTML. For HTML content, use a connector or service that explicitly accepts an HTML string or URL. The three practical approaches are:

  • Native PDF(): best when the document is already laid out on a canvas screen.
  • Word Online (Business): best for repeatable invoices, letters, and reports built from a template.
  • An HTML-to-PDF connector: best when preserving HTML/CSS is the priority.

This guide explains each route, its setup, limitations, licensing considerations, and troubleshooting steps.

Choose the right conversion route

Route Input Best for Important limitation Status or licensing note
Power Apps PDF() Canvas screen or supported controls A screen that already looks like the document Not documented as a general HTML/CSS renderer Experimental and disabled by default
Word Online (Business) Word template with named content controls Stable business documents and repeatable layouts Requires converting HTML data into template fields Premium connector in supported regions
HTML-to-PDF connector HTML string or URL Existing HTML/CSS and web-based templates Connector fidelity, limits, and authentication vary Verify current action, region, and licensing

Method 1: Use the native Power Apps PDF() function

Microsoft describes the function as generating “a PDF document from the contents of a screen or certain types of controls.” It is therefore a screen export feature, not a drop-in HTML renderer.

Enable the experimental feature

  1. Open the app in Power Apps Studio.
  2. Select Settings.
  3. Open Upcoming features, then Experimental.
  4. Enable the PDF function and save or republish the app as required by your environment.

Because this feature is experimental, confirm that your tenant permits it and test it after Power Apps updates before depending on it for a production process.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Generate a PDF from a screen

Put the document controls on a canvas screen, for example SubmitInspectionScreen. On a button’s OnSelect property, use:

PDF(SubmitInspectionScreen);

The function returns a file value. Pass that value to a connector or a Power Automate flow to store it in SharePoint or OneDrive, email it, or return it to the user. The exact hand-off depends on the connector action available in your environment.

What to do with existing HTML

If your source is an HTML string, PDF() will not normally interpret its CSS, scripts, external fonts, or web layout. Rebuild the required content with Power Apps controls first, or choose the Word or direct HTML route below. This is often practical for a short form, but expensive for a complex web page.

Method 2: Populate a Word template and convert it to PDF

The Word Online (Business) connector provides two documented actions: Populate a Microsoft Word template and Convert Word Document to PDF. This is the most predictable option when you control the document design and need consistent pagination.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Create the template

  1. Create a .docx file in OneDrive for Business or a SharePoint document library.
  2. Insert named content controls for values such as customer name, invoice number, dates, line-item text, and totals.
  3. Save the template in a location supported by Microsoft Graph, such as OneDrive for Business, SharePoint Online Sites, or an Office 365 Group.
  4. Keep the control names unique and test the template in Word before building the flow.

Build the Power Automate flow

  1. Start the flow from Power Apps or use another trigger that supplies the document data.
  2. Add Word Online (Business) > Populate a Microsoft Word template.
  3. Select the template and map each named control to dynamic values from Power Apps, Dataverse, SharePoint, or another source.
  4. Save the populated Word file in a temporary or final location.
  5. Add Word Online (Business) > Convert Word Document to PDF and select the populated file.
  6. Use the returned PDF binary in a SharePoint/OneDrive create-file action, an email attachment, or a response to Power Apps.

This route does not preserve arbitrary HTML. Convert your HTML data into fields, table rows, or text before the template step. For a report whose structure changes substantially with CSS, use an HTML-aware connector instead.

Licensing and storage checks

Microsoft lists Word Online (Business) as a Premium connector for Power Apps and Power Automate in supported regions. Check your tenant’s licensing, data-loss-prevention policies, and connector availability before deployment. The template and generated file must be accessible to the connection identity; a personal OneDrive path that the flow account cannot read will fail.

Method 3: Convert an HTML string or URL with a connector

Use this route when the source is genuinely HTML: an inline string, an HTML file, or a reachable URL. The action must explicitly advertise HTML-to-PDF support; a generic “create file” or Word action will not render HTML.

Power2Apps and catalogued actions

The Microsoft connector catalog lists Power2Apps operations that accept HTML content or a URL and return a PDF. The documented controls include landscape mode, image quality, headers, footers, paper format, margins, page ranges, and scale. However, the catalog marks the shown Convert HTML to PDF operations as deprecated. Verify the replacement action name, connector version, and support status in your maker portal before building a production flow.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Other third-party choices

The catalog also lists:

  • LatinShare: a “Convert HTML to PDF” action.
  • PDF4me: HTML conversion and template actions.
  • Plumsail: HTML-to-PDF settings for engine, paper size, orientation, margins, header, and footer.
  • Muhimbi: URL or HTML-fragment conversion with authentication, viewport, media type, and conversion-delay options.

These are third-party services. Premium licensing or a separate account may be required, and capabilities can differ by region and connector edition. Confirm current terms in your tenant.

Generic flow pattern

  1. Have Power Apps pass either the HTML string or the URL to Power Automate.
  2. Add the connector action that explicitly accepts HTML or a URL.
  3. Set paper size, orientation, margins, scale, headers, footers, and page range in the action.
  4. Supply authentication, cookies, or a conversion delay when the source page is protected or renders asynchronously.
  5. Inspect the returned binary and save it with a .pdf extension.
  6. Return a download link or file reference to Power Apps.

HTML and CSS details that affect the PDF

Inline versus remote resources

Images, stylesheets, fonts, and JavaScript loaded from another host may be blocked by the converter or require authentication. Prefer absolute URLs, embed critical CSS, and ensure the service can reach every asset. A URL that works in your browser may still fail from a cloud connector’s network.

Print layout

Define print-oriented CSS where the engine supports it, including page breaks and print colors. Test long tables, repeated headers, wide content, and images near page boundaries. Do not assume a browser’s viewport is the same as the PDF paper size.

Protected pages

If the HTML endpoint requires a sign-in, pass supported headers or cookies through the connector. Never hard-code secrets in an app formula or expose them in a public URL; keep them in a secured connection, environment variable, or secret store.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Reliability, performance, and cost planning

  • Experimental dependency: Native PDF() can change as Microsoft evolves the feature; regression-test after platform updates.
  • Connector limits: Premium actions, API quotas, file-size limits, run duration, and regional availability affect throughput.
  • Rendering time: pages with images, web fonts, client-side scripts, or charts need longer conversion delays or a wait-for-content option.
  • Idempotency: generate a deterministic file name or document ID so a retry does not create confusing duplicates.
  • Binary handling: preserve the connector’s binary output; converting it to plain text or JSON can corrupt the PDF.
  • Validation: check that the output begins as a valid PDF and that required text, images, page count, and totals are present before sending it to a customer.

Troubleshooting common failures

The PDF() formula is unknown

Enable the experimental PDF feature under Settings > Upcoming features > Experimental, then reopen or refresh the app. If the setting is unavailable, your environment or tenant may not expose the feature.

The PDF is blank or missing controls

Confirm that the screen name is correct, controls are visible at capture time, and the formula targets the screen or control type supported by the function. Move content into a dedicated document screen instead of capturing a navigation or loading screen.

HTML appears as literal tags

The selected action is treating the input as text rather than rendering HTML. Replace it with an action that explicitly accepts HTML or a URL, or use the Word template route.

Images or fonts are missing

Use absolute asset URLs, embed essential styles, check that the converter can access the host, and provide authentication where supported. Remove blocked or unavailable resources and retry.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The connector action cannot be found

The action may have been renamed, deprecated, unavailable in your region, or hidden by a policy. Recheck the current connector catalog and tenant policies; do not deploy a flow based on a deprecated action without a supported replacement.

Word conversion fails

Verify that the connection identity can read the template and write the output location, that every content control is valid, and that the selected file is a Word document rather than an HTML file renamed with a .docx extension.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Or skip the browser setup

If your HTML is already available at a public URL and you want an automated visual capture or PDF workflow outside Power Apps’ canvas rendering, ScreenshotNeo provides a website screenshot API and MCP server. It accepts consent banners before capture and removes more than 60 known consent platforms, newsletter popups, and chat widgets; bot checks, blank pages, failed loads, timeouts, and cache hits are not billed. Its MCP tools let Claude, Cursor, or another MCP client call take_screenshot, get_page_info, and capture_pdf.

For the API, see the ScreenshotNeo documentation. A direct request is:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp

The same request in Python:

import requests
r = requests.get("https://api.screenshotneo.com/v1/shot", params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"}, timeout=90)
open("shot.webp", "wb").write(r.content)

And Node.js:

const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);

ScreenshotNeo’s Free plan includes 1,000 screenshots a month with no card; paid plans start at $5 for 3,000 shots. Create a free ScreenshotNeo account.

Which method should you use?

  • Choose PDF() when the document is already a Power Apps screen and experimental features are acceptable.
  • Choose Word Online (Business) when a governed template and predictable business-document layout matter most.
  • Choose an HTML-to-PDF connector when you need HTML/CSS fidelity, URL input, or print controls such as margins, headers, footers, and page ranges.
  • Use ScreenshotNeo when the source is a hosted web page and you also want consent cleanup, usage-aware billing, or AI-agent access; it is not a replacement for an inline HTML string unless that HTML is first hosted at a URL.

Frequently Asked Questions

Can Power Apps convert an HTML string directly with PDF()?

Not as a general-purpose HTML/CSS renderer. PDF() captures a canvas screen or supported controls, so render the content in controls or use an HTML-aware connector.

Is the native Power Apps PDF function production-ready?

Microsoft documents it as experimental and disabled by default. Test it in your tenant and reassess after platform updates.

Do I need a premium license for HTML-to-PDF?

Many connector options are premium or require a separate service account. Check the current connector, region, and tenant licensing before implementation.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.