To embed a PDF in a Power Apps canvas app, add the PDF viewer (experimental) control and set its Document property to a direct HTTPS URL for the PDF. The file must be anonymously reachable, return the PDF itself rather than an HTML viewer or redirect, and allow the cross-origin request from powerapps.com. For a PDF created by the app, generate it with the experimental PDF function and bind the result to Document.
Choose the right Power Apps approach
There are three different jobs that are often described as “embedding a PDF.” Pick the one that matches your source:
| What you have | Recommended method | What to verify |
|---|---|---|
| An existing PDF at a web address | PDF viewer (experimental) with a direct HTTPS URL in Document | Anonymous access, HTTPS, PDF response, and CORS permission for powerapps.com |
| Content produced by the canvas app | Experimental PDF function, then bind its result to Document |
Choose the screen, container, or gallery that defines the export area |
| Files attached to a Microsoft List or Dataverse record | Attachments control inside a form | Uploads and deletions require a saved form submission; the control is not for arbitrary transformed tables |
The PDF viewer is an experimental control, so treat it as a viewer rather than a complete document-management or printing solution.
Embed an existing PDF from a URL
1. Prepare a URL that the viewer can actually fetch
- Use HTTPS. HTTP links are not supported.
- Point to the PDF bytes directly. A SharePoint-style HTML preview page, a download page, or a URL that redirects to one of those pages will not work.
- Make the file anonymously accessible to the viewer. A link that only works after your browser has authenticated is not sufficient.
- Configure the host to permit the required cross-origin request from
powerapps.com. - Serve a conforming PDF (PDF 32000). The viewer does not execute embedded scripts or buttons.
Before changing Power Fx, paste the final URL into a private browser window. If it asks for a sign-in, displays an HTML page, or downloads a non-PDF response, fix the hosting or sharing configuration first.
#1 Best Overall
- [This is a Copilot+ PC] — The fastest, most intelligent Windows PC ever, with built-in AI tools that help you write, summarize, and multitask — all while keeping your data and privacy secure.
- [The Power of a Laptop, the Flexibility of a Tablet] — Surface Pro 12” is a 2-in-1 device that adapts to you. Use it as a tablet for on-the-go tasks, prop it up with the built-in kickstand, or attach the Surface Pro Keyboard (sold separately) to turn it into a full laptop.
- [Incredibly Fast and Intelligent] — Powered by the latest Snapdragon X Plus processor and an AI engine that delivers up to 45 trillion operations per second — for smooth, responsive, and smarter performance.
- [All Day Battery Life] — Up to 16 hours of battery life[1] means you can work, stream, and create wherever the day takes you — without reaching for a charger.
- [Brilliant 12” Touchscreen Display] — The PixelSense display delivers vibrant color and crisp detail in a sleek design — perfect for work, entertainment, or both.
2. Insert the PDF viewer control
- Open the canvas app in Power Apps Studio.
- In the left rail, select Insert, open the media or controls section, and choose PDF viewer (experimental).
- Resize the control so it has enough height and width for the pages you expect users to read.
- Select the control and locate the Document property in the formula bar or properties pane.
3. Set the Document property
For a fixed file, enter the URL as a quoted Power Fx string. The quotation marks are required when you enter a literal value:
"https://example.com/files/guide.pdf"
In the actual app, replace the example address with the direct URL you verified. Do not wrap an HTML viewer URL around it and do not remove the quotation marks.
4. Test the published app
Save and publish the app, then test it as a user who has not previously authenticated to the file host. This catches a common mistake: the maker can open the document because of an existing browser session, while the viewer cannot make the anonymous cross-origin request it requires.
Display a PDF generated by the app
If the PDF does not exist until a user completes a screen, use the experimental PDF function. Put the function on a button or another event that runs after the data and controls you want to export are ready.
PC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchRank #2
- Laptop Size: This renewed Microsoft Surface Pro 7+ Tablet, has a screen size of 12.3 " and touch display. The 2736 X 1824 Pixel anti-glare screen, mostly reduces fatigue when using it, allowing you to focus on work. With a light weight, this Microsoft Surface refurbished laptop is a great choice for your Business and entertainment.
- Processor: This Renewed Surface Pro 7 Plus Tablet is installed with Intel Core i5-1135 G7 (2.4GHz-4.2GHz, 4Cores, 8Threads, 8 MB Intel Smart Cache), meeting the fast and stable operation of most programs.
- Powerful Memory: This refurbished Tablet has installed 8GB of RAM running memory and 256GB of Solid State Drive for you, allowing you to run multiple software and browsers at the same time with confidence, the Microsoft Surface powerful hard drive gives you enough space to download files!
- Multiple Ports:USB 3.0, microSD card reader(Optional), Headphone jact, Mini DisplayPort, Cover port, Charging port, this Microsoft SurfaceTablet allows you to fully enjoy the pleasure brought by technology.
- System: Windows 11 Pro is recognized as the most stable operating system, which is mostly for both commercial and professional users. Windows 11 Pro provides more security and management features for this used Surface Pro 7 (+) Tablet, as well as supporting virtualization and remote access. Meanwhile, it supports multiple languages, including English, French, Spanish, German, etc.
Generate and store the PDF
For example, set a button’s OnSelect property to:
Set(myPDF, PDF(SubmitInspectionScreen));
This stores the generated document in myPDF. The argument can be the screen currently visible, or a specific container or gallery.
Show the generated result
- Select the PDF viewer control.
- Set its Document property to
myPDF. - Run the button and confirm that the viewer refreshes with the newly generated file.
Targeting a container or gallery is useful when the screen contains navigation, helper labels, or other controls that should not appear in the document. The export boundary is the object you pass to PDF; it is not automatically limited to the part of the screen that looks like a report.
Working with SharePoint and Dataverse attachments
The Attachments control is the supported way to open, add, and delete attachments associated with Microsoft Lists and Microsoft Dataverse tables. Place it inside an edit or display form connected to the record that owns the files.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Rank #3
- A PREMIUM PERFORMANCE 2-IN-1 LAPTOP & TABLET — Ready for work, school, and creativity. Built for busy days, big projects, and nonstop multitasking. Run video calls, school and work apps, 20+ browser tabs, and AI tools at the same time without slowing down.
- WITH AI BUILT IN — With a dedicated AI chip (Qualcomm Snapdragon X2 Plus), this Copilot+ PC[5] on Windows 11 helps you work smarter and faster. Prompt, create, and automate with ease — ready for even your most demanding tasks.
- A STUNNING 13" OLED TOUCHSCREEN — Sharp colors, real detail, and smooth 120Hz scrolling on the PixelSense touchscreen[1] with LCD display[2]. Tap, scroll, draw, or pinch to zoom — whichever feels right for streaming, sketching, or daily work.
- 15.5 HOURS OF BATTERY (LEAVE THE CHARGER) — Up to 15.5 hours of video playback[3] on a single charge. Work from a coffee shop, take it to class/work, or binge a season on a long flight — it'll keep up.
- THE PORTS YOU NEED — Two USB-C / USB4[4] ports for fast charging, big file transfers, or hooking up to three 4K monitors when you want a full desktop. Wi-Fi 7 keeps you online and fast wherever you are.
What the Attachments control can do
- Show files attached to the current List or Dataverse record.
- Open an attachment for the user.
- Add and delete files when the control is used in the appropriate form context.
Form and save requirements
Attachment upload and deletion are persisted only through a form workflow. The user must submit or save the form; changing the attachment collection visually is not the same as saving the record. The control also does not support arbitrary transformed tables as its data source.
When the PDF viewer is a better fit
Use the PDF viewer when you already have a direct, anonymously reachable PDF URL or when the app has generated a PDF value with PDF. An attachment reference that requires an authenticated SharePoint or Dataverse session may not satisfy the viewer’s anonymous-URL requirement. In that case, use the attachment control’s open behavior or provide an external-browser fallback instead of trying to force the attachment into Document.
Access, security, and hosting checks
Anonymous access is a functional requirement
The viewer fetches the document from the URL. It cannot rely on the maker’s logged-in browser cookies. If the host requires a sign-in, returns an authorization page, or issues a private, expiring link that the viewer cannot use, the document will fail to load.
CORS must allow Power Apps
The PDF host must allow the cross-origin request originating from powerapps.com. A URL can be perfectly valid in a normal tab and still fail in the control when the server rejects that request. Update the host’s CORS policy, then retest with the published app.
Rank #4
- Intel Core i5-1035G4 3.70GHz processor, 128GB SSD Drive
- 8GB RAM, Wireless: 802.11a/b/g/n/ac Wi-Fi, Bluetooth 4.0
- Ports: Full-size USB 3.0; microSD card reader; Headphone jack; Mini DisplayPort; Cover port; Charging port, Camera: 5MP front-facing and 8MP rear-facing cameras with 1080p HD video recording
- Display: 12.3-inch PixelSense touchscreen display; 2736 x 1824 resolution, Stereo speakers with Dolby Audio-enhanced sound
- Operating System: Windows 10 Home, Intel Iris Plus Graphics
Direct response, correct type
Redirects and HTML document viewers are unsupported. The final response must be the PDF itself. If your storage service offers both a preview link and a raw download link, use the raw PDF address and verify that it remains accessible without a login.
What the PDF viewer does not do
- No printing: printing is not supported by the control.
- No embedded scripts or buttons: interactive code inside the PDF does not run.
- Experimental status: the control is experimental, so validate it in the environments and browsers your users actually use.
- External fallback: when the control cannot open a file, let users open the document in an external browser.
These limits are separate from the PDF file’s own capabilities. A PDF may contain scripts, buttons, or print-oriented metadata, but the Power Apps viewer will not execute those features.
Troubleshooting: common errors and fixes
| Symptom | Likely cause | Fix |
|---|---|---|
| The viewer stays blank or reports that it cannot open the file | The URL is private, requires a login, or the host blocks the cross-origin request | Test the exact URL in a private window, enable anonymous access where appropriate, and allow the request from powerapps.com. |
| A browser opens a preview page, but Power Apps fails | The link resolves to an HTML document viewer or redirect rather than PDF bytes | Replace it with the storage provider’s direct PDF/download URL and remove redirect layers. |
| The URL works in HTTP but not in the app | The control accepts HTTPS only | Move or expose the file at an HTTPS address. |
| The document opens but controls inside it do nothing | Embedded PDF scripts and buttons are not executed | Provide the interaction in the canvas app itself or open the file in an external PDF-capable browser. |
| A generated document contains the wrong controls | PDF targeted the whole screen instead of the report area |
Pass the intended container or gallery to PDF, then bind the returned value to Document. |
| An attachment appears in the form but is missing after reopening | The form was not saved after the upload or deletion | Submit the form and wait for the save operation to complete before navigating away. |
| An attachment data source causes a formula error | The source is an arbitrary transformed table, which the Attachments control does not support | Bind the control to a supported List or Dataverse attachment context inside a form. |
Embedding the whole canvas app is a different task
If your goal is to place the entire canvas app inside a website or another service, use Microsoft’s iframe embedding guidance rather than the PDF viewer. Access is limited to Power Apps users in the same tenant, and an app that uses Launch() may require browser pop-ups to be enabled. Iframe embedding does not change the requirements for rendering a PDF inside the app.
A practical decision checklist
- Existing public PDF: use PDF viewer (experimental) and a quoted, direct HTTPS URL.
- Report created by the app: call
PDFfor the screen, container, or gallery and assign the result to Document. - List or Dataverse files: use the Attachments control in a form and save the form to persist changes.
- Viewer failure: check anonymous access, CORS, HTTPS, redirects, and whether the response is really a PDF before changing formulas.
- Printing or interactive PDF controls: plan an external-browser workflow because the viewer does not print or execute embedded scripts or buttons.
Or skip the browser setup
If what you need is a clean image or PDF capture of a public web page to use alongside a Power Apps workflow, ScreenshotNeo provides a one-request API. It is not a replacement for the Power Apps PDF viewer or a private-file permission system: you still need to host any returned file at a URL that meets the viewer’s HTTPS, anonymous-access, and CORS requirements. It can remove the browser automation work before you prepare that asset.
Best Value
- Microsoft Surface Pro 7+ 12.3" Tablet 2-in-1 Laptop, Amazon Renewed, Core i3 with 128GB SSD and 8GB RAM
- More ways to connect, with both USB-C and USB-A ports for connecting to displays, docking stations and more, as well as accessory charging, Platinum Silver Color
- Standout design that won’t weigh you down — ultra-slim and light Surface Pro 7+ starts at just 1.70 pounds. Aspect ratio: 3:2
- Intel Core i3-1114G5 (1.70-3.0Ghz) | 128GB SSD | 8GB RAM | Windows 11 Professional Installed
- Screen: 12.3” PixelSense Display | Resolution: 2736 x 1824 (267 PPI) | Faster than Surface Pro 6, with a 10th Gen Intel Core Processor – redefining what’s possible in a thin and light computer. Wireless : Wi-Fi 6: 802.11ax compatible. Bluetooth Wireless 5.0 technology
ScreenshotNeo accepts cookie and consent banners as a visitor and removes more than 60 known consent platforms, newsletter popups, and chat widgets before capture; each cleanup step can be turned off. Only clean shots are billed. Bot checks or CAPTCHAs, blank pages, timeouts, failed loads, and cache hits cost nothing, and response headers identify the result with X-Page-Verdict and X-Billed. Its MCP server exposes take_screenshot, get_page_info, and capture_pdf tools to Claude, Cursor, and other MCP clients.
See the ScreenshotNeo documentation for request options. The following examples use the supplied endpoint and save a WebP response:
cURL
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://example.com -o shot.webp
Python
import requests
r = requests.get("https://api.screenshotneo.com/v1/shot", params={"access_key": "YOUR_API_KEY", "url": "https://example.com"}, timeout=90)
open("shot.webp", "wb").write(r.content)
Node.js
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://example.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
The Free plan includes 1,000 shots per month with no card. Paid plans start at $5 for 3,000 shots; every feature is available on every plan, and yearly billing gives two months free. Create a free ScreenshotNeo account to try it without a card.
Frequently Asked Questions
Can I point Document at a SharePoint preview page?
No. The control needs the file itself at a direct HTTPS PDF URL; a preview page or redirect is an HTML wrapper, not the document the viewer expects.
The Tool Desk
Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Can a generated PDF contain only part of a screen?
Yes. Pass the specific container or gallery to the experimental PDF function instead of passing the entire screen.
What is the difference between PDF viewer embedding and iframe embedding?
The PDF viewer renders a document inside a canvas app. An iframe places the whole canvas app in another site, with same-tenant access limits and possible pop-up requirements for apps that use Launch().
Quick Recap
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.




