How to Archive a Login-Protected Web App Page as a PDF
Save a page you can access as a PDF, check what the browser captured, and choose a web archive when a static document is not enough.
Direct answer: Sign in through the app’s normal login flow, open the page you are allowed to access, wait for its content to load, then use the browser’s Print command and choose its PDF-saving destination. Open the saved PDF and check it: print output is static and may miss content that loads only after scrolling or interaction.
This method uses the authenticated browser session you already have. The PDF records a rendered page; it does not preserve the app’s live behavior, your login session, or every resource the page might load. The general Print-to-PDF approach is documented in Her Justice’s website-saving guide. Exact menu wording varies by browser and operating system.
Save the signed-in page as a PDF
- Sign in normally. Use the app’s own sign-in page, including its normal multifactor authentication or identity-provider flow if required. Do not share passwords or session cookies with a capture service.
- Navigate to the exact page. Confirm the account, record, filters, and date range shown are the ones you intend to preserve. Make sure you are permitted to retain the page and store the resulting file.
- Let the page settle. Wait for visible loading indicators to finish. If the app loads more content as you scroll, scroll through the relevant sections and give each section time to load. Expand any panels whose contents need to appear in the PDF.
- Open Print. Use the browser’s Print command or its keyboard shortcut. In the print dialog, select the available PDF destination or save-as-PDF option. The exact label depends on your browser and operating system.
- Review print preview. Check that expected sections, tables, and images appear, and that page breaks do not cut off important content. If a section is missing, return to the app and load or expand it before printing again.
- Save and inspect the file. Use a descriptive filename that does not contain credentials or session tokens. Open the PDF and verify its text, page boundaries, tables, and images.
Print dialogs may offer controls such as page range, paper size, orientation, margins, scale, and whether to include browser headers or backgrounds. Choose settings that make the content readable. These settings affect the printed rendering; they do not make the PDF interactive or add content the browser did not load.
What a PDF preserves—and what it does not
A PDF is useful when you need a convenient, static document to read or share with people who do not need to interact with the app. It generally reflects the page’s print rendering at the time you saved it. It is not a recording of the app’s live state: buttons, navigation, interactions, and later changes are not preserved as working features.
Content can be absent if it was behind a collapsed panel, loaded only after scrolling, fetched after printing began, or presented in a view that does not print well. A print preview and a check of the saved file help catch omissions, but cannot prove that every hidden or inaccessible resource was captured. If the page changes frequently, note the capture date separately in an appropriate record.
When a browser-based web archive is a better fit
If your goal is to preserve browser-loaded resources or support later replay, investigate a web archive instead of treating a PDF as a complete web capture. Webrecorder describes ArchiveWeb.page as a browser extension or desktop app that records pages while you browse. Its Browsertrix product describes crawling content behind logins with an active browser profile. These are vendor-described capabilities, not a guarantee that every app, multifactor flow, or protected resource will capture successfully.
The WACZ specification describes a package containing WARC archive data, indexes, and a manifest for looking up and replaying pages. A WACZ package serves a different purpose from a convenient PDF: it is intended to carry web archive material and replay context. Consider the required output, authenticated-browser support, interaction needs, capture effort, and whether you can inspect the result independently.
| Approach | Useful when | What to check |
|---|---|---|
| Browser Print to PDF | You need a readable static document from the page you can view. | Dynamic content, expanded sections, page breaks, and images may need inspection. |
| ArchiveWeb.page | You want to record pages while browsing, including interactions. | Capture depends on the site and the browsing actions performed. |
| Browsertrix | You need a broader or automated browser-based archive and can use a logged-in browser profile. | Setup is more involved than saving one PDF; site compatibility can vary. |
| WACZ package | You need a portable web archive with resources and indexes for replay. | It is an archive package, not a simple PDF document. |
Or skip the browser setup
For a publicly accessible page, ScreenshotNeo is a website screenshot API and MCP server. A screenshot is an image, not a PDF, and the API cannot use your logged-in browser session to reach a protected page. Do not send credentials or session cookies to it. For public pages, one GET request returns an image or PDF; see the API documentation.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
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)
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 removes cookie banners, newsletter popups, and chat widgets before a shot. Bot checks, blank pages, and failed loads are never billed. Its MCP server lets AI agents take screenshots. The free plan includes 1,000 screenshots a month with no card; paid plans start at $5 for 3,000 screenshots. Sign up for 1,000 free screenshots a month, with no card.
Troubleshooting
| Problem | Likely cause | What to try |
|---|---|---|
| The PDF is blank or missing the app content. | The page had not finished loading, the print destination was misselected, or the app’s print view did not render the content. | Return to the signed-in page, wait for it to settle, reopen Print, verify the preview, and confirm the selected destination saves a PDF. |
| Some rows, images, or sections are missing. | Content may load on scroll, require an expanded panel, or be omitted by the print layout. | Scroll through the relevant area, expand needed sections, wait for loading, and inspect preview and saved pages. If completeness matters, investigate browser-based web archiving. |
| Text or tables are cut off. | The page’s print layout or selected paper size, orientation, scale, or margins do not fit the content. | Try a different orientation or scale, adjust margins or paper size, and inspect page breaks before relying on the file. |
| The login page appears instead of the protected page. | The session expired, authentication redirected, or the protected route was opened outside the signed-in browser context. | Sign in through the normal flow, revisit the target page, verify it is visible, then print from that same browser session. |
| An archived capture is incomplete. | The app may depend on unsupported interactions, protected resources, or a login flow the capture process did not complete. | Check the archive tool’s capture workflow, browse the required content while recording, and inspect what the archive can replay. No cited vendor capability guarantees every app will work. |
| The PDF opens, but it is not evidence of the page’s full behavior. | A PDF is a static rendering. | If replay and loaded web resources matter, use a web archive format and validate the replay separately. |
Reliability, privacy, and cost considerations
- Verify the artifact. Keep the saved PDF or archive and inspect it independently. A successful save action alone does not show that the content is complete.
- Protect account data. Store captures in a private location appropriate to the page’s sensitivity. Avoid putting passwords, tokens, or session identifiers in filenames or notes.
- Use a permitted capture method. Accessing a page does not by itself establish permission to retain or redistribute it. Follow the app’s rules and your organization’s policies.
- Budget effort to the goal. Print-to-PDF is a quick route for one static reading copy. Browser-based archiving can take more setup and review, especially for interactive or authenticated pages.
- Check compatibility before depending on automation. Vendor descriptions do not guarantee that a particular app or authentication flow will be captured. Review the output before relying on it.
FAQ
Can a screenshot API save a page that requires my login?
A normal screenshot API request does not inherit the authenticated session in your browser. For a protected page, use the signed-in browser’s print workflow or investigate a browser-based archive designed for authenticated browsing. ScreenshotNeo is suited to publicly accessible pages in this workflow.
Does a PDF let someone interact with the web app later?
No. It is a static document. Use a web archive when replaying captured web resources is part of the requirement.
How can I tell whether the PDF is complete?
Compare it with the page you intended to save: check key sections, tables, images, expanded content, and page breaks. If content only appears after scrolling or interaction, make it load before printing and inspect the saved file.
Is a WACZ file another kind of PDF?
No. WACZ packages web archive data and indexing information for replay; PDF is a static document format.


