ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java实用教程:如何在 Java 中将 HTML 转换为 PNG

2023-01-15 22:24:59  阅读:41  来源: 互联网

标签:java教程 html转换png java实用技巧


本文针对很多项目中的 HTML 代码可视化文档的需求,提供了一个基于java的免费 API 解决方案,可将 HTML 字符串转换为 PNG 屏幕截图。非常简易方便,java开发人员快来看看吧
 

自 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 调用。

该接口有两个必填的请求参数,包括以下内容:

  1. 你的 HTML 字符串
  2. 一个免费的 Cloudmersive API 密钥(您可以通过访问我们的网站并注册一个免费帐户来获得一个)。

除了上述强制输入外,此 API 还提供了几个可选参数,允许进一步自定义您的输入请求。这些可选参数包括以下内容:

  1. Extra loading wait:网页完成加载后截屏前等待的额外毫秒数(对于非常异步的网站很有帮助)。
  2. 屏幕截图高度:屏幕截图的所需高度,以像素表示(默认为 1280 x 1024)。提供整数“0”会触发默认设置,而提供整数“-1”会要求 API 测量并尝试屏幕高度屏幕截图。
  3. 屏幕截图宽度:屏幕截图的所需宽度,以像素表示(也默认为标准 1280 x 1024 测量值)。提供整数“0”或“-1”会产生与上述“屏幕截图高度”参数中所述相同的结果。

在其响应中,此 API 将提供一个包含新 PNG 文件编码的字符串。

要在Java中构建 API 调用,第一步是安装 SDK。这可以使用 Maven 来完成,方法是首先将以下引用添加到存储库中pom.xml
XML
1个<存储库>
2个    <存储库>
3个        < id > jitpack.io </ id >
4个       < url > https://jitpack.io </ url >
5个    </存储库>
6个</存储库>

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

XML
1个<依赖项>
2个<依赖>
3个    < groupId > com.github.Cloudmersive </ groupId >
4个    < artifactId > Cloudmersive.APIClient.Java </ artifactId >
5个    <版本> v4.25 </版本>
6个</依赖>
7个</依赖项>
要改为使用 Gradle 安装SDK,请在根目录
build.gradle(存储库末尾)中添加您的引用:
allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}

然后添加依赖项build.gradle:


dependencies {
        implementation 'com.github.Cloudmersive:Cloudmersive.APIClient.Java:v4.25'
}

安装完成后,剩下的就是复制并粘贴以下代码示例,并完成如上所述的强制和可选请求参数:

爪哇
1个   // 导入类:
2个   //导入 com.cloudmersive.client.invoker.ApiClient;
3个   //导入 com.cloudmersive.client.invoker.ApiException;
4个   //导入 com.cloudmersive.client.invoker.Configuration;
5个   //导入 com.cloudmersive.client.invoker.auth.*;
6个   //导入com.cloudmersive.client.ConvertWebApi;
7个   de
8个   ApiClient  defaultClient  = 配置。getDefaultApiClient ();
9个   de
10个   // 配置API密钥授权:Apikey
11个   ApiKeyAuth  Apikey  = ( ApiKeyAuth ) defaultClient。getAuthentication ( "Apikey" );
12个   密钥。setApiKey ( "你的 API 密钥" );
13个   // 取消注释以下行以设置 API 密钥的前缀,例如“Token”(默认为 null)
14个   //Apikey.setApiKeyPrefix("令牌");
15个   的
16个   ConvertWebApi  apiInstance  =  new  ConvertWebApi ();
17个   HtmlToPngRequest  input  =  new  HtmlToPngRequest (); // HtmlToPngRequest | HTML 转 PNG 请求参数
18个   尝试{
19个   字节[]结果 =  apiInstance。convertWebHtmlToPng(输入);
20个    系统。出来。打印(结果);
21个    }赶上(ApiException  e){
22个    系统。错了。println ( "调用 ConvertWebApi#convertWebHtmlToPng 时出现异常" );
23个    电子。打印堆栈跟踪();
24个  }
 

一旦你完成了这一步,你就大功告成了——你现在可以调用这个 API 并轻松地将 HTML 字符串呈现为 PNG 屏幕截图。 

注意: 您的免费层级 API 密钥将提供每月 800 次 API 调用的限制,无需承诺。一旦达到该限制,您的总数将在下个月重置。

标签:java教程,html转换png,java实用技巧
来源:

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有