DEV Community

Cover image for How to turn HTML webpage into an Image?

How to turn HTML webpage into an Image?

Jasmin Virdi on April 10, 2022

While working in one of my project I had to implement a feature where I have turn an HTML webpage to an Image. The first thought that occurred to m...
Collapse
 
imthedeveloper profile image
ImTheDeveloper

I imagine the use case was for automation rather than manually doing so.

Collapse
 
peerreynders profile image
peerreynders • Edited

Puppeteer: page.screenshot()
Playwright: page.screenshot()
Cypress: cy.screenshot()

Interesting use of Web APIs regardless

CanvasRenderingContext2D.drawImage()
HTMLCanvasElement.toDataURL()

Thread Thread
 
jasmin profile image
Jasmin Virdi

Thanks for mentioning 🙌

Collapse
 
racheal profile image
Racheal Walker

hey,
i like your approach but you can also try doing this.

Upload html-file(s) Select files from Computer, Google Drive, Dropbox, URL or by dragging it on the page.
Choose "to jpg" Choose jpg or any other format you need as a result (more than 200 formats supported)
Download your jpg.

Collapse
 
jasmin profile image
Jasmin Virdi

You can definitely try this way but I want to cover the case where you have to do it via Code.

Collapse
 
peerreynders profile image
peerreynders

That's the Google featured snippet you get when you search "How to turn HTML webpage into an Image?" (i.e. the title of the article) - which isn''t that useful without the website where it came from.

Collapse
 
jasmin profile image
Jasmin Virdi

Definitely, you can do this manually. My intention was to state an approach when you have to automate it or do it via code without using any library.👍

Collapse
 
code_rabbi profile image
Emeka Orji

This is so needed,
I was encountered with the problem of creating a card in 'img' format from information that a user inputs into a form

So this makes sense as I can dynamically add the user-input into the svg/canvas and print an image

ALL WITHOUT USING AN EXTERNAL LIBRARY😒!!!

Collapse
 
sefatanam profile image
Sefat Anam

from my point of view - OMGGGGG !

  • i'm backend dev :)
Collapse
 
jasmin profile image
Jasmin Virdi

🙌

Collapse
 
youpiwaza profile image
max

Or chrome extension "go full page".
You can print as PNG or PDF ;)

Nice article though, I liked the writing

Collapse
 
jasmin profile image
Jasmin Virdi

Definitely, there could be other ways but I wanted to try using plain JS

Collapse
 
youpiwaza profile image
max

No problem, if it was for discovery reasons ou just see if it waws possible :)

The security aspect is nice, it could be used as a deep sanitize ^^

Collapse
 
vulcanwm profile image
Medea

woah nice!

Collapse
 
jasmin profile image
Jasmin Virdi

Thanks 🙂

Collapse
 
timmortal profile image
Timmortal

As a programmer, I think think it's great to know how to use codes to achieve this.

Collapse
 
brunoj profile image
Bruno

Thank you for writing this

Collapse
 
randwulf_magnus profile image
Randell Knight

Wow, this is so cool. Thanks for sharing!

Collapse
 
skywarth profile image
skywarth • Edited

Fascinating. Can you please explain why we have to use 'xmlns' attribute.