HTML u XPS

Pretvorite HTML u XPS

HyperText Markup Language (HTML) standardni je označni jezik za izradu web stranica. Omogućuje stvaranje i strukturu odjeljaka, odlomaka i veza pomoću HTML elemenata/oznaka. A u slučaju da se neki prilagođeni fontovi koriste u HTML datoteci ili se referencira bilo koji dinamički objekt koji zahtijeva aktivnu vezu s izvornim strojem/poslužiteljem, postoje šanse da se ugrozi vjernost dokumenta. S druge strane, u specifikaciji XML papira (XPS), elementi stranice definirani su neovisno o određenom operativnom sustavu, pisaču ili aplikaciji za pregled. Dakle, inteligentan pristup je pretvoriti HTML u XPS format.

API za pretvorbu HTML-a

Aspose.HTML Cloud SDK za Javu lagani je API temeljen na REST arhitekturi koji pruža mogućnosti stvaranja, manipuliranja i pretvaranja HTML datoteka u PDF, DOCX, TIFF, JPEG itd. Također podržava konverziju HTML-a u XPS. Dakle, prvo moramo dodati sljedeće pojedinosti u pom.xml projekta Maven tipa izgradnje kako bismo uključili SDK u naš 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>

Nakon instalacije, sljedeći korak je besplatna pretplata na naše usluge u oblaku putem Aspose.Cloud nadzorne ploče koristeći GitHub ili Google račun. Ili jednostavno izradite novi račun i nabavite pojedinosti o vjerodajnicama klijenta.

Pretvorite HTML u XPS u Javi

Slijedite dolje navedene upute za razvoj pretvarača HTML-a u XPS.

  • Prije svega, moramo specificirati detalje u odnosu na metode Configuration.setAPPSID i Configuration.setAPIKEY
  • Drugo, postavljamo detalje za setBasePath(..), setAuthPath(..) i navodimo setUserAgent(…) kao WebKit
  • Treće, radi vlastite pomoći, postavit ćemo setDebug(..) kao true
  • Sada stvorite objekt klase ConversionApi
  • Navedite pojedinosti o marginama i ime za informacije za rezultirajuću datoteku
  • Na kraju, pozovite metodu GetConvertDocumentToXps(…) koja zahtijeva unos HTML naziva, dimenzija i pojedinosti o marginama kao argumente
// za više primjera posjetite https://github.com/aspose-html-cloud/aspose-html-cloud-java

try
    {
    // Dobijte ClientID i ClientSecret s https://dashboard.aspose.cloud/
    String clientId = "bbf94a2c-6d7e-4020-b4d2-b9809741374e";
    String clientSecret = "1c9379bb7d701c26cc87e741a29987bb";
  
    // detalji za pozivanje API-ja
    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);
        
    // Stvorite objekt Aspose.HTML Cloud API-ja
    com.aspose.html.api.ConversionApi htmlApi = new ApiClient().createService(ConversionApi.class);
     	
    // HTML dokument iz pohrane u oblaku
    String name = "list.html";
    // rezultirajući format slike
    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
    	
    // Pozovite API za konverziju HTML-a u 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);
    }

Gornji kod vraća rezultat u toku odgovora, tako da, kako bismo spremili izlaz na lokalni pogon, možemo razmotriti korištenje sljedeće prilagođene metode.

/*
* Metoda koja uzima ResponseBody i rezultirajući naziv datoteke kao argumente
*/
public static void checkAndSave(retrofit2.Call<okhttp3.ResponseBody> call, String fileName) throws IOException 
	{
	    // Sinkrono poslati zahtjev i vratiti njegov odgovor.
	    retrofit2.Response<okhttp3.ResponseBody> res = call.execute();
	    
	    // Deserijalizirano tijelo odgovora uspješnog odgovora
	    okhttp3.ResponseBody answer = res.body();
	    
	    //Spremi u testni direktorij
	    boolean result = saveToDisc(answer, fileName);
	    
	    // potvrdite da je vrijednost rezultata istinita (neobavezni korak)
	    Assert.assertTrue(result);
	}
	
  /*
  *
  * Pozovite ovu metodu za spremanje sadržaja odgovora kao datoteke na lokalnom disku
  *
  */ 
	public static boolean saveToDisc(okhttp3.ResponseBody body, String fileName) 
	{
            // stvoriti datotečni objekt koji označava mjesto za rezultirajuću datoteku
	    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;

                // spremiti tok datoteke na lokalni disk
		outputStream.write(fileReader, 0, read);
		fileSizeDownloaded += read;
            }
	    // očistite instancu izlaznog toka
	    outputStream.flush();
	    
	    // vrati true kao uspješno spremanje datoteke
	    return true;
	    } catch (Exception e) {
		e.printStackTrace();
		return false;
	    }
	} // saveToDisc ends here
HTML u XPS

Slika1:- HTML u XPS pregled

Ogledne datoteke korištene u gornjem primjeru mogu se preuzeti s list.html i resultantFile.xps.

HTML u XPS pomoću cURL naredbi

REST API-jima također se može pristupiti putem cURL naredbi pa ćemo u ovom odjeljku naučiti korake kako izvršiti konverziju HTML-a u XPS koristeći cURL naredbu. Sada kao preduvjet, prvo moramo generirati JSON web token (JWT) na temelju vjerodajnica vašeg pojedinačnog klijenta. Molimo izvršite sljedeću naredbu za generiranje JWT tokena.

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"

Sada kada imamo JWT token, molimo izvršite sljedeću naredbu na terminalu da izvršite konverziju HTML-a u 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

Zaključak

Ovaj članak objašnjava pojedinosti za pretvaranje HTML-a u XPS pomoću REST API-ja. Naučili smo korake za pretvaranje HTML-a u XPS pomoću isječaka Java koda kao i putem cURL naredbi. Nadalje, imajte na umu da je Dokumentacija proizvoda izvrstan izvor za učenje nevjerojatnih mogućnosti koje nudi API. Nadalje, ako naiđete na bilo kakve probleme tijekom korištenja API-ja, slobodno kontaktirajte Forum za besplatnu podršku proizvoda.

povezani članci

Također preporučujemo da posjetite sljedeće blogove za dodatne pojedinosti o: