13

Is there some way in Safari, possibly via a third-party extension, to save the running contents of a Web page as a PNG image?

I understand I could print the page to PDF and use Preview to export it as a PNG image. However:

  1. I’d prefer not to create a temporary PDF file and then manually open Preview to export the PDF contents to PNG;
  2. I’d like the contents to be running instead of paginated, i.e., no page breaks;
  3. When the PDF file contains multiple pages, Preview seems to export the current page only to PNG.

I don’t have any experience with OS X automation but I suspect it could be used for this, though I want conditions 2 and 3 to be met.

I’m running Safari 5.1.1 on OS X Lion.

  • What if the Web page requires you to log in to view the content? I tried paparazzi in this situation and it shows me the login page. Can you pass credentials to paparazzi? – user342766 Dec 21 '15 at 13:15
8

Try Paparazzi! It can save the entire website to a single png file and it lets you specify the size. Once installed, you can also launch it from within Safari by adding 'paparazzi:' to the URL. For example paparazzi:http://www.nytimes.com

  • 2
    This is probably the best solution for the problem. Very Mac-like UI, easy way of invoking it and lets you save the entire page length in one image (with custom width). Also, it's free (with donations welcome). – Ingmar Hupp Nov 9 '11 at 18:56
5

webkit2png should be pretty close to Safari. It also works with webarchive files saved from Safari.

$ webkit2png -F http://apple.stackexchange.com/questions/30637 -o nameprefix
Fetching http://apple.stackexchange.com/questions/30637 ...
 ... done
$ webkit2png ~/Downloads/test.webarchive
Fetching ~/Downloads/test.webarchive ...
 ... done
$ ls
0testwebarchive-clipped.png 0testwebarchive-thumb.png
0testwebarchive-full.png    nameprefix-full.png

Awesome Screenshot is an extension for that should support full page screenshots. I couldn't get them to work with all pages though.

  • Interesting. I’d rather have a solution that could be triggered via Safari, though. – user5077 Nov 8 '11 at 22:49
  • Promising but capturing the whole page (as opposed to the current viewport) doesn’t work well. :-/ – user5077 Nov 8 '11 at 23:18
  • 1
    AwesomeScreenshot is widely considered to be malware. – Calion Oct 22 '16 at 17:06
3

Not sure when it got added, but certainly in Safari 12 you can do this without any extensions. You need to enable the Safari Developer menu (tick in advanced settings). Now you can select the "Show Web Inspector" develop menu item which will launch a little window showing the page source. Hover your cursor over the tag and right click - select the "Capture screenshot" option and save when prompted. If you only want a specific element rather than the whole page then just right click on the appropriate bit of html. If you are not sure, as you hover over the code the corresponding screen element is highlighted blue.

Of course, I'm now wondering if this could be apple scripted...

0

I am using LittleSnapper, which has a feature to "Snap Web Address from Safari":

The LittleSnapper menu item and browser bookmarklet both allow you to snap webpages as you visit them - no interruption required. Alongside these tools, there's even a Safari Extension that allows you to add a Snap button to the Safari toolbar. LittleSnapper also saves the HTML behind each page for future reference.

  • Little snapper is gone, the page has gone 404. – jorisw Mar 8 '17 at 12:52
  • @jorisw, LittleSnapper is no longer exists. Its replacement, Ember, is no longer exists too. – kukoo Mar 9 '17 at 4:26

You must log in to answer this question.