How to take a screenshot of a window larger than the screen
Solution 1:
I believe Screenshot Captor is the tool you're looking for. It involves a slight learning curve though and the scrolling window capture feature might seem intimidating at first.
It can capture objects, meaning content within windows with scroll bars (horizontal and vertical), individual program controls, etc.
It is quite powerful but some tweaking with the settings may be necessary to get what you want and hence, the learning curve.
If you try the program and it doesn't work for you, before you dismiss it, watch the videos listed on this page, especially this one about basic scrolling window capture.
Here's an example capture of a scrolling Windows Explorer window (click to view full size):
Solution 2:
-
I've had to test how software works/looks in displays larger than the one I have, and I've done it in a virtual machine with VMWare Workstation. I just went to VM settings, Display, and wrote there the resolution. It's easy to take screenshot with the virtualization software (Ctrl+Alt+PrtScr, and they get auto-saved to the host's desktop). Although I've never tried to go up to 6000×4000 until today :-)
-
While that covers the general case, the case of PDF files is much, much easier. There's a terribly useful (and free!) PDF renderer called MuPDF where you can just run
mudraw -o page%d.png -r 300 document.pdf 5-9
to get almost instantly 300-dpi PNGs of pages 5 through 9 of
document.pdf
(namedpage5.png
,page6.png
, ...,page9.png
) -
One last thing: Someone mentioned screengrabbing whole webpages in Firefox? No extensions necessary! Just press Shift+F2 and write
screenshot webcap.png --fullpage
Solution 3:
With Linux, the xrandr
command simply creates a larger virtual screen, for example:
xrandr --output HDMI-1 --rate 60 --mode 1920x1200 --panning 3000x2000
Then take a screenshot in the normal way, which captures the whole virtual screen
in that size as specified by the --panning
option. It does also capture those areas which are outside the visible physical monitor area.
Solution 4:
There is nothing "beyond the screen", mostly because applications will not draw it.
Your best bet is to pan around the image, and use Photoshop (or your favorite image editor) to stitch the pieces together.
That's how it is in Windows at least; you don't say what "window" you have, and how you can "zoom out".
But if i was, for example, trying to steal images of Google Maps i would
- pan around
- save the small bits
- stitch them together in Photoshop
Solution 5:
The good news: there's a way to capture your pdf in it's entirety.
The bad news: its a bit long winded and the pdf might not come out 100% correct!
(It's better than nothing right?)
So, to get this all working you will need to do the following:
- Grab a version of NodeJS from here and install it
-
a. If you have
git
installed just clone themozilla/pdf.js
repo fromgithub
like sogit clone git://github.com/mozilla/pdf.js.git pdfjs
andcd
into the directory
b. if you don't havegit
then you'll need to download the whole code repository from here:https://github.com/mozilla/pdf.js/archive/master.zip
unzip it and then open upcommand prompt
andcd
into the root of the folder - run
node make server
What you have done so far is create a web server running on localhost:8888
that is able to render pdfs using JavaScript
. You can view an example pdf by going to the following page: http://localhost:8888/web/viewer.html?file=/examples/learning/helloworld.pdf
Next up you'll need to download PhantomJS.
- Grab it from here
- Unzip it wherever you like and then from the command prompt
cd
into thebin
folder - Copy the
rasterize.js
file from theexamples
folder ofphantomjs
into thebin
folder (I know it's a bit dirty but we can sort it out later right?) - Open up
rasterize.js
because we need to change something. - Go to line
45
and change the time from200
to something like5000
for now. The code should look like: https://gist.github.com/HaykoKoryun/eba33f2011d3d69b773b - Place a copy of the
pdf
file you want to capture into a folder calledtest
in thepdfjs
root folder - Finally run the following command
phantomjs.exe rasterize.js http://localhost:8888/web/viewer.html?file=/test/xxx.pdf test.png 1920px*1080px
What are those parameters I hear you say?
The first one tells phantomjs
which script to run. That's easy, in our case it's the modified version of rasterize.js
!
The second one is the URL to load, which is the local webserver running pdfjs
. Note that you'll need to replace the xxx
with the name of your pdf
file.
The third parameter is the name and format of the file you will save the capture to.
Finally the last parameter is the size of the capture. You'll need to play about with the size to make sure you capture the whole page.