Saves the current page as a PDF file. This will open a dialog, supplied by the underlying operating system, asking the user where they want to save the PDF file.

This is an asynchronous function that returns a Promise.


var saving = browser.tabs.saveAsPDF(
  pageSettings   // object


object. Settings for the saved page, as a tabs.PageSettings object. This object must be given, but all its properties are optional. Any properties not specified here will get the default values listed in the PageSettings documentation.

Return value

A Promise that will be fulfilled with a status string when the dialog has closed. The string may be any of:

  • "saved"
  • "replaced"
  • "canceled"
  • "not_saved"
  • "not_replaced"


In this example a background script listens for a click on a browser action, then tries to save the currently active tab as a PDF file, then logs the result:

browser.browserAction.onClicked.addListener(() => {
    .then((status) => {

Browser compatibility

Update compatibility data on GitHub
ChromeEdgeFirefoxOperaSafariFirefox for Android
saveAsPDFChrome No support NoEdge No support NoFirefox Full support 81
Full support 81
No support 56 — 81
Notes This function does not work on macOS.
Opera No support NoSafari No support NoFirefox Android No support No


Full support  
Full support
No support  
No support
See implementation notes.
See implementation notes.