HTML zu XPS

Convertéieren HTML op XPS

HyperText Markup Language (HTML) ass eng Standard Markup Sprooch fir Websäiten ze kreéieren. Et erlaabt d’Schafung an d’Struktur vu Sektiounen, Abschnitter a Linken mat HTML Elementer / Tags. A wann e puer personaliséiert Schrëften an enger HTML-Datei benotzt ginn oder all dynamesch Objet referenzéiert gëtt, deen eng aktiv Verbindung mat der Quellmaschinn/Server erfuerdert, gëtt et Chancen fir d’Vertraulechkeet vum Dokument ze kompromittéieren. Op der anerer Säit, an der XML Paper Specification (XPS), sinn d’Säitelementer onofhängeg vun engem bestëmmte Betribssystem, Drécker oder Vue Uwendung definéiert. Also eng intelligent Approche ass HTML an XPS Format ze konvertéieren.

HTML Konversioun API

Aspose.HTML Cloud SDK fir Java ass eng liicht REST Architektur-baséiert API déi d’Fäegkeeten ubitt fir HTML Dateien op PDF, DOCX, TIFF, [JPEG ze kreéieren, ze manipuléieren an ze konvertéieren] ]6, etc. Et ënnerstëtzt och d’Konversioun vun HTML op XPS. Also, als éischt, musse mir déi folgend Detailer an pom.xml vum Maven Build-Typ Projet addéieren fir d’SDK an eisem Java-Projet opzehuelen.

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

No der Installatioun ass de nächste Schrëtt e gratis Abonnement op eis Cloud Servicer iwwer Aspose.Cloud Dashboard mat GitHub oder Google Kont. Oder, einfach erstellt en neie Kont a kritt Är Client Umeldungsdetailer.

Konvertéiert HTML op XPS op Java

Follegt w.e.g. d’Instruktioune hei ënnen fir en HTML op XPS Konverter z’entwéckelen.

  • Als éischt musse mir Detailer géint Configuration.setAPPSID a Configuration.setAPIKEY Methoden spezifizéieren
  • Zweetens setzen mir Detailer fir setBasePath(..), setAuthPath(..) a spezifizéieren setUserAgent(…) als WebKit
  • Drëttens, fir eis eegen Hëllef, wäerte mir setDebug (..) als wouer setzen
  • Erstellt elo en Objet vun der ConversionApi Klass
  • Gitt d’Margindetailer an den Numm fir Informatioun fir déi resultéierend Datei un
  • Schlussendlech, rufft GetConvertDocumentToXps(…) Method déi HTML-Numm, Dimensiounen a Margindetailer als Argumenter erfuerdert
// fir méi Beispiller, besicht w.e.g. https://github.com/aspose-html-cloud/aspose-html-cloud-java

try
    {
    // Kritt ClientID a ClientSecret vun https://dashboard.aspose.cloud/
    String clientId = "bbf94a2c-6d7e-4020-b4d2-b9809741374e";
    String clientSecret = "1c9379bb7d701c26cc87e741a29987bb";
  
    // Detailer fir Api Uruff
    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);
        
    // Schafen en Objet vun Aspose.HTML Cloud API
    com.aspose.html.api.ConversionApi htmlApi = new ApiClient().createService(ConversionApi.class);
     	
    // Den HTML-Dokument vu Cloud-Späichere
    String name = "list.html";
    // resultéierend Bildformat
    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
    	
    // Rufft d'API fir HTML op XPS Konversioun un
    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);
    }

Deen uewe genannte Code gëtt d’Resultat am Äntwertstroum zréck, also, fir den Ausgang op engem lokalen Drive ze späicheren, kënne mir iwwerleeën déi folgend personaliséiert Method ze benotzen.

/*
* Method hëlt ResponseBody a resultéierend Dateinumm als Argumenter
*/
public static void checkAndSave(retrofit2.Call<okhttp3.ResponseBody> call, String fileName) throws IOException 
	{
	    // Synchron schéckt d'Ufro an zréck seng Äntwert.
	    retrofit2.Response<okhttp3.ResponseBody> res = call.execute();
	    
	    // D'deserialiséiert Äntwert Kierper vun enger erfollegräich Äntwert
	    okhttp3.ResponseBody answer = res.body();
	    
	    //Späichert an den Testverzeichnis
	    boolean result = saveToDisc(answer, fileName);
	    
	    // validéieren datt de Resultatwäert richteg ass (optional Schrëtt)
	    Assert.assertTrue(result);
	}
	
  /*
  *
  * Rufft dës Method un fir Äntwert Inhalt als Datei op lokalen Drive ze späicheren
  *
  */ 
	public static boolean saveToDisc(okhttp3.ResponseBody body, String fileName) 
	{
            // erstellen Dateiobjekt deen d'Plaz fir déi resultéierend Datei uginn
	    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;

                // späichert Dateistream op lokalen Drive
		outputStream.write(fileReader, 0, read);
		fileSizeDownloaded += read;
            }
	    // läschen der Output Stream Instanz
	    outputStream.flush();
	    
	    // zréck richteg als Datei späicheren erfollegräich
	    return true;
	    } catch (Exception e) {
		e.printStackTrace();
		return false;
	    }
	} // saveToDisc ends here
HTML zu XPS

Bild 1: - HTML op XPS Virschau

D’Probedateien, déi am uewe genannte Beispill benotzt ginn, kënnen aus list.html an resultantFile.xps erofgeluede ginn.

HTML op XPS mat cURL Kommandoen

D’REST APIs kënnen och iwwer cURL Kommandoen zougänglech sinn, also an dëser Sektioun léiere mir d’Schrëtt wéi d’HTML op XPS Konversioun mam cURL Kommando ausféiert. Elo als Viraussetzung musse mir als éischt e JSON Web Token (JWT) generéieren baséiert op Ären individuellen Client Umeldungsinformatiounen. Fëllt w.e.g. de folgende Kommando aus fir de JWT Token ze generéieren.

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"

Elo datt mir de JWT Token hunn, fuert w.e.g. de folgende Kommando um Terminal aus fir HTML op XPS Konversioun auszeféieren.

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

Conclusioun

Dësen Artikel huet d’Detailer erkläert fir HTML op XPS ze konvertéieren mat REST API. Mir hunn d’Schrëtt geléiert fir HTML op XPS ze konvertéieren mat Java Code Snippets wéi och duerch cURL Kommandoen. Ausserdeem, notéiert w.e.g. datt de Produkt Dokumentatioun eng super Quell ass fir déi erstaunlech Fäegkeeten ze léieren, déi vun der API ugebuede ginn. Ausserdeem, wann Dir Probleemer begéint wärend Dir d’API benotzt, w.e.g. kontaktéiert de Gratis Produkt Support Forum.

Zesummenhang Artikelen

Mir recommandéieren och déi folgend Blogs ze besichen fir weider Detailer iwwer: