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

To bulk convert HTML to JPG, render each page in a browser engine and save its output as a JPEG. For a repeatable batch, use Puppeteer with an explicit type: 'jpeg', a deliberate viewport or full-page setting, and a wait condition suited to the page. Chrome Headless is handy for a one-off screenshot, while Browsershot supports URL, local-file, and HTML-string input through Puppeteer and Chrome.

What you need to decide before converting

HTML is a description of a page, not an image file. A browser must lay out the markup, load styles, fonts and other assets, and run any required scripts before a screenshot can be saved. A reliable batch therefore has two parts: render each input in a browser, then write and verify a JPEG for it.

  • Input: a remote URL, a local HTML file, or an HTML string. Different tools expose different input routes.
  • Extent: capture the current viewport or the full page. A viewport image may omit content below the fold.
  • Readiness: decide what must load before capture. A page can still be changing after navigation completes.
  • JPEG output: specify JPEG explicitly where possible. Screenshot APIs often default to PNG.
  • Batch behavior: map each input to a distinct output name, record failures, and inspect representative results before processing a large set.

Choose a conversion method

Chrome Headless for a quick URL capture

Chrome Headless provides a command-line --screenshot option and accepts --window-size for the viewport. Its documented CLI screenshot example describes PNG output, not a direct JPEG setting. If JPG is mandatory, use Puppeteer or Playwright with JPEG selected, or convert the resulting PNG with an image tool.

Puppeteer for repeatable batches

Puppeteer controls headless Chrome and exposes screenshot options including file path, image type, quality, clipping and full-page capture. It is a practical choice when you need a loop, per-input error handling and explicit JPEG output. The options document PNG as the default; choose type: 'jpeg' for JPG and set quality from 0 to 100 if you want to tune compression. Quality applies to JPEG, not PNG.

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.
#1 Best Overall
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

Playwright as an automation alternative

Playwright also documents page screenshots with JPEG output controls. It can be used for the same core workflow—open a page, wait for it, and capture a file—but the examples below use Puppeteer.

Browsershot for PHP workflows

Spatie Browsershot documents URL input as well as htmlFromFilePath and html methods for local files and HTML strings. It runs Puppeteer with headless Chrome. Choose it when your conversion process already lives in PHP; consult its project README for the current setup and method details.

Bulk convert URLs to JPG with Puppeteer

Install Node.js and Puppeteer in a project, then save this script as convert.js. It visits each URL, waits for the documented Puppeteer navigation condition used in Google’s example, and writes one JPEG per URL. The script logs failures instead of silently treating a partial batch as complete.

Rank #2
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
  1. Initialize a project: run npm init -y, then npm install puppeteer.
  2. Save the script: add the code below as convert.js.
  3. Run it: use node convert.js. The images are written to the shots directory.
const fs = require('node:fs/promises');
const path = require('node:path');
const puppeteer = require('puppeteer');

const urls = [
  'https://example.com/',
  'https://www.wikipedia.org/'
];

async function main() {
  const outDir = path.resolve('shots');
  await fs.mkdir(outDir, { recursive: true });
  const browser = await puppeteer.launch({ headless: true });
  const failures = [];

  try {
    for (let i = 0; i < urls.length; i++) {
      const url = urls[i];
      const page = await browser.newPage();
      try {
        await page.setViewport({ width: 1440, height: 900 });
        await page.goto(url, {
          waitUntil: 'networkidle2',
          timeout: 60000
        });
        const file = path.join(outDir, `page-${String(i + 1).padStart(4, '0')}.jpg`);
        await page.screenshot({
          path: file,
          type: 'jpeg',
          quality: 85,
          fullPage: true
        });
        console.log(`Saved ${url} -> ${file}`);
      } catch (error) {
        failures.push({ url, error: error.message });
        console.error(`Failed ${url}: ${error.message}`);
      } finally {
        await page.close();
      }
    }
  } finally {
    await browser.close();
  }

  if (failures.length) {
    console.error(`${failures.length} of ${urls.length} page(s) failed.`);
    process.exitCode = 1;
  }
}

main().catch(error => {
  console.error(error);
  process.exitCode = 1;
});

Replace the sample URLs with your input list. Sequential processing is intentional: it keeps the example simple and limits simultaneous browser pages. For larger workloads, add bounded concurrency only after checking memory and site behavior in your environment. No documented source here establishes a guaranteed throughput or maximum batch size.

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

Choose full-page or viewport output deliberately

The example uses fullPage: true, which captures beyond the initial viewport. Set it to false for a viewport screenshot. The viewport dimensions affect responsive layout, so choose values representative of the result you need. On very long pages, check the final dimensions and content; a full-page capture is not the same deliverable as a fixed-size viewport image.

Set JPEG compression consciously

JPEG is lossy. The script’s quality value of 85 is an example setting, not a universally ideal value or an official benchmark. Increase it when fine detail matters more than file size, or lower it when smaller output matters more. Confirm the visual result with representative pages before applying one setting to every input.

Rank #3
Capture Card, USB Video Capture Card Device, Audio Video Converter Grabber for RCA to USB-Convert VHS Mini DV VCR Hi8 DVD to Digital, for PC TV Tape Player Camcorder, MAC Windows Vista Compatible
  • AV TO USB Converter: Capture videos and audios from VHS, VCR, Hi8, DV tapes to a PC, with the help of our USB Video Converter. Save room while digitizing your favorite old memories
  • Quality Capture Card: Our USB Video Capture Card converting anolog RCA composite input into HD 720P USB output and capturing audio without any sound card. Advanced signal processing technology provides you with great precision, colors, resolutions, and details.
  • Plug and Play: Automatically install the driver once you hook up this RCA to USB Converter to a PC. No external power is needed. User-friendly and easy to operate
  • Wide Compatibility: The Video Capture Card can work with video devices with RCA connector or S-Video connector, such as VHS, VCR, Hi8, camcorder, compatible with Windows and Mac OS. Support video formats like NTSC, PAL, and support brightness, contrast, hue, and saturation control
  • Note: The Video Converter is used with acquisition software. We recommend OBS Studio or PotPlayer for Windows, and QuickTime Player for Mac. They can be downloaded for free online. Please operate according to the steps in User Manual or contact us if you have any questions

Convert local HTML files

For local documents, open each file through a browser page using a file URL, then use the same screenshot options. Relative stylesheets, images and fonts need to be reachable from the HTML file’s location. If a file depends on scripts or network resources, allow them to load before capture.

const fs = require('node:fs/promises');
const path = require('node:path');
const { pathToFileURL } = require('node:url');
const puppeteer = require('puppeteer');

const files = ['reports/one.html', 'reports/two.html'];

async function main() {
  await fs.mkdir('jpg', { recursive: true });
  const browser = await puppeteer.launch({ headless: true });
  try {
    for (let i = 0; i < files.length; i++) {
      const input = path.resolve(files[i]);
      const page = await browser.newPage();
      try {
        await page.setViewport({ width: 1440, height: 900 });
        await page.goto(pathToFileURL(input).href, { waitUntil: 'load' });
        await page.screenshot({
          path: path.join('jpg', `file-${String(i + 1).padStart(4, '0')}.jpg`),
          type: 'jpeg',
          quality: 85,
          fullPage: true
        });
      } finally {
        await page.close();
      }
    }
  } finally {
    await browser.close();
  }
}

main().catch(error => {
  console.error(error);
  process.exitCode = 1;
});

If you need to render HTML strings or handle local-file paths through a PHP application, Browsershot documents those input forms along with URL input. Its rendering path depends on Puppeteer and Chrome, so the runtime needs the relevant browser setup.

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

Control timing for dynamic pages

Capture timing is a common source of incomplete images. Chrome Headless’s --timeout sets a maximum wait before capture; it may take the screenshot even if loading continues. A timer is not proof that the content you need is ready. In Puppeteer, Google’s example navigates with waitUntil: 'networkidle2', as the batch script does, but sites with ongoing requests or delayed rendering may need a more specific readiness condition.

Rank #4
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
  • Wait for a known selector when the page has a reliable content element that appears after rendering.
  • Use a deliberate delay only when the page has a predictable delayed change and no better readiness signal.
  • For pages with lazy-loaded images, inspect whether images below the fold appeared in the full-page capture; the available official material does not promise identical behavior for every page.
  • Do not assume that network inactivity means every animation, third-party widget or client-side update has finished.

Check output and handle failures

A completed script run is not enough to establish that every output is usable. Build basic validation into the batch workflow: confirm the expected number of files, check the extension and actual image format, inspect dimensions, and open a sample from each type of input. Give each source a unique output filename; using a URL or basename directly without sanitizing it can create collisions.

