playwright_save_as_pdf
Convert the current webpage into a PDF file with customizable settings like page format, margins, and background graphics. Ideal for saving or sharing web content in a printable format.
Instructions
Save the current page as a PDF file
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| filename | No | Name of the PDF file (default: page.pdf) | |
| format | No | Page format (e.g. 'A4', 'Letter') | |
| margin | No | Page margins | |
| outputPath | Yes | Directory path where PDF will be saved | |
| printBackground | No | Whether to print background graphics |
Implementation Reference
- src/tools/browser/output.ts:8-30 (handler)SaveAsPdfTool class containing the execute handler method that performs the PDF saving using Playwright's page.pdf()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}`); }); }
- src/tools.ts:377-400 (schema)Input schema definition for the playwright_save_as_pdf tool, specifying parameters like outputPath, filename, format, etc.{ 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"], }, },
- src/toolHandler.ts:526-527 (registration)Registration and dispatch in the main tool handler switch statement, routing calls to SaveAsPdfTool.executecase "playwright_save_as_pdf": return await saveAsPdfTool.execute(args, context);
- src/toolHandler.ts:315-315 (registration)Instantiation of the SaveAsPdfTool instance in initializeTools functionif (!saveAsPdfTool) saveAsPdfTool = new SaveAsPdfTool(server);
- src/tools.ts:424-424 (registration)Inclusion in BROWSER_TOOLS array for conditional browser launch handling"playwright_save_as_pdf"