HTML til XPS

Konverter HTML til XPS

HyperText Markup Language (HTML) er et standardopmærkningssprog til oprettelse af websider. Det tillader oprettelse og struktur af sektioner, afsnit og links ved hjælp af HTML-elementer/tags. Og i tilfælde af at nogle brugerdefinerede skrifttyper bruges i en HTML-fil, eller der henvises til et dynamisk objekt, som kræver en aktiv forbindelse til kildemaskinen/serveren, er der chancer for at kompromittere dokumentets troværdighed. På den anden side, i XML Paper Specification(XPS), er sideelementerne defineret uafhængigt af et bestemt operativsystem, printer eller visningsprogram. Så en intelligent tilgang er at konvertere HTML til XPS-format.

HTML Conversion API

Aspose.HTML Cloud SDK til Java er en letvægts REST-arkitektur-baseret API, der giver mulighed for at oprette, manipulere og konvertere HTML-filer til PDF, DOCX, TIFF, [JPEG] ]6, osv. Det understøtter også konvertering af HTML til XPS. Så først skal vi tilføje følgende detaljer i pom.xml af Maven build-projektet for at inkludere SDK’et i vores Java-projekt.

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

Efter installationen er næste trin et gratis abonnement på vores cloud-tjenester via Aspose.Cloud-dashboard ved hjælp af GitHub eller Google-konto. Eller bare opret en ny konto og indhent dine kundeoplysninger.

Konverter HTML til XPS i Java

Følg venligst instruktionerne nedenfor for at udvikle en HTML til XPS-konverter.

  • Først og fremmest skal vi specificere detaljer mod Configuration.setAPPSID og Configuration.setAPIKEY metoder
  • For det andet sætter vi detaljer for setBasePath(..), setAuthPath(..) og specificerer setUserAgent(…) som WebKit
  • For det tredje, for vores egen hjælp, vil vi indstille setDebug(..) som sand
  • Opret nu et objekt af ConversionApi-klassen
  • Angiv margendetaljerne og navn for information for den resulterende fil
  • Til sidst skal du kalde GetConvertDocumentToXps(…) metoden, som kræver input HTML-navn, dimensioner og margendetaljer som argumenter
// for flere eksempler, besøg venligst https://github.com/aspose-html-cloud/aspose-html-cloud-java

try
    {
    // Hent ClientID og ClientSecret fra https://dashboard.aspose.cloud/
    String clientId = "bbf94a2c-6d7e-4020-b4d2-b9809741374e";
    String clientSecret = "1c9379bb7d701c26cc87e741a29987bb";
  
    // detaljer for Api-påkaldelse
    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);
        
    // Opret et objekt af Aspose.HTML Cloud API
    com.aspose.html.api.ConversionApi htmlApi = new ApiClient().createService(ConversionApi.class);
     	
    // HTML-dokumentet fra cloud storage
    String name = "list.html";
    // resulterende billedformat
    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
    	
    // Kald API'et til HTML til XPS-konvertering
    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);
    }

Ovenstående kode returnerer resultatet i svarstrømmen, så for at gemme outputtet på et lokalt drev kan vi overveje at bruge følgende brugerdefinerede metode.

/*
* Metode, der tager ResponseBody og det resulterende filnavn som argumenter
*/
public static void checkAndSave(retrofit2.Call<okhttp3.ResponseBody> call, String fileName) throws IOException 
	{
	    // Send anmodningen synkront og returner dens svar.
	    retrofit2.Response<okhttp3.ResponseBody> res = call.execute();
	    
	    // Den deserialiserede svartekst af et vellykket svar
	    okhttp3.ResponseBody answer = res.body();
	    
	    //Gem i testbiblioteket
	    boolean result = saveToDisc(answer, fileName);
	    
	    // valider, at resultatværdien er sand (valgfrit trin)
	    Assert.assertTrue(result);
	}
	
  /*
  *
  * Kald denne metode for at gemme svarindhold som fil på lokalt drev
  *
  */ 
	public static boolean saveToDisc(okhttp3.ResponseBody body, String fileName) 
	{
            // oprette filobjekt, der angiver placeringen af den resulterende fil
	    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;

                // gem filstream til lokalt drev
		outputStream.write(fileReader, 0, read);
		fileSizeDownloaded += read;
            }
	    // Ryd outputstream-forekomsten
	    outputStream.flush();
	    
	    // returner true som fil gemt
	    return true;
	    } catch (Exception e) {
		e.printStackTrace();
		return false;
	    }
	} // saveToDisc ends here
HTML til XPS

Billede 1:- HTML til XPS forhåndsvisning

Eksempelfilerne brugt i ovenstående eksempel kan downloades fra list.html og resultantFile.xps.

HTML til XPS ved hjælp af cURL-kommandoer

REST API’erne kan også tilgås via cURL-kommandoer, så i dette afsnit vil vi lære trinene til, hvordan man udfører HTML til XPS-konverteringen ved hjælp af cURL-kommandoen. Nu som en forudsætning skal vi først generere et JSON Web Token (JWT) baseret på dine individuelle klientoplysninger. Udfør venligst følgende kommando for at generere JWT-tokenet.

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 hvor vi har JWT-tokenet, skal du udføre følgende kommando på terminalen for at udføre HTML til XPS-konvertering.

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

Konklusion

Denne artikel har forklaret detaljerne for konvertering af HTML til XPS ved hjælp af REST API. Vi har lært trinene til at konvertere HTML til XPS ved hjælp af Java-kodestykker såvel som gennem cURL-kommandoer. Bemærk desuden, at produktet Dokumentation er en fantastisk kilde til at lære de fantastiske muligheder, som API’en tilbyder. Desuden, hvis du støder på problemer, mens du bruger API’en, er du velkommen til at kontakte Free product support forum.

relaterede artikler

Vi anbefaler også, at du besøger følgende blogs for yderligere oplysninger om: