Da HTML a XPS

Converti HTML in XPS

HyperText Markup Language (HTML) è un linguaggio di markup standard per la creazione di pagine web. Consente la creazione e la struttura di sezioni, paragrafi e collegamenti utilizzando elementi/tag HTML. E nel caso in cui alcuni caratteri personalizzati vengano utilizzati in un file HTML o venga fatto riferimento a qualsiasi oggetto dinamico che richieda una connessione attiva al computer/server di origine, ci sono possibilità di compromettere la fedeltà del documento. D’altra parte, in XML Paper Specification(XPS), gli elementi della pagina sono definiti indipendentemente da un particolare sistema operativo, stampante o applicazione di visualizzazione. Quindi un approccio intelligente è convertire HTML in formato XPS.

API di conversione HTML

Aspose.HTML Cloud SDK for Java è un’API leggera basata sull’architettura REST che fornisce le funzionalità per creare, manipolare e convertire file HTML in PDF, DOCX, TIFF, JPEG , ecc. Supporta anche la conversione di HTML in XPS. Quindi, per prima cosa, dobbiamo aggiungere i seguenti dettagli in pom.xml del progetto di tipo build Maven per includere l’SDK nel nostro progetto 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>

Dopo l’installazione, il passaggio successivo è un abbonamento gratuito ai nostri servizi cloud tramite Aspose.Cloud dashboard utilizzando GitHub o un account Google. Oppure, semplicemente crea un nuovo account e ottieni i dettagli delle tue credenziali cliente.

Converti HTML in XPS in Java

Si prega di seguire le istruzioni specificate di seguito per sviluppare un convertitore da HTML a XPS.

  • Prima di tutto, dobbiamo specificare i dettagli rispetto ai metodi Configuration.setAPPSID e Configuration.setAPIKEY
  • In secondo luogo, impostiamo i dettagli per setBasePath(..), setAuthPath(..) e specifichiamo setUserAgent(…) come WebKit
  • In terzo luogo, per nostro aiuto, imposteremo setDebug(..) come vero
  • Ora crea un oggetto della classe ConversionApi
  • Specificare i dettagli del margine e il nome per le informazioni per il file risultante
  • Infine, chiama il metodo GetConvertDocumentToXps(…) che richiede il nome HTML di input, le dimensioni e i dettagli del margine come argomenti
// per ulteriori esempi, visitare https://github.com/aspose-html-cloud/aspose-html-cloud-java

try
    {
    // Ottieni ClientID e ClientSecret da https://dashboard.aspose.cloud/
    String clientId = "bbf94a2c-6d7e-4020-b4d2-b9809741374e";
    String clientSecret = "1c9379bb7d701c26cc87e741a29987bb";
  
    // dettagli per l'invocazione 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 un oggetto di Aspose.HTML Cloud API
    com.aspose.html.api.ConversionApi htmlApi = new ApiClient().createService(ConversionApi.class);
     	
    // Il documento html dal cloud storage
    String name = "list.html";
    // formato dell'immagine risultante
    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
    	
    // Richiama l'API per la conversione da HTML a 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);
    }

Il codice sopra riportato restituisce il risultato nel flusso di risposta quindi, per salvare l’output su un’unità locale, potremmo prendere in considerazione l’utilizzo del seguente metodo personalizzato.

/*
* Metodo che accetta ResponseBody e il nome del file risultante come argomenti
*/
public static void checkAndSave(retrofit2.Call<okhttp3.ResponseBody> call, String fileName) throws IOException 
	{
	    // Invia in modo sincrono la richiesta e restituisci la sua risposta.
	    retrofit2.Response<okhttp3.ResponseBody> res = call.execute();
	    
	    // Il corpo della risposta deserializzato di una risposta riuscita
	    okhttp3.ResponseBody answer = res.body();
	    
	    //Salva nella directory di prova
	    boolean result = saveToDisc(answer, fileName);
	    
	    // convalidare il valore del risultato è vero (passaggio facoltativo)
	    Assert.assertTrue(result);
	}
	
  /*
  *
  * Chiama questo metodo per salvare il contenuto della risposta come file sull'unità locale
  *
  */ 
	public static boolean saveToDisc(okhttp3.ResponseBody body, String fileName) 
	{
            // crea un oggetto file che indica la posizione per il file risultante
	    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 il flusso di file sull'unità locale
		outputStream.write(fileReader, 0, read);
		fileSizeDownloaded += read;
            }
	    // cancellare l'istanza del flusso di output
	    outputStream.flush();
	    
	    // restituisce true quando il file viene salvato correttamente
	    return true;
	    } catch (Exception e) {
		e.printStackTrace();
		return false;
	    }
	} // saveToDisc ends here
Da HTML a XPS

Immagine 1: - Anteprima da HTML a XPS

I file di esempio utilizzati nell’esempio precedente possono essere scaricati da list.html e resultantFile.xps.

Da HTML a XPS utilizzando i comandi cURL

È possibile accedere alle API REST anche tramite i comandi cURL, quindi in questa sezione impareremo i passaggi su come eseguire la conversione da HTML a XPS utilizzando il comando cURL. Ora, come prerequisito, dobbiamo prima generare un JSON Web Token (JWT) basato sulle tue credenziali client individuali. Eseguire il seguente comando per generare il token 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"

Ora che abbiamo il token JWT, esegui il seguente comando sul terminale per eseguire la conversione da HTML a 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

Conclusione

Questo articolo ha spiegato i dettagli per convertire HTML in XPS utilizzando l’API REST. Abbiamo imparato i passaggi per convertire HTML in XPS utilizzando frammenti di codice Java e tramite i comandi cURL. Inoltre, tieni presente che la Documentazione del prodotto è un’ottima fonte per apprendere le straordinarie funzionalità offerte dall’API. Inoltre, se riscontri problemi durante l’utilizzo dell’API, non esitare a contattare il Forum di supporto del prodotto gratuito.

articoli Correlati

Si consiglia inoltre di visitare i seguenti blog per ulteriori dettagli riguardanti: