Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Use a Lambda-compatible Chromium build, drive it with Puppeteer, and call page.pdf(). The difficult part is not the PDF method itself; it is packaging a browser binary and its Linux libraries for the exact Lambda runtime and CPU architecture you deploy. This guide shows a ZIP/layer and container-image approach, print-versus-screen CSS behavior, a complete Node.js handler, deployment checks, and common failure fixes.

Choose the browser-rendering architecture

A headless browser is the appropriate route when your HTML depends on browser layout, modern CSS, web fonts, JavaScript, images, or client-side components. Puppeteer creates a page, loads HTML or a URL, and returns PDF bytes from page.pdf(). Your handler can return those bytes through API Gateway, upload them to object storage, or pass them to another service.

Lambda supports two deployment formats:

Format When it fits Important constraint
ZIP package plus layers Your browser and native libraries fit the package and layer limits, and you want conventional Lambda deployment. The function and all layers together must be no more than 250 MB unzipped. Layer contents must be Linux-compatible.
Container image You need direct control of Chromium, system libraries, or build tooling that is awkward to fit in a ZIP. The image must be Lambda-compatible; a non-AWS base image must include the Node.js runtime interface client.

AWS documents Node.js 22, 24, and 26 base-image tags, with Node.js 20 and later images based on Amazon Linux 2023. Confirm the currently supported tag before building. See AWS container-image guidance, Node.js ZIP packaging, and Lambda layers.

Pin compatible Chromium and Puppeteer versions

Puppeteer and Chromium are a matched pair. Install or select versions that explicitly support one another, then build for the Lambda runtime and architecture you actually use (for example, x86_64 or arm64). The Sparticuz Chromium project documents serverless use, including AWS Lambda, and points to Puppeteer’s Chromium support information. Its release and architecture support can change, so check the project documentation when you choose versions.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
#1 Best Overall
PDF Converter Ultimate - Convert PDF files into Word, Excel, PowerPoint and others - PDF converter software with OCR recognition compatible with Windows 11 / 10 / 8.1 / 8 / 7
  • Convert your PDF files into Word, Excel & Co. the easy way
  • Convert scanned documents thanks to our new 2022 OCR technology
  • Adjustable conversion settings
  • No subscription! Lifetime license!
  • Compatible with Windows 11, 10, 8.1, 7 - Internet connection required

Do not treat an old chrome-aws-lambda package as a current default: its npm listing says it was published five years ago. Likewise, AWS CloudWatch Synthetics examples such as Puppeteer-core 22.10.0 with Chromium 125.0.6422.112 describe a Synthetics runtime, not an arbitrary Lambda function. They are not a substitute for validating your own artifact.

Build a Lambda handler with Puppeteer

The following handler assumes a Chromium package exposes an executable path and that puppeteer-core supplies the automation API. The exact import and executable-path property depend on the Chromium package release you pin; verify those names in that package’s documentation.

  1. Install matching puppeteer-core and Chromium dependencies in a Linux build environment matching your Lambda architecture.
  2. Package the browser binary and required shared libraries in the function, a layer, or a container image.
  3. Set the Chromium executable path supplied by your chosen package.
  4. Launch with serverless-safe flags, create a page, load the document, select media behavior, and call page.pdf().
const chromium = require('@sparticuz/chromium');
const puppeteer = require('puppeteer-core');

exports.handler = async (event) => {
  const html = event.html || '<!doctype html><html><body><h1>Hello</h1></body></html>';
  let browser;
  try {
    browser = await puppeteer.launch({
      args: chromium.args,
      defaultViewport: chromium.defaultViewport,
      executablePath: await chromium.executablePath(),
      headless: chromium.headless
    });

    const page = await browser.newPage();
    await page.setContent(html, { waitUntil: 'networkidle0' });

    // Omit this line for the default print CSS behavior.
    // await page.emulateMediaType('screen');

    const pdf = await page.pdf({
      format: 'A4',
      printBackground: true,
      margin: { top: '20mm', right: '15mm', bottom: '20mm', left: '15mm' },
      preferCSSPageSize: true
    });

    return {
      statusCode: 200,
      headers: { 'Content-Type': 'application/pdf' },
      isBase64Encoded: true,
      body: pdf.toString('base64')
    };
  } finally {
    if (browser) await browser.close();
  }
};

For an external page, replace setContent with page.goto(url, { waitUntil: 'networkidle0' }). If the document loads fonts or images after that point, wait for a known selector or an application-specific readiness signal rather than assuming network idle always means the layout is complete.

Understand print CSS versus screen CSS

Puppeteer’s Page.pdf() uses the print CSS media type by default. To generate a PDF with screen media, call page.emulateMediaType('screen') before page.pdf(). This choice affects @media print, @media screen, visibility, colors, and layout.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
await page.emulateMediaType('screen');
const pdf = await page.pdf({ printBackground: true });

PDF output also adjusts colors for printing by default. If exact on-screen colors matter, use CSS such as:

Rank #2
Tengchi RCA to HDMI Converter, AV to HDMI Adapter
  • RCA Female to HDMI Video Converters Adapter : The cable is used to convert analog composite input to HDMI 1080p output, displayed on a 1080p HD TV/TV/monitor.
  • Input ports: 1xRCA Female (Yellow, White, Red), Output ports: 1xHDMI 1.3 1080p. NOT support 3D and 4K, NOT support HDMI Converts to AV
  • AV to HDMI Converter: Plug and Play, Easy to Install and Operate, Powered by External USB Cable. Note: Please hook up the USB power cable (included) to 5V 1Apower source during use (not included power supply ).
  • Support PAL, NTSC3.58, NTSC4.43, SECAM, PAL/M, PAL/N standard TV formats input. For PS2,PS3,Xbox,N64,STB, VHS, VCR, DVD Players and other devices with standard composite AV input.
  • You Will Get : 1x RCA Female TO HDMI Converter, 1xHDMI cable, 1xUSB cable, 1xUser Manual. ONE YEAR WARRANTY - if you are not satisfied for any reason whatsoever, do not hesitate to contact us .
html {
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}

Set the PDF options deliberately: paper format or CSS page size, margins, landscape orientation, background printing, page ranges, and whether CSS page dimensions should win. The correct values depend on your document; the API documentation does not guarantee a universal layout recipe.

Package as a ZIP and layer

ZIP deployment works when the browser distribution and native libraries fit. Build native modules and browser dependencies for Amazon Linux and your selected architecture, not from an incompatible desktop-only environment. Docker is one practical way to provide a matching Linux build environment.

  • Keep Node.js dependencies under a recognized layer path such as nodejs/node_modules, or include them in the function package.
  • Include every shared library required by Chromium.
  • Measure the final unzipped function-plus-layer size. The combined limit is 250 MB, and Lambda allows up to five layers.
  • Deploy and invoke the exact artifact you measured; a locally working browser does not prove Lambda compatibility.

When a browser distribution approaches the size limit or requires many operating-system packages, a container image can be simpler to reproduce and update. That is a packaging trade-off, not a guarantee that containers are faster or cheaper.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Package as a container image

Start with an AWS Node.js Lambda base image when its runtime meets your needs. Install the pinned Chromium build and system libraries during image construction, copy your handler, and set the Lambda command to the handler name. AWS base images include the runtime interface client and emulator. If you choose a non-AWS base image, add the Node.js runtime interface client yourself or Lambda will not be able to invoke the function.

Build the image for the same architecture selected in Lambda and run it locally with the Lambda runtime interface emulator. This catches missing libraries, incorrect executable paths, and handler errors before deployment. It does not replace validation in the deployed runtime.

Rank #3
Audio Converter - Edit and convert your sound and music files to other audio formats - easy audio editing software - compatible with Windows 10, 8 and 7
  • AUDIO ALL-ROUNDER – convert your audio or video files into almost any audio format - edit, trim, merge, adjust sample and bit rate, extract audio from videos
  • Supported input formats - MP3, MP2, AAC, AC3, WAV, WMA, M4A, RM, RAM, OGG, AU, AIF, AIFF, PG, MPEG, MPEG 2, MP4, M4V, MJPG, MJPEG, HD TS, HD MTS, HD M2TS, HD MPG, HD MPEG, HD MP4, HD WMV, QuickTime HD MOV and others
  • Supported output formats - AAC, AC3, AIFF, AMR, AU, FLAC, M4A, MKA, MP2, MP3, OGG, WAV, WMA
  • EASY TO INSTALL AND USE - user-friendly and intuitive interface, free tech support whenever you need assistance
  • compatible with Windows 10, 8 and 7 (32 and 64-bit versions) - single user license

Validate the deployed artifact

  1. Record the Lambda runtime, architecture, memory, timeout, deployment format, Puppeteer version, Chromium version, and package digest.
  2. Invoke with a small HTML document containing text, a background color, an image, and a page break.
  3. Check the returned Content-Type, base64 handling, page count, fonts, images, margins, and print colors.
  4. Repeat with the largest realistic document and with slow external assets.
  5. Inspect CloudWatch logs for launch failures, navigation timeouts, and memory exhaustion.

Choose timeout and memory from measured workload behavior. Browser startup, JavaScript execution, fonts, images, and document length all affect resource use; there is no workload-independent setting established here.

Secure HTML and URL inputs

Rendering user-controlled HTML or URLs is an application-security problem. Validate allowed schemes and hosts, restrict or proxy outbound network access where appropriate, limit document size and rendering time, and avoid passing untrusted values into shell commands. Consider whether rendered pages can reach internal services or expose credentials through custom headers. The browser package alone is not a complete isolation design.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Troubleshooting Lambda PDF failures

“Browser was not found” or executable-path errors

Cause: The binary is absent, in the wrong path, or the package API changed. Fix: Log the resolved executable path, verify it exists in the deployed artifact, and use the path function documented by your pinned Chromium release.

“Failed to launch” with missing shared libraries

Cause: Dependencies were built for a desktop OS, the wrong Amazon Linux generation, or the wrong architecture. Fix: rebuild in a matching Linux environment, include the required libraries, and test the same image or layer locally.

Works locally but times out in Lambda

Cause: Different network access, cold-start time, page scripts, or external assets. Fix: set an explicit navigation timeout, wait for a deterministic readiness selector, reduce unnecessary resources, and verify Lambda VPC and egress configuration.

Rank #4
3.3 Feet VHS to Digital Converter, Type-C/USB 2.0 Video Cpture Card
  • RCA to USB Converter: This USB Capture Device can convert anolog RCA composite input into high-definition USB output, the maximum output resolution can reach 1920x1080@30Hz, suitable for camcorders, set-top boxes, boxes, DV camcorders, DVD, VHS, VCD, VCR, DVR and other devices. (Note: Only compatible with NTSC/PAL formats)
  • USB2.0 Video Capture: Supports RCA and S-Video input, USB 2.0/Type-C capture, the RCA to USB Capture Card is compatible with most current laptops, ensuring stable video capture and transmission.
  • 3.3ft/1m USB Cable: avedio links USB2.0 capture card is equipped with 3.3 feet USB capture cable, reduce the use of troubles caused by short cables and improve operational flexibility.
  • Wide Compatibility: Compatible with Windows and MacOS operating systems and supporting video capture software such as OBS, Potplayer, etc., this RCA to USB Capture Card is ideal for video production, screen recording and other scenarios.
  • Packing List: RCA&S-Video to USB Capture Card*1, USB A to Type-C converter*1, CD*1, 5ft S-Video Cable*1, RCA Converter*1, User Manual*1.

Styles or colors differ from the browser preview

Cause: PDF uses print media by default or backgrounds are not enabled. Fix: call emulateMediaType('screen') when screen CSS is required, set printBackground: true, and use print-color-adjust CSS where exact colors are necessary.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Large documents fail or exceed limits

Cause: Memory, timeout, response-size, or deployment-package constraints. Fix: store output in object storage instead of returning large base64 responses, split exceptionally large jobs, and reassess ZIP versus container packaging. Confirm the 250 MB unzipped package limit for ZIP deployments.

Fonts or images are missing

Cause: The runtime cannot reach the asset, the asset loads after capture, or the font is not packaged. Fix: use reachable HTTPS assets or package fonts, wait for them explicitly, and inspect the generated PDF in a test invocation.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Or skip the browser setup

ScreenshotNeo provides a website screenshot API and MCP server when you need a rendered capture without maintaining Chromium in Lambda. It accepts consent banners before capture and removes more than 60 known consent platforms, newsletter popups, and chat widgets; bot checks, blank pages, timeouts, failed loads, and cache hits are not billed, with the result identified by X-Page-Verdict and X-Billed headers. Its MCP tools—take_screenshot, get_page_info, and capture_pdf—work with Claude, Cursor, and other MCP clients.

For a PDF or screenshot-oriented workflow, call the API directly:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp

See the ScreenshotNeo documentation for output and options. The service also supports full-page captures, CSS-selector elements, device presets and custom viewports, retina scale, PDF paper settings and page ranges, custom CSS or JavaScript, waits, request blocking, headers, cookies, user agents, authorization, geolocation, caching, signed links, asynchronous webhooks, bulk capture, and a usage API.

Best Value
Roxio Easy VHS to DVD 3 Plus | VHS, Hi8, V8 Video to DVD or Digital Converter | Amazon Exclusive 2 Bonus DVDs [Windows Disc]
  • Convert your VHS tapes to DVD or digital to enhance and preserve your home movies
  • Capture analog video directly from your camcorder or VCR and burn to DVD or convert to popular digital formats to share freely across devices
  • Trim video, make quick edits, enhance color, add transitions, reduce noise and stabilize old footage to breathe new life into your old videos
  • Complete your video experience by selecting from creative, customizable DVD menu templates, or creating personalized disc labels
  • Get 2 DVDs for your first projects: An Amazon exclusive extra

The Free plan includes 1,000 screenshots per month with no card. Paid plans start at $5 for 3,000 shots; every feature is available on every plan. Create a free ScreenshotNeo account.

Node.js alternatives for direct API use

Python

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)

Node.js

const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);

Frequently Asked Questions

Can I use the full `puppeteer` package instead of `puppeteer-core`?

Only if your deployment also contains the Chromium revision and dependencies that package expects. In Lambda, teams commonly separate the automation library from a deliberately pinned serverless Chromium build so the executable and architecture can be verified together.

Should I select arm64 or x86_64?

Select the architecture supported by your chosen Chromium build and build every native dependency for it. Do not switch architecture without rebuilding and revalidating the complete artifact.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Can Lambda return a PDF directly through API Gateway?

Yes, if your integration supports binary responses and you base64-encode the PDF as shown. For larger files, storing the bytes in object storage and returning a download reference avoids response-size constraints.

Quick Recap

Bestseller No. 1
PDF Converter Ultimate - Convert PDF files into Word, Excel, PowerPoint and others - PDF converter software with OCR recognition compatible with Windows 11 / 10 / 8.1 / 8 / 7
PDF Converter Ultimate - Convert PDF files into Word, Excel, PowerPoint and others - PDF converter software with OCR recognition compatible with Windows 11 / 10 / 8.1 / 8 / 7
Convert your PDF files into Word, Excel & Co. the easy way; Convert scanned documents thanks to our new 2022 OCR technology
$29.99
Bestseller No. 3
Bestseller No. 5
Roxio Easy VHS to DVD 3 Plus | VHS, Hi8, V8 Video to DVD or Digital Converter | Amazon Exclusive 2 Bonus DVDs [Windows Disc]
Roxio Easy VHS to DVD 3 Plus | VHS, Hi8, V8 Video to DVD or Digital Converter | Amazon Exclusive 2 Bonus DVDs [Windows Disc]
Convert your VHS tapes to DVD or digital to enhance and preserve your home movies; Get 2 DVDs for your first projects: An Amazon exclusive extra
$51.56

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.