java iecapt.exe_【C#】NET截屏网页,生成网页快照开发——IECapt、CutyCapt
软件介绍
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相关推荐
- JAVA服务端实现页面截屏(附代码)
JAVA服务端实现页面截屏 适配需求 方案一.使用JxBrowser 使用步骤: 方案二.JavaFX WebView 使用步骤: 方案三.Headless Chrome 使用步骤: 综上方案对比 记 ...
- silverlight安装后网页_纯干货收藏|两个技巧教你完美长截屏网页!
在工作过程中,我们总是会遇到需要完整截屏网页,但往往网页是长页面导致无法截屏,今天分享两个小技巧教大家完美保存网页界面. 方法一:网页转换成PDF文档 这是一个超级简单的方法,首先要保存你的游览器是谷 ...
- python全局键盘监听(pynput快捷键);利用pywin32快速截屏并生成视频
python全局键盘监听(pynput快捷键):利用pywin32快速截屏并生成视频 第一次在CSDN写博客,有点小紧张(/ω\) 以下内容完全个人理解,有错误请指出~ 最近在用python做一个小工 ...
- java浏览器无界面后台截屏工具
不同于上一篇文章中所讲到的通过客户端浏览器将 HTML 转 canvas 再生成图片的方式,本次记录的内容为服务器端(Windows Server)截屏工具.该工具特点为:通过 java 代码调用无界 ...
- Java实现了任意位置截屏(仿QQ截图)
最近刚刚学完java,就做了这个小程序.当然,也是通过百度查找资料,最后做出了这一个小程序. 功能: 点击截屏按钮,就开始截屏,在屏幕上画出一个区域之后,就可以通过双击将图片保存到桌面.如果不想截屏, ...
- java快捷截图键,三星手机截屏的快捷键是什么 三种方式迅速截屏【图文】
三星手机大多为智能机,从三星A系列手机开始,三星便成为了风靡全球的手机品牌.最早的三星手机为SGH-A188,一直到现在的三星s7,三星一直备受瞩目.三星手机最大的特点便是工艺质量精密,外形时尚,并且 ...
- JAVA基础:装包、截屏、录屏的提效工具③(File+打包成可执行程序)
(3)File操作 a.该类主要用于PC中的文件和目录的创建.文件的查找和文件的删除等. File基础知识 b.需求演练: 前提:录屏操作部分机型上的限制(无法使用adb screenrecrod语句 ...
- 前端web页面防截屏水印生成方案(网页水印+图片水印)
前端水印生成方案 前段时间做某系统审核后台,出现了审核人员截图把内容外部扭曲的情况,虽然截图内容不是特别敏感,但是安全问题还是不能忽略.于是便在系统页面上面加上了水印,对于审核人员截图等敏感操作有一定 ...
- java+selenium+chromedriver 整页截屏
通过selenium拖动界面形式,待页面加载完全后进行页面截图,代码如下: ChromeDriver driver = null; while (driver == null){// 从队列中获取已准 ...
最新文章
- c# 网站在服务器上第一次请求都需要耗时很久,最.net面试题目.doc
- TypeScript 类型兼容
- CentOS 7.6 MySQL 8.0 RPM包方式安装及新特性介绍
- 在Cloudshare上使用PAL=〉系统检查及初始化
- Cocos游戏引擎3D特效全新升级 更流畅更炫酷
- warning: function declaration isn’t a prototype(函数声明不是原型)的解决办法
- Java读写CSV格式文件(opencsv)
- 让媳妇瞬间搞懂Spring 多数据源操作(SpringBoot + Durid)
- 慢慢人生路,学点Jakarta基础-深入剖析Java的接口和抽象类
- Android DownloadManager 的使用
- c语言排列10个数字的大小,[求助][C语言求助]输入10个数字,并将这些数字由大到小排列...
- GCC详解-Binutils工具之readelf
- 目标检测入门常见问题(深度学习 / 图像分类)
- vscode远程连接的坑
- 电驴怎么显示服务器列表,(转)如何更新电驴服务器列表(eMule Server List)
- ol-地图上添加图标
- 基于PHP+MySQL的大学生求职招聘网站
- 机器学习(二)多元线性回归算法预测房价
- Windows 10打开远程桌面的方法
- 电商红包雨是如何实现的?拿去面试用(典型高并发)
热门文章
- 安卓手机开不了机_手机开不了机的原因 _手机开不了机如何解决
- 编程题 给出两个数字x和y 请你比较xy和yx的大小 如果前者大于后者 输出大于,小于则输出小于,等于则输出等于
- 计算机与信息科学学士,计算机与信息科学理科学士
- android系统最新版本更新,安卓8.0系统最新下载安装
- 三星 i9500/Galaxy S4开发者选项开启方式(打开USB调试的方法)
- 2021年高考绵阳中学成绩查询,四川省绵阳中学2021年排名
- 蚂蚁市场教程 电视上怎么安装看快手TV版
- 2017华师在线计算机作业,2017年华师在线〈文学批评学〉100分作业
- 生育 生殖 長壽의 三情은 萬物의 本能 (韓長庚 易學原理總論)
- python的pandas库下载_pandas库下载安装-Pandas for python下载v0.25.0最新版-西西软件下载...