自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何在 Java 中將 HTML 轉(zhuǎn)換為 PNG

開發(fā) 前端
本文討論了對(duì) HTML 代碼可視化文檔的需求,并提供了一個(gè)免費(fèi)的 API 解決方案,可將 HTML 字符串轉(zhuǎn)換為 PNG 屏幕截圖。

自 20 世紀(jì) 80 年代后期的構(gòu)想以來,超文本標(biāo)記語言 (HTML) 一直是在線顯示網(wǎng)頁的關(guān)鍵元素。這種無處不在的編程語言繼續(xù)提供詳細(xì)的框架,用于構(gòu)建我們在 Web 上看到和交互的內(nèi)容,允許我們以純文本代碼格式化文本和多媒體組件,這很簡單,可以在需要時(shí)進(jìn)行更改。

HTML 的轉(zhuǎn)變

與幾乎所有編程語言的情況一樣,HTML自推出以來的幾十年中已經(jīng)轉(zhuǎn)變?yōu)榘S多新功能,以適應(yīng)典型的當(dāng)代壓力,例如社區(qū)反饋/批評(píng)和相鄰 Web 開發(fā)技術(shù)的快速發(fā)展。在現(xiàn)代 HTML 代碼的輸出中,我們可以很容易地看到這種轉(zhuǎn)換的結(jié)果;例如,最近的 HTML 迭代——HTML5,于 2014 年推出——提供了用于嵌入視頻和音頻文件的新的、簡單的元素,以及移動(dòng)顯示和整體移動(dòng)功能中急需的改進(jìn)。

當(dāng)然,新元素和顯示質(zhì)量的改進(jìn)并不是網(wǎng)站的 HTML 代碼會(huì)隨著時(shí)間的推移可靠地改變的唯一原因。網(wǎng)站不斷設(shè)計(jì)和重新設(shè)計(jì),可能是為了創(chuàng)新,也是為了響應(yīng)用戶反饋產(chǎn)生的趨勢。例如,2014 年開發(fā)的網(wǎng)站很可能融合了各種當(dāng)代設(shè)計(jì)趨勢,而與當(dāng)年 HTML5 中引入的變化無關(guān)。在該項(xiàng)目之后的幾年里,該網(wǎng)站的開發(fā)人員可能會(huì)發(fā)現(xiàn)自己至少多次重復(fù)了他們的 HTML 代碼的一部分,同時(shí)一直在為不可避免的 HTML6 發(fā)布和最終合并其新的和改進(jìn)的功能而構(gòu)建。

鑒于 HTML 開發(fā)中的這些自然進(jìn)展,出現(xiàn)了一個(gè)重要問題:我們?nèi)绾斡行У馗櫤陀涗浳覀兙W(wǎng)站 HTML 代碼的增長?考慮到 HTML 輸出的固有視覺特性,答案相對(duì)簡單。我們可以輕松地以靜態(tài)二維圖像文件(屏幕截圖)的形式存儲(chǔ) HTML 網(wǎng)站的迭代,并且我們可以相對(duì)輕松地以編程方式完成此轉(zhuǎn)換。

網(wǎng)頁截圖

捕獲 HTML 屏幕截圖具有大量實(shí)際的業(yè)務(wù)應(yīng)用程序。當(dāng)為網(wǎng)站編寫新的 HTML 代碼時(shí),渲染該 HTML 代碼輸出的圖像作為一種簡單、易于共享的“狀態(tài)檢查”,用于檢查其內(nèi)容在給定時(shí)間點(diǎn)如何顯示在 Web 瀏覽器上。出于同樣的原因,這樣的屏幕截圖提供了一種極好的方法來快速測試 HTML 代碼的新的、實(shí)驗(yàn)性的迭代,使開發(fā)人員可以輕松地創(chuàng)建和存儲(chǔ)開發(fā)中項(xiàng)目的各種版本——包括成功的和不成功的。屏幕截圖還為實(shí)時(shí)網(wǎng)站中不可避免的問題提供了一種理想的可視化記錄方式,從而更容易跟蹤棘手的問題并跟蹤它們在不同設(shè)備、瀏覽器或操作系統(tǒng)上的顯示方式。

教程

