zoukankan      html  css  js  c++  java
  • CutyCapt A Qt WebKit Web Page Rendering Capture Utility

    CutyCapt - A Qt WebKit Web Page Rendering Capture Utility

    CutyCapt

    CutyCapt is a small cross-platform command-line utility to capture WebKit's rendering of a web page into a variety of vector and bitmap formats, including SVG, PDF, PS, PNG, JPEG, TIFF, GIF, and BMP. See IECapt for a similar tool based on Internet Explorer.

    Samples

    Here are some samples of CutyCapt generated renderings:

    Status

    CutyCapt has a number of known quirks, most of which are caused by problems with Qt and/or WebKit. For example, while plugin support can be enabled, and the plugins execute properly, their rendering cannot be captured on some platforms. Use of with caution.

    Requirements

    CutyCapt depends on Qt 4.4.0+.

    Download

    Help wanted! Previously I have used MinGW to make a static Qt build and correspondingly single-file CutyCapt executables for Windows.
    However, MinGW no longer supports single-file executables for threaded applications, they require to re-distribute a DLL instead, and Qt no longer supports
    static builds of QtWebkit. Similarily, if I just used Visual Studio 2010, as I do for normal development, proper builds would have to redistribute Microsoft
    runtime DLLs. Anyone who wants to prepare CutyCapt.exe + *.DLL builds is most welcome to join the project to do so, or alternatively provide them externally
    which I would then link from here. Let me know if you are interested. Thanks.

    Source code

    The source code is available in the SVN repositorty (download tarball).

    Usage

    Open a command prompt and ask for help:

     % CutyCapt --help
     -----------------------------------------------------------------------------
     Usage: CutyCapt --url=http://www.example.org/ --out=localfile.png
     -----------------------------------------------------------------------------
      --help                         Print this help page and exit
      --url=<url>                    The URL to capture (http:...|file:...|...)
      --out=<path>                   The target file (.png|pdf|ps|svg|jpeg|...)
      --out-format=<f>               Like extension in --out, overrides heuristic
      --min-width=<int>              Minimal width for the image (default: 800)
      --min-height=<int>             Minimal height for the image (default: 600)
      --max-wait=<ms>                Don't wait more than (default: 90000, inf: 0)
      --delay=<ms>                   After successful load, wait (default: 0)
      --user-styles=<url>            Location of user style sheet, if any
      --header=<name>:<value>        request header; repeatable; some can't be set
      --method=<get|post|put>        Specifies the request method (default: get)
      --body-string=<string>         Unencoded request body (default: none)
      --body-base64=<base64>         Base64-encoded request body (default: none)
      --app-name=<name>              appName used in User-Agent; default is none
      --app-version=<version>        appVers used in User-Agent; default is none
      --user-agent=<string>          Override the User-Agent header Qt would set
      --javascript=<on|off>          JavaScript execution (default: on)
      --java=<on|off>                Java execution (default: unknown)
      --plugins=<on|off>             Plugin execution (default: unknown)
      --private-browsing=<on|off>    Private browsing (default: unknown)
      --auto-load-images=<on|off>    Automatic image loading (default: on)
      --js-can-open-windows=<on|off> Script can open windows? (default: unknown)
      --js-can-access-clipboard=<on|off> Script clipboard privs (default: unknown)
      --print-backgrounds=<on|off>   Backgrounds in PDF/PS output (default: off)
     -----------------------------------------------------------------------------
      <f> is svg,ps,pdf,itext,html,rtree,png,jpeg,mng,tiff,gif,bmp,ppm,xbm,xpm
     -----------------------------------------------------------------------------
     http://cutycapt.sf.net - (c) 2003-2010 Bjoern Hoehrmann - bjoern@hoehrmann.de
    

    Build Instructions

    If your system is set up to compile Qt applications, building CutyCapt should be a simple matter of checking out the source code and running qmake and your version of make. As an example, if you are running Ubuntu Hardy Heron and have configured the system to use packages from hardy-backports, the following should do:

      % sudo apt-get install subversion libqt4-webkit libqt4-dev g++
      % svn co https://cutycapt.svn.sourceforge.net/svnroot/cutycapt
      % cd cutycapt/CutyCapt
      % qmake
      % make
      % ./CutyCapt --url=http://www.example.org --out=example.png
    

    Using CutyCapt without X server

    You cannot use CutyCapt without an X server, but you can use e.g. Xvfb as light-weight server if you are not running an interactive graphical desktop environment. For example, you could use:

      % xvfb-run --server-args="-screen 0, 1024x768x24" ./CutyCapt --url=... --out=...
  • 相关阅读:
    Android NDK 开发中 adb logcat 命令的使用
    android 工程里缺少 R.java 文件原因和解决方法
    用Linux命令行实现删除和复制指定类型的文件
    重载操作符与转换
    复制控制
    管理类的指针成员
    复制构造函数
    static类成员(变量和函数)
    lock failed, MQ already started 问题处理
    Mac无法启动RocketMQ,日志显示,runserver.sh: line 91: /Library/Internet: No such file or directory
  • 原文地址:https://www.cnblogs.com/lexus/p/2442448.html
Copyright © 2011-2022 走看看