Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteWindows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallUse Puppeteer to load the invoice page, wait until the invoice itself is ready, then call page.screenshot(). Set the viewport before navigation so the page lays out at the dimensions you expect. A screenshot records the rendered page; it does not verify that the invoice meets GST requirements.
Capture the invoice as an image
Install Puppeteer in a Node.js project, then use this example. Replace the URL with the invoice page you can access; if the page requires authentication, add the appropriate login flow or session handling for your application.
As an Amazon Associate I earn from qualifying purchases.
import puppeteer from 'puppeteer';
const browser = await puppeteer.launch();
try {
const page = await browser.newPage();
await page.setViewport({ width: 1280, height: 900 });
await page.goto('https://example.com/invoice/123', { waitUntil: 'networkidle2' });
await page.screenshot({ path: 'gst-invoice.png', fullPage: true });
} finally {
await browser.close();
}
This saves a PNG named gst-invoice.png. Puppeteer documents Page.screenshot() as the page-capture method and supports saving the result to a path: Puppeteer Page.screenshot() API.
The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Choose the capture area
- Keep
fullPage: trueto capture the page beyond the visible viewport, which is useful for a long invoice. - Remove
fullPage: truefor a viewport-only image. - Set the viewport dimensions before
page.goto(). Responsive pages may reflow at different viewport sizes.
Wait for the invoice content, not just navigation
waitUntil: 'networkidle2' is a navigation condition, not proof that a web application has finished rendering invoice data. An application may fetch or display the invoice after the initial page load. In that case, wait for a selector or loaded-state signal that actually exists on the page:
#1 Best Overall
- Two-Part Carbonless Invoice Book: Each invoice book has 50 sets of invoices, each with a white/light yellow section, with the yellow section retained in the invoice book to maintain detailed records.
- Consecutively Numbered: Enlarged red 6-digit numbers in the upper right corner of each invoice receipt book help you quickly navigate through your orders.
- Wraparound Divider Flap: A thick folded cardboard divider is integrated into the back of each invoice book for use between each two-part sales order to prevent the written content from rubbing off on subsequent copies of the invoice, resulting in wasted invoices.
- 2 Packs/50 Sets (100 Sets Total): Each invoice book provides 50 sequentially numbered carbonless sets of 2 invoice books for long-term use.
- Customizable Space: Each invoice book for small business has space at the top to add a company seal or sticker.
await page.goto('https://example.com/invoice/123', { waitUntil: 'networkidle2' });
await page.waitForSelector('YOUR_INVOICE_CONTAINER_SELECTOR');
await page.screenshot({ path: 'gst-invoice.png', fullPage: true });
Replace YOUR_INVOICE_CONTAINER_SELECTOR with the real selector from the page; it is not a literal selector. If the application exposes a more reliable readiness condition, use that instead. Puppeteer’s Page API also documents device emulation through viewport and user-agent metrics: Page API documentation.
Use PDF when the goal is a printable document
For an image, use page.screenshot(). For document delivery or printing, use page.pdf(); Puppeteer applies print CSS by default. The two outputs can therefore differ if the site has print-specific styles. See Puppeteer Page.pdf() API.
Rank #2
- QUALITY INVOICES: Adams Order books provide a professional invoice or customer receipt; a great way to create and maintain a professional image for small businesses and service providers
- 50 TWO-PART CARBONLESS FORMS: Customers get the perforated white top copy; retain the canary and pink copies for your records
- WRAP-AROUND COVER: Fold the back cover between sets to keep invoices neat and legible
- ROOM FOR CUSTOMIZATION: A blank space at top leaves room for your company stamp; a big savings over custom-printed forms
- CONSECUTIVELY NUMBERED: Large 6-digit numbers in the upper right hand corner help you thumb through orders quickly
await page.goto('https://example.com/invoice/123', { waitUntil: 'networkidle2' });
await page.waitForSelector('YOUR_INVOICE_CONTAINER_SELECTOR');
await page.pdf({ path: 'gst-invoice.pdf', format: 'A4' });
As with the image example, replace the selector with one used by the actual page. If the PDF should reflect screen styling instead of print styling, set the media type before generating it:
Quick wins for a faster PC:
Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Clear out junk files and repair common Windows errorsFree Scan →Scan for outdated or missing drivers - takes under a minuteDriver Scan →await page.emulateMediaType('screen');
await page.pdf({ path: 'gst-invoice.pdf', format: 'A4' });
Print rendering can adjust colors. Puppeteer’s PDF documentation notes that CSS using -webkit-print-color-adjust can request exact colors where appropriate. Check the generated PDF because the page’s print styles and browser rendering affect the result: Puppeteer PDF API.
Rank #3
- QUALITY INVOICES: Adams Invoice books provide a professional invoice or customer receipt; easily customize by using the extra space at the top and your company stamp
- 50-TWO PART CARBONLESS FORMS: Customers get the perforated white top copy; retain the yellow copy for your records
- WRAP-AROUND COVER: Fold the back cover between sets to keep invoices neat and legible
- CONSECUTIVELY NUMBERED: Large 6-digit numbers help you thumb through invoices quickly
- STOCK UP: Each book includes 50 white/canary sets; order several to keep your favorite forms on hand
Know what a screenshot can and cannot establish
A screenshot shows what the browser rendered; it does not validate GST compliance. CBIC invoice rules list particulars that include the supplier’s name, address and GSTIN; a consecutive serial number unique for the financial year; issue date; recipient information where applicable; HSN code or accounting code for services; description; values; and tax particulars. Rule 46 on the government tax information portal states that the serial number must not exceed sixteen characters and must be unique for a financial year. See CBIC invoice rules and Rule 46.
Which particulars apply can depend on the transaction and taxpayer circumstances. Use the current rules and amendments, or qualified advice, for compliance decisions rather than relying on an image capture.
Rank #4
- This value 3 pack of Adams Invoice Books give you 150 two part carbonless invoices with a perforated white customer receipt and yellow duplicates for your records; 3 50-invoice books per pack
- Unique horizontal invoice sheets capture the purchased by and shipped to addresses; a compact 5-9/16 x 8-7/16 page still leaves plenty of room for details on up to 12 items sold
- Wraparound back cover prevents write-through between sets; pull out the perforated white customer receipt and the yellow carbonless duplicates stay behind for your records
- Unique 6 digit invoice numbers help you thumb through orders quickly; blank space up top gives you room for a company stamp—an affordable custom touch
- In value packs with three 50-invoice books for your small business; buy ahead to keep on site or take on the road for pop-up shop sales
Troubleshoot common capture problems
- The invoice is blank or incomplete: the application may render data after navigation. Wait for the actual invoice container or another reliable loaded-state signal before capturing.
- The screenshot cuts off the invoice: use
fullPage: trueif the content extends below the viewport. For viewport-only output, adjust the viewport to the dimensions you need. - The layout differs from the expected view: set the viewport before navigation; responsive layout can depend on viewport metrics.
- The PDF looks different from the screenshot: PDF generation uses print CSS by default. Check the page’s print styles, or call
page.emulateMediaType('screen')beforepage.pdf()when screen media is intended. - Colors in the PDF are altered: print color adjustment may affect them. Review the output and, where suitable, use
-webkit-print-color-adjustas described in Puppeteer’s PDF documentation.
Or skip the browser setup
If you only need a screenshot response from an API, ScreenshotNeo takes a URL in one GET request. Its response can be a PNG, JPEG, WebP or PDF. For example, using cURL:
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://example.com/invoice/123 -o gst-invoice.webp
See the ScreenshotNeo API documentation for the request options and setup. ScreenshotNeo removes cookie banners, newsletter popups and chat widgets before capture; those cleanup steps can be turned off. Bot checks, blank pages, failed loads and cache hits are not billed, and the response identifies the page verdict and billing status in headers. An MCP server offers take_screenshot, get_page_info and capture_pdf tools for AI agents. The free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000 shots. Sign up for 1,000 free screenshots a month, with no card required.
Frequently Asked Questions
Does networkidle2 guarantee the invoice is fully rendered?
No. It is a navigation condition; wait for an application-specific invoice-ready signal when the page renders data later.
Best Value
- 2 part carbonless forms (White originals, Canary duplicates) for invoicing customers
- Wraparound cover attached to back to place between sets
- Consecutively numbered within each book
- 50 sets per book
- Space at top for company stamp
Should I capture an invoice as a screenshot or a PDF?
Use page.screenshot() for an image and page.pdf() for a printable document that follows print CSS by default.
Quick Recap
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.