本教程的目的是提供一個(gè)簡單、免費(fèi)、易于使用的 API 解決方案,用于在 Java 中將 HTML 字符串轉(zhuǎn)換為 PNG 屏幕截圖。此 API 將完整呈現(xiàn)網(wǎng)站,返回 HTML 在常規(guī) Web 瀏覽器視圖中顯示內(nèi)容的屏幕截圖。它支持所有現(xiàn)代、高級(jí)的 Web 開發(fā)功能,包括與 HTML5、CSS、JavaScript等相關(guān)的功能。為方便起見,頁面下方提供了現(xiàn)成的 Java 代碼示例,以幫助您輕松構(gòu)建 API 調(diào)用。

該接口有兩個(gè)必填的請求參數(shù),包括以下內(nèi)容:

你的 HTML 字符串

一個(gè)免費(fèi)的 Cloudmersive API 密鑰(您可以通過訪問我們的網(wǎng)站并注冊一個(gè)免費(fèi)帳戶來獲得一個(gè))。

除了上述強(qiáng)制輸入外,此 API 還提供了幾個(gè)可選參數(shù),允許進(jìn)一步自定義您的輸入請求。這些可選參數(shù)包括以下內(nèi)容:

  • Extra loading wait:網(wǎng)頁完成加載后截屏前等待的額外毫秒數(shù)(對(duì)于非常異步的網(wǎng)站很有幫助)。
  • 屏幕截圖高度:屏幕截圖的所需高度,以像素表示(默認(rèn)為 1280 x 1024)。提供整數(shù)“0”會(huì)觸發(fā)默認(rèn)設(shè)置,而提供整數(shù)“-1”會(huì)要求 API 測量并嘗試屏幕高度屏幕截圖。
  • 屏幕截圖寬度:屏幕截圖的所需寬度,以像素表示(也默認(rèn)為標(biāo)準(zhǔn) 1280 x 1024 測量值)。提供整數(shù)“0”或“-1”會(huì)產(chǎn)生與上述“屏幕截圖高度”參數(shù)中所述相同的結(jié)果。

在其響應(yīng)中,此 API 將提供一個(gè)包含新 PNG 文件編碼的字符串。

要在Java中構(gòu)建 API 調(diào)用,第一步是安裝 SDK。這可以使用 Maven 來完成,方法是首先將以下引用添加到存儲(chǔ)庫中pom.xml:

<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>

之后,將下面的引用添加到依賴項(xiàng)中pom.xml:

<dependencies>
<dependency>
<groupId>com.github.Cloudmersive</groupId>
<artifactId>Cloudmersive.APIClient.Java</artifactId>
<version>v4.25</version>
</dependency>
</dependencies>

要改為使用 Gradle 安裝SDK,請?jiān)诟夸沚uild.gradle(存儲(chǔ)庫末尾)中添加您的引用:

allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}

然后添加依賴項(xiàng)build.gradle:

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

安裝完成后,剩下的就是復(fù)制并粘貼以下代碼示例,并完成如上所述的強(qiáng)制和可選請求參數(shù):

// 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();
}

一旦你完成了這一步,你就大功告成了——你現(xiàn)在可以調(diào)用這個(gè) API 并輕松地將 HTML 字符串呈現(xiàn)為 PNG 屏幕截圖。

注意: 您的免費(fèi)層級(jí) API 密鑰將提供每月 800 次 API 調(diào)用的限制,無需承諾。一旦達(dá)到該限制,您的總數(shù)將在下個(gè)月重置。

責(zé)任編輯:華軒 來源: 今日頭條
相關(guān)推薦

2020-04-06 20:30:37

JavaScriptBoolean開發(fā)

2021-12-29 07:56:32

Go byte io.Reader

2022-12-25 15:56:30

JavaScript字符串

2016-11-15 14:29:14

Linux文件編碼轉(zhuǎn)換

2015-11-24 09:53:22

AngularJSXMLJSON

2019-08-21 13:30:25

Node.jsSVG前端

2014-03-19 10:44:51

Linuxpng圖片

2024-09-18 08:00:05

C#編程

2021-10-29 15:13:21

LinuxPDF文件

2024-03-12 07:35:39

Python字符串列表

2021-06-07 12:20:14

LinuxASCII命令

2015-09-14 14:49:39

MySQLMariaDBLinux

2009-07-15 16:56:59

Jython類型Java類型

2022-09-22 11:40:11

JavaScript數(shù)組開發(fā)

2022-05-31 10:38:50

Linux密碼scp

2020-03-06 08:56:41

Linux運(yùn)算符文本

2016-12-13 13:50:06

JAVA轉(zhuǎn)換Base64

2016-09-14 16:37:42

2017-04-05 16:10:58

LinuxPDF工具

2022-12-22 09:00:00

微服務(wù)架構(gòu)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)