HyperText Markup Language (HTML) est un langage de balisage standard pour la création de pages Web. Il permet la création et la structure de sections, de paragraphes et de liens à l’aide d’éléments/balises HTML. Et dans le cas où certaines polices personnalisées sont utilisées dans un fichier HTML ou si un objet dynamique est référencé nécessitant une connexion active à la machine/au serveur source, il y a des chances de compromettre la fidélité du document. D’autre part, dans XML Paper Specification(XPS), les éléments de page sont définis indépendamment d’un système d’exploitation, d’une imprimante ou d’une application de visualisation particulière. Une approche intelligente consiste donc à convertir le format HTML au format XPS.
API de conversion HTML
Aspose.HTML Cloud SDK pour Java est une API légère basée sur l’architecture REST offrant les capacités de créer, manipuler et convertir des fichiers HTML en PDF, DOCX, TIFF, JPEG , etc. Il prend également en charge la conversion de HTML en XPS. Donc, tout d’abord, nous devons ajouter les détails suivants dans pom.xml du projet de type de construction Maven pour inclure le SDK dans notre projet 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>
Après l’installation, la prochaine étape est un abonnement gratuit à nos services cloud via tableau de bord Aspose.Cloud en utilisant GitHub ou un compte Google. Ou, tout simplement créez un nouveau compte et obtenez vos informations d’identification client.
Convertir HTML en XPS en Java
Veuillez suivre les instructions spécifiées ci-dessous pour développer un convertisseur HTML vers XPS.
- Tout d’abord, nous devons spécifier les détails par rapport aux méthodes Configuration.setAPPSID et Configuration.setAPIKEY
- Deuxièmement, nous définissons les détails pour setBasePath(..), setAuthPath(..) et spécifions setUserAgent(…) comme WebKit
- Troisièmement, pour notre propre assistance, nous allons définir setDebug(..) sur true
- Créez maintenant un objet de la classe ConversionApi
- Spécifiez les détails de la marge et le nom des informations pour le fichier résultant
- Enfin, appelez la méthode GetConvertDocumentToXps(…) qui nécessite le nom HTML d’entrée, les dimensions et les détails de la marge comme arguments
// pour plus d'exemples, veuillez visiter https://github.com/aspose-html-cloud/aspose-html-cloud-java
try
{
// Obtenez ClientID et ClientSecret à partir de https://dashboard.aspose.cloud/
String clientId = "bbf94a2c-6d7e-4020-b4d2-b9809741374e";
String clientSecret = "1c9379bb7d701c26cc87e741a29987bb";
// détails pour l'appel d'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);
// Créer un objet de l'API Aspose.HTML Cloud
com.aspose.html.api.ConversionApi htmlApi = new ApiClient().createService(ConversionApi.class);
// Le document html du stockage en nuage
String name = "list.html";
// format d'image résultant
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
// Appeler l'API pour la conversion HTML vers 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);
}
Le code ci-dessus renvoie le résultat dans le flux de réponse. Ainsi, afin d’enregistrer la sortie sur un lecteur local, nous pouvons envisager d’utiliser la méthode personnalisée suivante.
/*
* Méthode prenant ResponseBody et le nom du fichier résultant comme arguments
*/
public static void checkAndSave(retrofit2.Call<okhttp3.ResponseBody> call, String fileName) throws IOException
{
// Envoyez la requête de manière synchrone et renvoyez sa réponse.
retrofit2.Response<okhttp3.ResponseBody> res = call.execute();
// Le corps de réponse désérialisé d'une réponse réussie
okhttp3.ResponseBody answer = res.body();
//Enregistrer dans le répertoire de test
boolean result = saveToDisc(answer, fileName);
// valider que la valeur du résultat est vraie (étape facultative)
Assert.assertTrue(result);
}
/*
*
* Appelez cette méthode pour enregistrer le contenu de la réponse en tant que fichier sur le lecteur local
*
*/
public static boolean saveToDisc(okhttp3.ResponseBody body, String fileName)
{
// créer un objet fichier indiquant l'emplacement du fichier résultant
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;
// enregistrer le flux de fichiers sur le lecteur local
outputStream.write(fileReader, 0, read);
fileSizeDownloaded += read;
}
// effacer l'instance de flux de sortie
outputStream.flush();
// renvoie vrai car le fichier a été enregistré avec succès
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
} // saveToDisc ends here
Les exemples de fichiers utilisés dans l’exemple ci-dessus peuvent être téléchargés depuis list.html et resultantFile.xps.
HTML vers XPS à l’aide des commandes cURL
Les API REST sont également accessibles via les commandes cURL. Dans cette section, nous allons donc apprendre les étapes à suivre pour effectuer la conversion HTML vers XPS à l’aide de la commande cURL. Maintenant, comme condition préalable, nous devons d’abord générer un jeton Web JSON (JWT) basé sur vos informations d’identification client individuelles. Veuillez exécuter la commande suivante pour générer le jeton 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"
Maintenant que nous avons le jeton JWT, veuillez exécuter la commande suivante sur le terminal pour effectuer la conversion HTML vers 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
Conclusion
Cet article a expliqué les détails de la conversion de HTML en XPS à l’aide de l’API REST. Nous avons appris les étapes pour convertir HTML en XPS en utilisant des extraits de code Java ainsi que via des commandes cURL. De plus, veuillez noter que le produit Documentation est une excellente source pour découvrir les incroyables capacités offertes par l’API. De plus, si vous rencontrez des problèmes lors de l’utilisation de l’API, n’hésitez pas à contacter le forum d’assistance produit gratuit.
Articles Liés
Nous vous recommandons également de visiter les blogs suivants pour plus de détails concernant :