Common problems and fixes

  • The output is PNG, not JPG: screenshot APIs may default to PNG. Set type: 'jpeg' in Puppeteer or use a separate image conversion step after a Chrome CLI capture.
  • The lower part of the page is missing: viewport capture only covers the configured viewport. Enable Puppeteer’s fullPage option and verify the resulting image.
  • Text, images or charts are missing: the page may not have finished loading when captured. Wait for a relevant selector or other page-specific readiness condition; a fixed timeout can still capture too early.
  • Layout differs from the expected result: check viewport dimensions, fonts, responsive breakpoints, network assets and scripts. Rendering can vary with environment and page behavior; the cited documentation does not establish a general fidelity guarantee.
  • A file page cannot load its assets: verify that linked assets use paths available to the local file and that the required files exist. For HTML that relies on a server context, serve it locally and navigate to its URL instead.
  • The batch stops after one bad page: catch errors for each input, log the failing source, continue to the next item, and report a nonzero exit status at the end if any failed.
  • The process runs out of resources: avoid opening an unbounded number of pages. Start with sequential processing, then test limited parallelism against your own workload and machine.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Performance, reliability and cost considerations

Browser rendering has real runtime and memory costs, but the reviewed official material does not publish comparable speed, fidelity, pricing or batch-capacity measurements for these methods. Measure your own representative inputs before estimating a large conversion job. Page size, scripts, remote assets, fonts, waits and capture extent all affect the work performed.

For reliability, log input-to-output mapping, retain errors, and make reruns target failed inputs rather than overwriting good images blindly. A deterministic filename scheme and a small validation pass make it easier to identify missing or malformed results. Run a sample batch that includes long pages, local assets and dynamic content before processing the complete collection.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Best Value
VHS to Digital Converter & RCA to HDMI Adapter USB Video Capture for VCR/DVD/AV/PS2/Wii,av to hdmi to Display Output, wii hdmi Adapter,Save/Convert OldVideo (Software Required for Cap
  • 2-in-1: vhs to digital converter & rca to hdmi converter! Digitize & Convert Simultaneously,Uniquely designed for both VHS to digital conversion and RCA to HDMI display output! Capture your old VHS tapes, VCRs, or PS2/Wii games to your computer via USB/Type-C port, while simultaneously viewing them in real-time on HDMI TVs/monitors. No need to buy separate devices—perfect for archiving family memories or retro gaming.
  • USB-A & USB-C Dual Inputs for Universal Compatibility This VCR to digital converter Works with any computer! Connect via USB-A (for older PCs) or USB-C (for MacBook/Modern Laptops). Capture analog signals from VHS/DVD players, Hi8 cameras, or game consoles (PS2/Wii) and save them as MP4 files.
  • Preserve Precious Memories in Digital Formats Rescue fading VHS tapes and convert them to digital files (1080p) for permanent storage or sharing. Compatible with a wide range of open capture software, supports batch conversion, clip editing, and direct upload to YouTube/Facebook. Ideal for weddings, birthdays, or vintage home videos.
  • Usb video capture card for HDMI Live Preview & Multi-Device Support Watch your analog content on modern HDMI displays instantly! Convert RCA/AV signals to HDMI (Switch Function for 720p/1080p) for TVs, projectors, or gaming monitors. Bonus: Use the HDMI loop-through to preview digitization progress while capturing—no more guesswork!
  • Retro Tech Revival: From VCRs to Wii Consoles Compatible with VHS/VCR/DVD players, Hi8 camcorders, PS2, Wii, and RCA-based devices. Includes RCA/AV cables and a USB-C adapter. Give your old gear new life—stream classic games, digitize tapes, or connect legacy devices to TVs effortlessly!

Or skip the browser setup

ScreenshotNeo offers a one-request screenshot API; its documented service supports PNG, JPEG, WebP and PDF. For a remote URL:

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 API documentation for request options, including specifying the output format. Cookie banners, newsletter popups and chat widgets are removed before capture; bot checks, blank pages and failed loads are not billed. Its MCP server exposes screenshot tools for AI agents. The Free plan includes 1,000 shots a month with no card; paid plans start at $5 for 3,000. ScreenshotNeo is made by Yorker Media. Learn more at ScreenshotNeo, or sign up for the free plan.

Sources and scope

The browser workflow described here follows documented features from Chrome Headless documentation, the Puppeteer ScreenshotOptions API, the Spatie Browsershot README, and Chrome for Developers’ Headless Chrome material. Puppeteer ScreenshotOptions displayed version 25.12.0 when accessed on 2026-09-29. These sources document capabilities; they do not establish a general success rate, benchmark, or identical rendering across environments.

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.

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