media >99% Success Rate

Universal Web Printer

Convert any URL or HTML to PDF, PNG, JPEG, or WebP with smart scroll-stitch, element extraction, PDF encryption, and watermarking.

TypeScript Playwright PDF-lib Sharp Global

Key Features

Multi-format output — PDF, PNG, JPEG, WebP

Multiple view modes — viewport, full-page, CSS selector, readability

Smart scroll-stitch for accurate full-page captures

Element-level extraction via CSS selectors

Page manipulation — remove elements, click buttons, inject CSS, hide fixed headers

PDF encryption (RC4 128-bit) and watermarking

PDF merging for multi-page documents

Custom viewport and scale factor configuration

Use Cases

  • Automated report generation from web dashboards
  • Website archival and documentation
  • Visual regression testing snapshots
  • E-commerce product page screenshots for catalogs
  • Legal compliance — capturing web content as evidence
  • Generating PDFs from web applications

Input Parameters

ParameterTypeRequiredDescription
startUrlsarrayNoURLs to render
htmlContentstringNoRaw HTML to render
outputFormatstringNopdf, png, jpeg, or webp (default: pdf)
viewModestringNoviewport, fullPage, selector, or readability
targetSelectorstringNoCSS selector for element-level capture
viewportWidthnumberNoBrowser viewport width (default: 1280)
viewportHeightnumberNoBrowser viewport height (default: 720)
removeSelectorsarrayNoCSS selectors of elements to remove before capture
pdfPasswordstringNoEncrypt PDF with RC4 128-bit encryption

Output Example

The tool generates files in your chosen format (PDF, PNG, JPEG, or WebP) and stores them in the Apify dataset. Each output includes metadata:

1
2
3
4
5
6
7
8
9
{
  "url": "https://example.com",
  "format": "pdf",
  "fileName": "example-com.pdf",
  "fileSize": 245832,
  "viewMode": "fullPage",
  "viewport": { "width": 1280, "height": 720 },
  "encrypted": false
}

Frequently Asked Questions

Can I capture just a specific element on the page?
Yes, use the targetSelector parameter with a CSS selector to capture only a specific element. For example, use '#main-content' to capture just the main content area.
How does smart scroll-stitch work?
For full-page captures, the tool scrolls the page in increments, capturing each viewport slice, then stitches them together. This ensures lazy-loaded content and animations are properly captured.
Can I remove cookie banners or ads before capture?
Yes, use removeSelectors to specify CSS selectors of elements to remove. You can also use hideFixedElements to hide sticky headers and floating elements.

Related Tools

Ready to Extract Data?

Start using Universal Web Printer on Apify, or hire me for a custom solution.