We'd like to have a command-line program to capture screenshots of various websites, including ones containing Flash contents. The program needs to run on a 64-bit Cent OS 5 machine with no physical monitor (only Xvfb is available.)
We'd like to have a simple program that can quickly capture screenshots, including Flash contents.
Given a URL and a file path, the program needs to take a screenshot of the provided URL and save an image file at the file path. The size of the screenshot has to be 1024 x 768.
For example, from the command line the program needs to be executed as:
$ program_name "[url removed, login to view]" "./files/full/[url removed, login to view]"
The URL and file path may contain URL-encoded characters such as %82%A0.
2-2-1. Programming Language
There is no restriction for which programming language to use (although we prefer PHP).
2-2-2. Execution Speed
The program needs to generate a screenshot image file within a few seconds.
When the Website contains a Flash content it may take longer.
The program should exit as soon as generating the image file successfully.
2-2-3. Image Format
The program needs to save an image file in PNG.
2-2-4. Character Encoding
The program needs to render Websites in any character encoding supported by common Web browsers.
2-2-4. Error Handling
When a screenshot cannot be taken, the program should terminate without generating an image file. The timeout should occur after 60 seconds.
The image size and the timeout need to be configurable either by 1) by command line options or 2) by specifying in the source code, configuration file, etc.
2-3. System Requirement
The program needs to run at least on the following environment.
OS: CentOS 5.8 (64-bit)
PHP: [url removed, login to view]
3. Deliverable and Schedule
The program, source code, and the instructions for installation should be turned in.
The copyright holder of the program will be 4plus Inc.
Please propose the shortest possible delivery period.
The project is considered completed when the program is correctly installed / configured on our server.