软件介绍

IECapt、CutyCapt 生成网页快照

http://iecapt.sourceforge.net/

http://cutycapt.sourceforge.net/

### 操作代码

1.以管理员身份 运行cmd.exe

切换到 IECapt.exe 所在目录

例如:

输入:D:

输入:cd D:\AppData\

输入截图命令:

输入:CutyCapt --url=https://tieba.baidu.com/p/5217647622 --out=D:/1.jpeg --silent

输入:iecapt --url=https://tieba.baidu.com/p/5217647622 --out=D:/1.jpeg --silent

看下D:盘目录下是否存在

操作演示

代码示例

#region CutyCapt

//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= The target file (.png|pdf|ps|svg|jpeg|...)

// --out-format= Like extension in --out, overrides heuristic

// --min-width= Minimal width for the image (default: 800)

// --min-height= Minimal height for the image (default: 600)

// --max-wait= Don't wait more than (default: 90000, inf: 0)

// --delay= After successful load, wait (default: 0)

// --user-style-path= Location of user style sheet file, if any

// --user-style-string= User style rules specified as text

// --header=: request header; repeatable; some can't be set

// --method= 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= Private browsing(default: unknown)

// --auto-load-images= Automatic image loading(default: on)

// --js-can-open-windows= Script can open windows? (default: unknown)

// --js-can-access-clipboard= Script clipboard privs(default: unknown)

// --print-backgrounds= Backgrounds in PDF/PS output(default: off)

// --zoom-factor= Page zoom factor(default: no zooming)

// --zoom-text-only= Whether to zoom only the text(default: off)

// --http-proxy= Address for HTTP proxy server(default: none)

// -----------------------------------------------------------------------------

// is svg,ps,pdf,itext,html,rtree,png,jpeg,mng,tiff,gif,bmp,ppm,xbm,xpm

// -----------------------------------------------------------------------------

// http://cutycapt.sf.net - (c) 2003-2013 Bjoern Hoehrmann - bjoern@hoehrmann.de

#endregion

#region IECapt

// Open a command prompt and ask for help:

//C:\> IECapt --help

// -----------------------------------------------------------------------------

// Usage: IECapt --url=http://www.example.org/ --out=localfile.png

// -----------------------------------------------------------------------------

// --help Print this help page and exit

// --url= The URL to capture (http:...|file:...|...)

// --out= The target file (.png|bmp|jpeg|emf|...)

// --min-width= Minimal width for the image (default: 800)

// --max-wait= Don't wait more than (default: 90000, inf: 0)

// --delay= Wait after loading (e.g. for Flash; default: 0)

// --silent Whether to surpress some dialogs

// -----------------------------------------------------------------------------

// http://iecapt.sf.net - (c) 2003-2008 Bjoern Hoehrmann - "/>

#endregion

using System;

using System.Collections.Generic;

using System.Diagnostics;

using System.IO;

using System.Linq;

using System.Web;

namespace Capt.Helper

{

public class CaptHelper

{

///

/// 执行截图操作

///

/// 网页链接,example:"https://www.baidu.com/"

///

public static ReturnResult Execute(string url, IECaptOrCutyCapt type = IECaptOrCutyCapt.IECapt)

{

if (string.IsNullOrEmpty(url))

{

return new ReturnResult() { Msg = "url 为空" };

}

url = (url.IndexOf("http://", StringComparison.OrdinalIgnoreCase) > -1 ||

url.IndexOf("https://", StringComparison.OrdinalIgnoreCase) > -1) ? url : "http://" + url;

var path = AppDomain.CurrentDomain.BaseDirectory + "TempFiles\\Image";

if (!Directory.Exists(path))

{

Directory.CreateDirectory(path);

}

string fileName = Guid.NewGuid().ToString("N") + ".png";

string completePath = Path.Combine(path, fileName);

var data = Execute(new CaptInfo() { Url = url, Out = completePath, CaptType = type });

data.Data = completePath;

return data;

}

///

/// 执行截图操作

///

///

/// 物理路径,

///

public static ReturnResult Execute(string url, string path,

IECaptOrCutyCapt type = IECaptOrCutyCapt.IECapt)

{

if (string.IsNullOrEmpty(url))

{

return new ReturnResult() { Msg = "url 为空" };

}

url = (url.IndexOf("http://", StringComparison.OrdinalIgnoreCase) > -1 ||

url.IndexOf("https://", StringComparison.OrdinalIgnoreCase) > -1) ? url : "http://" + url;

if (!Directory.Exists(path))

Directory.CreateDirectory(path);

string fileName = Guid.NewGuid().ToString("N") + ".png";

string completePath = Path.Combine(path, fileName);

var data = Execute(new CaptInfo() { Url = url, Out = completePath, CaptType = type });

data.Data = completePath;

return data;

}

///

/// 执行输出快照

///

/// CaptInfo

///

public static ReturnResult Execute(CaptInfo info)

{

string output = string.Empty;

Stopwatch sw = Stopwatch.StartNew();

string root = string.Empty;

if (info.CaptType == IECaptOrCutyCapt.IECapt)

{

root = AppDomain.CurrentDomain.BaseDirectory + @"Lib\\IECapt";

if (!File.Exists(root + "\\IECapt.exe"))

throw new FileNotFoundException("IECapt.exe file can't be found .");

}

else

{

root = AppDomain.CurrentDomain.BaseDirectory + @"Lib\\CutyCapt";

if (!File.Exists(root + "\\CutyCapt.exe"))

throw new FileNotFoundException("IECapt.exe file can't be found .");

}

using (var process = new Process())

{

try

{

process.StartInfo.WorkingDirectory = root;

process.StartInfo.FileName = "cmd.exe";

process.StartInfo.UseShellExecute = false;

process.StartInfo.RedirectStandardInput = true;

process.StartInfo.RedirectStandardOutput = true;

process.StartInfo.CreateNoWindow = true;

//process.StartInfo.CreateNoWindow = false;

process.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;

process.Start();

string value = string.Format(@"{0} --url={1} --out={2} --min-width={3} --max-wait={4} --delay={5} --silent",

info.CaptType == IECaptOrCutyCapt.IECapt ? "iecapt" : "cutycapt", //输出方式

info.Url, //输入路径网站

info.Out, //输出

info.Min_width,

info.Max_wait,

info.Delay);

process.StandardInput.WriteLine(value);

process.StandardInput.WriteLine("exit");

process.WaitForExit(info.WaitForExitTime > 0 ? info.WaitForExitTime : 6000);

output = process.StandardOutput.ReadToEnd();

}

catch (Exception ex)

{

return new ReturnResult()

{

Status = CaptStatus.ErrorException,

Msg = "快照失败:" + ex.Message

};

}

finally

{

sw.Stop();

if (!process.HasExited)

{

process.Kill();

}

process.Close();

process.Dispose();

}

if (System.IO.File.Exists(info.Out))

{

return new ReturnResult()

{

Status = CaptStatus.Success,

QTime = sw.ElapsedMilliseconds,

Msg = "快照生产成功:" + output

};

}

else

{

return new ReturnResult()

{

Status = CaptStatus.ErrorNotOutFile,

Msg = "快照失败,文件不存在"

};

}

}

}

}

}

示例代码库

java iecapt.exe_【C#】NET截屏网页,生成网页快照开发——IECapt、CutyCapt相关推荐

  1. JAVA服务端实现页面截屏(附代码)

    JAVA服务端实现页面截屏 适配需求 方案一.使用JxBrowser 使用步骤: 方案二.JavaFX WebView 使用步骤: 方案三.Headless Chrome 使用步骤: 综上方案对比 记 ...

  2. silverlight安装后网页_纯干货收藏|两个技巧教你完美长截屏网页!

    在工作过程中,我们总是会遇到需要完整截屏网页,但往往网页是长页面导致无法截屏,今天分享两个小技巧教大家完美保存网页界面. 方法一:网页转换成PDF文档 这是一个超级简单的方法,首先要保存你的游览器是谷 ...

  3. python全局键盘监听(pynput快捷键);利用pywin32快速截屏并生成视频

    python全局键盘监听(pynput快捷键):利用pywin32快速截屏并生成视频 第一次在CSDN写博客,有点小紧张(/ω\) 以下内容完全个人理解,有错误请指出~ 最近在用python做一个小工 ...

  4. java浏览器无界面后台截屏工具

    不同于上一篇文章中所讲到的通过客户端浏览器将 HTML 转 canvas 再生成图片的方式,本次记录的内容为服务器端(Windows Server)截屏工具.该工具特点为:通过 java 代码调用无界 ...

  5. Java实现了任意位置截屏(仿QQ截图)

    最近刚刚学完java,就做了这个小程序.当然,也是通过百度查找资料,最后做出了这一个小程序. 功能: 点击截屏按钮,就开始截屏,在屏幕上画出一个区域之后,就可以通过双击将图片保存到桌面.如果不想截屏, ...

  6. java快捷截图键,三星手机截屏的快捷键是什么 三种方式迅速截屏【图文】

    三星手机大多为智能机,从三星A系列手机开始,三星便成为了风靡全球的手机品牌.最早的三星手机为SGH-A188,一直到现在的三星s7,三星一直备受瞩目.三星手机最大的特点便是工艺质量精密,外形时尚,并且 ...

  7. JAVA基础:装包、截屏、录屏的提效工具③(File+打包成可执行程序)

    (3)File操作 a.该类主要用于PC中的文件和目录的创建.文件的查找和文件的删除等. File基础知识 b.需求演练: 前提:录屏操作部分机型上的限制(无法使用adb screenrecrod语句 ...

  8. 前端web页面防截屏水印生成方案(网页水印+图片水印)

    前端水印生成方案 前段时间做某系统审核后台,出现了审核人员截图把内容外部扭曲的情况,虽然截图内容不是特别敏感,但是安全问题还是不能忽略.于是便在系统页面上面加上了水印,对于审核人员截图等敏感操作有一定 ...

  9. java+selenium+chromedriver 整页截屏

    通过selenium拖动界面形式,待页面加载完全后进行页面截图,代码如下: ChromeDriver driver = null; while (driver == null){// 从队列中获取已准 ...

最新文章

  1. c# 网站在服务器上第一次请求都需要耗时很久,最.net面试题目.doc
  2. TypeScript 类型兼容
  3. CentOS 7.6 MySQL 8.0 RPM包方式安装及新特性介绍
  4. 在Cloudshare上使用PAL=〉系统检查及初始化
  5. Cocos游戏引擎3D特效全新升级 更流畅更炫酷
  6. warning: function declaration isn’t a prototype(函数声明不是原型)的解决办法
  7. Java读写CSV格式文件(opencsv)
  8. 让媳妇瞬间搞懂Spring 多数据源操作(SpringBoot + Durid)
  9. 慢慢人生路,学点Jakarta基础-深入剖析Java的接口和抽象类
  10. Android DownloadManager 的使用
  11. c语言排列10个数字的大小,[求助][C语言求助]输入10个数字,并将这些数字由大到小排列...
  12. GCC详解-Binutils工具之readelf
  13. 目标检测入门常见问题(深度学习 / 图像分类)
  14. vscode远程连接的坑
  15. 电驴怎么显示服务器列表,(转)如何更新电驴服务器列表(eMule Server List)
  16. ol-地图上添加图标
  17. 基于PHP+MySQL的大学生求职招聘网站
  18. 机器学习(二)多元线性回归算法预测房价
  19. Windows 10打开远程桌面的方法
  20. 电商红包雨是如何实现的?拿去面试用(典型高并发)

热门文章

  1. 安卓手机开不了机_手机开不了机的原因 _手机开不了机如何解决
  2. 编程题 给出两个数字x和y 请你比较xy和yx的大小 如果前者大于后者 输出大于,小于则输出小于,等于则输出等于
  3. 计算机与信息科学学士,计算机与信息科学理科学士
  4. android系统最新版本更新,安卓8.0系统最新下载安装
  5. 三星 i9500/Galaxy S4开发者选项开启方式(打开USB调试的方法)
  6. 2021年高考绵阳中学成绩查询,四川省绵阳中学2021年排名
  7. 蚂蚁市场教程 电视上怎么安装看快手TV版
  8. 2017华师在线计算机作业,2017年华师在线〈文学批评学〉100分作业
  9. 生育 生殖 長壽의 三情은 萬物의 本能 (韓長庚 易學原理總論)
  10. python的pandas库下载_pandas库下载安装-Pandas for python下载v0.25.0最新版-西西软件下载...