HyperText Markup Language (HTML) este un limbaj de marcare standard pentru crearea paginilor web. Permite crearea și structura de secțiuni, paragrafe și link-uri folosind elemente/etichete HTML. Iar în cazul în care unele fonturi personalizate sunt folosite într-un fișier HTML sau se face referire la orice obiect dinamic care necesită o conexiune activă la mașina/serverul sursă, există șanse de a compromite fidelitatea documentului. Pe de altă parte, în XML Paper Specification(XPS), elementele paginii sunt definite independent de un anumit sistem de operare, imprimantă sau aplicație de vizualizare. Deci, o abordare inteligentă este de a converti HTML în format XPS.
API de conversie HTML
Aspose.HTML Cloud SDK pentru Java este un API ușor bazat pe arhitectură REST, care oferă capabilități de a crea, manipula și converti fișiere HTML în PDF, DOCX, TIFF, JPEG , etc. De asemenea, acceptă conversia HTML în XPS. Deci, mai întâi, trebuie să adăugăm următoarele detalii în pom.xml ale proiectului de tip de construcție Maven pentru a include SDK-ul în proiectul nostru Java.
<repositories>
<repository>
<id>aspose-cloud</id>
<name>artifact.aspose-cloud-releases</name>
<url>https://artifact.aspose.cloud/repo</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-html-cloud</artifactId>
<version>20.7.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
După instalare, următorul pas este un abonament gratuit la serviciile noastre cloud prin Aspose.Cloud dashboard folosind GitHub sau contul Google. Sau pur și simplu creați un cont nou și obțineți detaliile dvs. de acreditări de client.
Convertiți HTML în XPS în Java
Vă rugăm să urmați instrucțiunile specificate mai jos pentru a dezvolta un convertor HTML în XPS.
- În primul rând, trebuie să specificăm detalii împotriva metodelor Configuration.setAPPSID și Configuration.setAPIKEY
- În al doilea rând, setăm detalii pentru setBasePath(..), setAuthPath(..) și specificăm setUserAgent(…) ca WebKit
- În al treilea rând, pentru propria noastră asistență, vom seta setDebug(..) ca adevărat
- Acum creați un obiect din clasa ConversionApi
- Specificați detaliile marginii și numele pentru informații pentru fișierul rezultat
- În cele din urmă, apelați metoda GetConvertDocumentToXps(…) care necesită introducerea numelui HTML, dimensiunile și detaliile marjei ca argumente
// pentru mai multe exemple, vă rugăm să vizitați https://github.com/aspose-html-cloud/aspose-html-cloud-java
try
{
// Obțineți ClientID și ClientSecret de pe https://dashboard.aspose.cloud/
String clientId = "bbf94a2c-6d7e-4020-b4d2-b9809741374e";
String clientSecret = "1c9379bb7d701c26cc87e741a29987bb";
// detalii pentru invocarea Api
com.aspose.html.Configuration.setAPP_SID(clientId);
com.aspose.html.Configuration.setAPI_KEY(clientSecret);
com.aspose.html.Configuration.setBasePath("https://api.aspose.cloud/v3.0");
com.aspose.html.Configuration.setAuthPath("https://api.aspose.cloud/connect/token");
com.aspose.html.Configuration.setUserAgent("WebKit");
com.aspose.html.Configuration.setDebug(true);
// Creați un obiect al Aspose.HTML Cloud API
com.aspose.html.api.ConversionApi htmlApi = new ApiClient().createService(ConversionApi.class);
// Documentul html din stocarea în cloud
String name = "list.html";
// formatul de imagine rezultat
String outFormat = "PNG";
Integer width = 800; // Resulting image width.
Integer height = 1000; // Resulting image height.
Integer leftMargin = 10; // Left resulting image margin.
Integer rightMargin = 10; // Right resulting image margin.
Integer topMargin = 10; // Top resulting image margin.
Integer bottomMargin = 10; // Bottom resulting image margin.
Integer resolution = 300; // Resolution of resulting image.
String folder = null; // The folder in the storage. Should exist.
String storage = "Internal"; // Name of the storage. null
// Invocați API-ul pentru conversia HTML în XPS
retrofit2.Call<okhttp3.ResponseBody> call = htmlApi.GetConvertDocumentToXps(name, width, height, leftMargin, rightMargin, topMargin, bottomMargin, folder, storage);
System.out.println("HTML to XPS conversion sucessfull !");
}catch(Exception ex)
{
System.out.println(ex);
}
Codul de mai sus returnează rezultatul în fluxul de răspuns, așa că, pentru a salva rezultatul pe o unitate locală, putem lua în considerare utilizarea următoarei metode personalizate.
/*
* Metoda luând ResponseBody și numele fișierului rezultat ca argumente
*/
public static void checkAndSave(retrofit2.Call<okhttp3.ResponseBody> call, String fileName) throws IOException
{
// Trimiteți cererea în mod sincron și returnați răspunsul acesteia.
retrofit2.Response<okhttp3.ResponseBody> res = call.execute();
// Corpul de răspuns deserializat al unui răspuns de succes
okhttp3.ResponseBody answer = res.body();
//Salvați în directorul de testare
boolean result = saveToDisc(answer, fileName);
// validați valoarea rezultatului este adevărată (pas opțional)
Assert.assertTrue(result);
}
/*
*
* Apelați această metodă pentru a salva conținutul răspunsului ca fișier pe unitatea locală
*
*/
public static boolean saveToDisc(okhttp3.ResponseBody body, String fileName)
{
// creați obiectul fișierului indicând locația fișierului rezultat
File savedFile = new File("c:\\Downloads\\"+fileName);
try (InputStream inputStream = body.byteStream();
OutputStream outputStream = new FileOutputStream(savedFile))
{
byte[] fileReader = new byte[4096];
long fileSizeDownloaded = 0;
while (true) {
int read = inputStream.read(fileReader);
if (read == -1) break;
// salvați fluxul de fișiere pe unitatea locală
outputStream.write(fileReader, 0, read);
fileSizeDownloaded += read;
}
// ștergeți instanța fluxului de ieșire
outputStream.flush();
// returnează adevărat ca fișier salvat cu succes
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
} // saveToDisc ends here
Exemplele de fișiere utilizate în exemplul de mai sus pot fi descărcate de pe list.html și resultantFile.xps.
HTML în XPS folosind comenzile cURL
API-urile REST pot fi accesate și prin comenzile cURL, așa că în această secțiune vom învăța pașii despre cum să efectuați conversia HTML în XPS folosind comanda cURL. Acum, ca o condiție prealabilă, trebuie să generăm mai întâi un JSON Web Token (JWT) pe baza acreditărilor individuale ale clientului. Vă rugăm să executați următoarea comandă pentru a genera simbolul JWT.
curl -v "https://api.aspose.cloud/connect/token" \
-X POST \
-d "grant_type=client_credentials&client_id=bbf94a2c-6d7e-4020-b4d2-b9809741374e&client_secret=1c9379bb7d701c26cc87e741a29987bb" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Accept: application/json"
Acum că avem simbolul JWT, vă rugăm să executați următoarea comandă pe terminal pentru a efectua conversia HTML în XPS.
curl -v -X GET "https://api.aspose.cloud/html/list.html/convert/xps" \
-H "accept: multipart/form-data" \
-H "authorization: Bearer <JWT Token>" \
-o final.xps
Concluzie
Acest articol a explicat detaliile pentru conversia HTML în XPS utilizând API-ul REST. Am învățat pașii pentru a converti HTML în XPS utilizând fragmente de cod Java, precum și prin comenzile cURL. În plus, vă rugăm să rețineți că produsul Documentația este o sursă excelentă pentru a învăța capabilitățile uimitoare oferite de API. În plus, dacă întâmpinați probleme în timpul utilizării API-ului, nu ezitați să contactați Forumul de asistență gratuită pentru produse.
Articole similare
De asemenea, vă recomandăm să vizitați următoarele bloguri pentru mai multe detalii despre: