网易首页 > 网易号 > 正文 申请入驻

如何在 Java 中将 HTML 转换为 PNG

0
分享至

每日分享最新,最流行的软件开发知识与最新行业趋势,希望大家能够一键三连,多多支持,跪求关注,点赞,留言。
本文讨论了对 HTML 代码可视化文档的需求,并提供了一个免费的 API 解决方案,可将 HTML 字符串转换为 PNG 屏幕截图。

自 20 世纪 80 年代后期的构想以来,超文本标记语言 (HTML) 一直是在线显示网页的关键元素。这种无处不在的编程语言继续提供详细的框架,用于构建我们在 Web 上看到和交互的内容,允许我们以纯文本代码格式化文本和多媒体组件,这很简单,可以在需要时进行更改。

HTML 的转变
与几乎所有编程语言的情况一样,HTML自推出以来的几十年中已经转变为包含许多新功能,以适应典型的当代压力,例如社区反馈/批评和相邻 Web 开发技术的快速发展。在现代 HTML 代码的输出中,我们可以很容易地看到这种转换的结果;例如,最近的 HTML 迭代——HTML5,于 2014 年推出——提供了用于嵌入视频和音频文件的新的、简单的元素,以及移动显示和整体移动功能中急需的改进。
当然,新元素和显示质量的改进并不是网站的 HTML 代码会随着时间的推移可靠地改变的唯一原因。网站不断设计和重新设计,可能是为了创新,也是为了响应用户反馈产生的趋势。例如,2014 年开发的网站很可能融合了各种当代设计趋势,而与当年 HTML5 中引入的变化无关。在该项目之后的几年里,该网站的开发人员可能会发现自己至少多次重复了他们的 HTML 代码的一部分,同时一直在为不可避免的 HTML6 发布和最终合并其新的和改进的功能而构建。
鉴于 HTML 开发中的这些自然进展,出现了一个重要问题:我们如何有效地跟踪和记录我们网站 HTML 代码的增长?考虑到 HTML 输出的固有视觉特性,答案相对简单。我们可以轻松地以静态二维图像文件(屏幕截图)的形式存储 HTML 网站的迭代,并且我们可以相对轻松地以编程方式完成此转换。
网页截图
捕获 HTML 屏幕截图具有大量实际的业务应用程序。当为网站编写新的 HTML 代码时,渲染该 HTML 代码输出的图像作为一种简单、易于共享的“状态检查”,用于检查其内容在给定时间点如何显示在 Web 浏览器上。出于同样的原因,这样的屏幕截图提供了一种极好的方法来快速测试 HTML 代码的新的、实验性的迭代,使开发人员可以轻松地创建和存储开发中项目的各种版本——包括成功的和不成功的。屏幕截图还为实时网站中不可避免的问题提供了一种理想的可视化记录方式,从而更容易跟踪棘手的问题并跟踪它们在不同设备、浏览器或操作系统上的显示方式。
教程
本教程的目的是提供一个简单、免费、易于使用的 API 解决方案,用于在 Java 中将 HTML 字符串转换为 PNG 屏幕截图。此 API 将完整呈现网站,返回 HTML 在常规 Web 浏览器视图中显示内容的屏幕截图。它支持所有现代、高级的 Web 开发功能,包括与 HTML5、CSS、JavaScript等相关的功能。为方便起见,页面下方提供了现成的 Java 代码示例,以帮助您轻松构建 API 调用。
该接口有两个必填的请求参数,包括以下内容:
你的 HTML 字符串
一个免费的 Cloudmersive API 密钥(您可以通过访问我们的网站并注册一个免费帐户来获得一个)。
除了上述强制输入外,此 API 还提供了几个可选参数,允许进一步自定义您的输入请求。这些可选参数包括以下内容:
Extra loading wait:网页完成加载后截屏前等待的额外毫秒数(对于非常异步的网站很有帮助)。
屏幕截图高度:屏幕截图的所需高度,以像素表示(默认为 1280 x 1024)。提供整数“0”会触发默认设置,而提供整数“-1”会要求 API 测量并尝试屏幕高度屏幕截图。
屏幕截图宽度:屏幕截图的所需宽度,以像素表示(也默认为标准 1280 x 1024 测量值)。提供整数“0”或“-1”会产生与上述“屏幕截图高度”参数中所述相同的结果。
在其响应中,此 API 将提供一个包含新 PNG 文件编码的字符串。
要在Java中构建 API 调用,第一步是安装 SDK。这可以使用 Maven 来完成,方法是首先将以下引用添加到存储库中pom.xml:


jitpack.io
https://jitpack.io


之后,将下面的引用添加到依赖项中pom.xml:


com.github.Cloudmersive
Cloudmersive.APIClient.Java
v4.25


要改为使用 Gradle 安装SDK,请在根目录build.gradle(存储库末尾)中添加您的引用:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
然后添加依赖项build.gradle:
dependencies {
implementation 'com.github.Cloudmersive:Cloudmersive.APIClient.Java:v4.25'
}
安装完成后,剩下的就是复制并粘贴以下代码示例,并完成如上所述的强制和可选请求参数:
// Import classes:
//import com.cloudmersive.client.invoker.ApiClient;
//import com.cloudmersive.client.invoker.ApiException;
//import com.cloudmersive.client.invoker.Configuration;
//import com.cloudmersive.client.invoker.auth.*;
//import com.cloudmersive.client.ConvertWebApi;
ApiClient defaultClient = Configuration.getDefaultApiClient();
// Configure API key authorization: Apikey
ApiKeyAuth Apikey = (ApiKeyAuth) defaultClient.getAuthentication("Apikey");
Apikey.setApiKey("YOUR API KEY");
// Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
//Apikey.setApiKeyPrefix("Token");
ConvertWebApi apiInstance = new ConvertWebApi();
HtmlToPngRequest input = new HtmlToPngRequest(); // HtmlToPngRequest | HTML to PNG request parameters
try {
byte[] result = apiInstance.convertWebHtmlToPng(input);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling ConvertWebApi#convertWebHtmlToPng");
e.printStackTrace();
}
一旦你完成了这一步,你就大功告成了——你现在可以调用这个 API 并轻松地将 HTML 字符串呈现为 PNG 屏幕截图。
注意: 您的免费层级 API 密钥将提供每月 800 次 API 调用的限制,无需承诺。一旦达到该限制,您的总数将在下个月重置。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
49岁女人自述:瞒着老公出轨16年,回归家庭后,老公给我致命一击

49岁女人自述:瞒着老公出轨16年,回归家庭后,老公给我致命一击

星辰故事屋
2024-06-01 20:23:42
“超军旗”也要送到乌克兰!曾击沉“谢菲尔德”,黑海舰队小心了

“超军旗”也要送到乌克兰!曾击沉“谢菲尔德”,黑海舰队小心了

鹰眼Defence
2024-06-13 11:07:57
妻子陪初恋男友法国游玩,下飞机才通知丈夫,返回后直接愣在机场

妻子陪初恋男友法国游玩,下飞机才通知丈夫,返回后直接愣在机场

局内人
2024-05-15 14:12:33
一位老知青的回忆:怀念住在上海市瑞金二路新新里177号的日子

一位老知青的回忆:怀念住在上海市瑞金二路新新里177号的日子

草根情感故事茶社
2024-06-06 20:15:02
36强赛最遗憾的三个球队——上次世预赛还打进12强,这次没进18强

36强赛最遗憾的三个球队——上次世预赛还打进12强,这次没进18强

祝晓塬
2024-06-13 20:19:01
孙杨拒绝退役!而他却放弃中国国籍,转身替澳大利亚参赛!

孙杨拒绝退役!而他却放弃中国国籍,转身替澳大利亚参赛!

番茄说史聊
2024-05-14 23:16:11
芯片传奇离世:因变性蒙冤50年,她改变了超大规模集成电路

芯片传奇离世:因变性蒙冤50年,她改变了超大规模集成电路

量子位
2024-06-13 16:49:39
预警升级!福建一市景区关闭,公交停运!未来几天……

预警升级!福建一市景区关闭,公交停运!未来几天……

鲁中晨报
2024-06-13 14:31:14
特斯拉立大功!男子与小三车震触发预警,妻子现场捉奸抢走胸罩

特斯拉立大功!男子与小三车震触发预警,妻子现场捉奸抢走胸罩

社会酱
2024-06-12 17:53:15
刘亦菲的溜背和牙齿,朱珠的手引网友热议,网友:这也太真实了吧

刘亦菲的溜背和牙齿,朱珠的手引网友热议,网友:这也太真实了吧

综艺拼盘汇
2024-06-13 14:27:08
国家终于不再原谅王濛,77枚金牌并不万能,狂妄自大只会被抛弃

国家终于不再原谅王濛,77枚金牌并不万能,狂妄自大只会被抛弃

林子说事
2024-06-12 20:44:12
6月11日,陈奕迅真实病情曝光!网友:天哪,这也太严重了吧!

6月11日,陈奕迅真实病情曝光!网友:天哪,这也太严重了吧!

花花lo先森
2024-06-12 11:38:50
一点也不想呆在中国了,出国的人已经排得人山人海到底是什么原因

一点也不想呆在中国了,出国的人已经排得人山人海到底是什么原因

寻梦小真
2024-04-29 22:17:36
人神共愤!女孩喊爸爸被踹飞后续:疑似妈妈发声,警方评论区沦陷

人神共愤!女孩喊爸爸被踹飞后续:疑似妈妈发声,警方评论区沦陷

王小花谈历史
2024-06-12 16:56:56
宠妻37年,欧洲最性感的男人来了

宠妻37年,欧洲最性感的男人来了

麦子熟了
2024-06-11 21:16:07
《玫瑰的故事》直到黄亦玫遇到方协文的床,她都不知庄国栋错在哪

《玫瑰的故事》直到黄亦玫遇到方协文的床,她都不知庄国栋错在哪

小邵说剧
2024-06-13 21:00:42
得知南昌起义领导人排名,朱德大为不满:怎么能把我排到第二?

得知南昌起义领导人排名,朱德大为不满:怎么能把我排到第二?

钟裹杂谈历史
2024-06-13 12:42:14
现在我们就在萧条期!什么时候会结束?

现在我们就在萧条期!什么时候会结束?

古老板的老巢
2024-04-29 19:37:22
黄一鸣再次录视频表态孩子是王思聪的,她有可能获得数亿抚养费

黄一鸣再次录视频表态孩子是王思聪的,她有可能获得数亿抚养费

素素娱乐
2024-06-12 08:35:24
投资8.7亿!广州番禺二院要扩建成现状3倍,有望冲三甲吗

投资8.7亿!广州番禺二院要扩建成现状3倍,有望冲三甲吗

看番禺PRIDE
2024-06-12 20:36:49
2024-06-14 04:00:49
墨谈科技
墨谈科技
业务数码玩家.无聊的博主
2978文章数 565关注度
往期回顾 全部

科技要闻

小红书员工仅1/5工龄满2年 32岁就不让进了

头条要闻

上海楼市新政后有业主熬夜卖房:比之前最低价高360万

头条要闻

上海楼市新政后有业主熬夜卖房:比之前最低价高360万

体育要闻

乔丹最想单挑的男人走了

娱乐要闻

森林北报案,称和汪峰的感情遭受压力

财经要闻

私募大佬孙强:中国为什么缺少耐心资本

汽车要闻

升级8155芯片 新款卡罗拉锐放售12.98-18.48万

态度原创

时尚
教育
家居
房产
本地

受法律保护的可颂,究竟有多好吃!?

教育要闻

TTS新传论文带读:粉过恋爱兄妹的李龙宇是我的赛博案底…

家居要闻

大城小室 质朴自然的心灵居所

房产要闻

再度告急!海口连续仨月住宅入市不足千套!竟有楼盘卖爆!

本地新闻

粽情一夏|海河龙舟赛,竟然成了外国人的大party!

无障碍浏览 进入关怀版