HTML naar XPS

Converteer HTML naar XPS

HyperText Markup Language (HTML) is een standaard opmaaktaal voor het maken van webpagina’s. Hiermee kunnen secties, alinea’s en links worden gemaakt en gestructureerd met behulp van HTML-elementen/tags. En als sommige aangepaste lettertypen worden gebruikt in een HTML-bestand of als er naar een dynamisch object wordt verwezen waarvoor een actieve verbinding met de bronmachine/server is vereist, bestaat de kans dat de betrouwbaarheid van het document in het gedrang komt. Aan de andere kant, in XML Paper Specification (XPS), worden de pagina-elementen onafhankelijk van een bepaald besturingssysteem, printer of weergavetoepassing gedefinieerd. Een intelligente benadering is dus om HTML naar XPS-indeling te converteren.

HTML-conversie-API

Aspose.HTML Cloud SDK voor Java is een lichtgewicht op REST-architectuur gebaseerde API die de mogelijkheid biedt om HTML-bestanden te maken, manipuleren en converteren naar PDF, DOCX, TIFF, JPEG , enz. Het ondersteunt ook de conversie van HTML naar XPS. Dus eerst moeten we de volgende details toevoegen in pom.xml van het Maven build-type project om de SDK in ons Java-project op te nemen.

<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>

Na installatie is de volgende stap een gratis abonnement op onze cloudservices via Aspose.Cloud dashboard met behulp van GitHub of Google-account. Of maak een nieuw account aan en verkrijg uw klantreferenties.

Converteer HTML naar XPS in Java

Volg de onderstaande instructies om een HTML naar XPS-converter te ontwikkelen.

  • Allereerst moeten we details specificeren tegen de methoden Configuration.setAPPSID en Configuration.setAPIKEY
  • Ten tweede stellen we details in voor setBasePath(..), setAuthPath(..) en specificeren setUserAgent(…) als WebKit
  • Ten derde gaan we voor onze eigen hulp setDebug(..) als waar instellen
  • Maak nu een object van de klasse ConversionApi
  • Specificeer de margedetails en naam voor informatie voor het resulterende bestand
  • Roep ten slotte de methode GetConvertDocumentToXps(…) aan die HTML-naam, afmetingen en margedetails als argumenten vereist
// ga voor meer voorbeelden naar https://github.com/aspose-html-cloud/aspose-html-cloud-java

try
    {
    // Haal ClientID en ClientSecret op van https://dashboard.aspose.cloud/
    String clientId = "bbf94a2c-6d7e-4020-b4d2-b9809741374e";
    String clientSecret = "1c9379bb7d701c26cc87e741a29987bb";
  
    // details voor API-aanroep
    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);
        
    // Maak een object van Aspose.HTML Cloud API
    com.aspose.html.api.ConversionApi htmlApi = new ApiClient().createService(ConversionApi.class);
     	
    // Het html-document van cloudopslag
    String name = "list.html";
    // resulterende beeldformaat
    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
    	
    // Roep de API aan voor conversie van HTML naar 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);
    }

De bovenstaande code retourneert het resultaat in de responsstroom, dus om de uitvoer op een lokale schijf op te slaan, kunnen we overwegen de volgende aangepaste methode te gebruiken.

/*
* Methode waarbij ResponseBody en de resulterende bestandsnaam als argumenten worden gebruikt
*/
public static void checkAndSave(retrofit2.Call<okhttp3.ResponseBody> call, String fileName) throws IOException 
	{
	    // Verzend het verzoek synchroon en stuur het antwoord terug.
	    retrofit2.Response<okhttp3.ResponseBody> res = call.execute();
	    
	    // De gedeserialiseerde antwoordtekst van een geslaagd antwoord
	    okhttp3.ResponseBody answer = res.body();
	    
	    //Opslaan in testdirectory
	    boolean result = saveToDisc(answer, fileName);
	    
	    // valideren dat de resultaatwaarde waar is (optionele stap)
	    Assert.assertTrue(result);
	}
	
  /*
  *
  * Roep deze methode aan om responsinhoud op te slaan als bestand op een lokale schijf
  *
  */ 
	public static boolean saveToDisc(okhttp3.ResponseBody body, String fileName) 
	{
            // create file-object dat de locatie aangeeft voor het resulterende bestand
	    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;

                // sla de bestandsstroom op naar de lokale schijf
		outputStream.write(fileReader, 0, read);
		fileSizeDownloaded += read;
            }
	    // wis de instantie van de uitvoerstroom
	    outputStream.flush();
	    
	    // return true als bestand succesvol is opgeslagen
	    return true;
	    } catch (Exception e) {
		e.printStackTrace();
		return false;
	    }
	} // saveToDisc ends here
HTML naar XPS

Image1:- Voorbeeld van HTML naar XPS

De voorbeeldbestanden die in het bovenstaande voorbeeld worden gebruikt, kunnen worden gedownload van list.html en resultantFile.xps.

HTML naar XPS met cURL-opdrachten

De REST API’s zijn ook toegankelijk via cURL-opdrachten, dus in deze sectie gaan we de stappen leren voor het uitvoeren van de HTML naar XPS-conversie met behulp van de cURL-opdracht. Nu moeten we als eerste vereiste eerst een JSON Web Token (JWT) genereren op basis van uw individuele klantreferenties. Voer de volgende opdracht uit om het JWT-token te genereren.

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"

Nu we het JWT-token hebben, voert u de volgende opdracht uit op de terminal om HTML naar XPS-conversie uit te voeren.

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

Gevolgtrekking

Dit artikel heeft de details uitgelegd voor het converteren van HTML naar XPS met behulp van REST API. We hebben de stappen geleerd om HTML naar XPS te converteren met behulp van Java-codefragmenten en via cURL-opdrachten. Houd er bovendien rekening mee dat de product documentatie een geweldige bron is om meer te weten te komen over de geweldige mogelijkheden die de API biedt. Als u bovendien problemen ondervindt tijdens het gebruik van de API, neem dan gerust contact op met het Gratis productondersteuningsforum.

gerelateerde artikelen

We raden ook aan om de volgende blogs te bezoeken voor meer informatie over: