Skip to main content
Glama

playwright_save_as_pdf

Convert web pages to PDF files with specified format, background settings, and margins. Save the generated PDF to a designated output path for easy access and sharing.

Instructions

Save the current page as a PDF file

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
filenameNoName of the PDF file (default: page.pdf)
formatNoPage format (e.g. 'A4', 'Letter')
marginNoPage margins
outputPathYesDirectory path where PDF will be saved
printBackgroundNoWhether to print background graphics

Implementation Reference

  • The SaveAsPdfTool class provides the core handler logic for saving the current Playwright page as a PDF file using page.pdf() with configurable options.
    export class SaveAsPdfTool extends BrowserToolBase {
      /**
       * Execute the save as PDF tool
       */
      async execute(args: any, context: ToolContext): Promise<ToolResponse> {
        return this.safeExecute(context, async (page) => {
          const filename = args.filename || 'page.pdf';
          const options = {
            path: path.resolve(args.outputPath || '.', filename),
            format: args.format || 'A4',
            printBackground: args.printBackground !== false,
            margin: args.margin || {
              top: '1cm',
              right: '1cm',
              bottom: '1cm',
              left: '1cm'
            }
          };
    
          await page.pdf(options);
          return createSuccessResponse(`Saved page as PDF: ${options.path}`);
        });
      }
    } 
  • Tool definition including name, description, and input schema for validation.
    {
      name: "playwright_save_as_pdf",
      description: "Save the current page as a PDF file",
      inputSchema: {
        type: "object",
        properties: {
          outputPath: { type: "string", description: "Directory path where PDF will be saved" },
          filename: { type: "string", description: "Name of the PDF file (default: page.pdf)" },
          format: { type: "string", description: "Page format (e.g. 'A4', 'Letter')" },
          printBackground: { type: "boolean", description: "Whether to print background graphics" },
          margin: {
            type: "object",
            description: "Page margins",
            properties: {
              top: { type: "string" },
              right: { type: "string" },
              bottom: { type: "string" },
              left: { type: "string" }
            }
          }
        },
        required: ["outputPath"],
      },
    },
  • Switch case in handleToolCall that routes the tool call to the SaveAsPdfTool instance.
    case "playwright_save_as_pdf":
      return await saveAsPdfTool.execute(args, context);
  • src/tools.ts:471-471 (registration)
    Inclusion in BROWSER_TOOLS array for conditional browser launch handling.
    "playwright_save_as_pdf",
  • Instantiation of the SaveAsPdfTool instance in initializeTools.
    if (!saveAsPdfTool) saveAsPdfTool = new SaveAsPdfTool(server);

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/executeautomation/mcp-playwright'

If you have feedback or need assistance with the MCP directory API, please join our Discord server