HTML vers XPS

Convertir HTML en XPS

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>http://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
HTML vers XPS

Image1 :- Aperçu HTML vers XPS

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 :