HTML na XPS

Previesť HTML na XPS

HyperText Markup Language (HTML) je štandardný značkovací jazyk na vytváranie webových stránok. Umožňuje vytváranie a štruktúru sekcií, odsekov a odkazov pomocou prvkov/značiek HTML. A v prípade, že sa v súbore HTML použijú nejaké vlastné písma alebo sa odkazuje na akýkoľvek dynamický objekt, ktorý vyžaduje aktívne pripojenie k zdrojovému stroju/serveru, existuje možnosť narušenia vernosti dokumentu. Na druhej strane v špecifikácii papiera XML (XPS) sú prvky stránky definované nezávisle od konkrétneho operačného systému, tlačiarne alebo aplikácie na prezeranie. Inteligentným prístupom je teda previesť HTML do formátu XPS.

HTML Conversion API

Aspose.HTML Cloud SDK for Java je ľahké API založené na REST architektúre, ktoré poskytuje možnosti na vytváranie, manipuláciu a konverziu HTML súborov do PDF, DOCX, TIFF, JPEG atď. Podporuje tiež konverziu HTML na XPS. Najprv teda musíme pridať nasledujúce podrobnosti do pom.xml projektu typu zostavy Maven, aby sme zahrnuli SDK do nášho projektu 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>

Po inštalácii je ďalším krokom bezplatné predplatné našich cloudových služieb cez Aspose.Cloud dashboard pomocou GitHub alebo účtu Google. Alebo jednoducho vytvorte nový účet a získajte podrobnosti o svojich klientskych povereniach.

Previesť HTML na XPS v Jave

Pri vývoji konvertora HTML na XPS postupujte podľa pokynov uvedených nižšie.

  • Najprv musíme špecifikovať podrobnosti o metódach Configuration.setAPPSID a Configuration.setAPIKEY
  • Po druhé, nastavíme podrobnosti pre setBasePath(..), setAuthPath(..) a špecifikujeme setUserAgent(…) ako WebKit
  • Po tretie, pre našu vlastnú pomoc nastavíme setDebug(..) ako true
  • Teraz vytvorte objekt triedy ConversionApi
  • Zadajte podrobnosti okraja a názov pre informácie o výslednom súbore
  • Nakoniec zavolajte metódu GetConvertDocumentToXps(…), ktorá vyžaduje vstupný HTML názov, rozmery a podrobnosti o okrajoch ako argumenty
// ďalšie príklady nájdete na https://github.com/aspose-html-cloud/aspose-html-cloud-java

try
    {
    // Získajte ClientID a ClientSecret z https://dashboard.aspose.cloud/
    String clientId = "bbf94a2c-6d7e-4020-b4d2-b9809741374e";
    String clientSecret = "1c9379bb7d701c26cc87e741a29987bb";
  
    // podrobnosti o vyvolaní 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);
        
    // Vytvorte objekt Aspose.HTML Cloud API
    com.aspose.html.api.ConversionApi htmlApi = new ApiClient().createService(ConversionApi.class);
     	
    // html dokument z cloudového úložiska
    String name = "list.html";
    // výsledný obrazový formát
    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
    	
    // Vyvolajte API pre konverziu HTML na 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);
    }

Vyššie uvedený kód vráti výsledok v toku odpovedí, takže na uloženie výstupu na lokálnu jednotku môžeme zvážiť použitie nasledujúcej vlastnej metódy.

/*
* Metóda berie ResponseBody a výsledný názov súboru ako argumenty
*/
public static void checkAndSave(retrofit2.Call<okhttp3.ResponseBody> call, String fileName) throws IOException 
	{
	    // Synchrónne odoslať požiadavku a vrátiť jej odpoveď.
	    retrofit2.Response<okhttp3.ResponseBody> res = call.execute();
	    
	    // Deserializované telo odpovede úspešnej odpovede
	    okhttp3.ResponseBody answer = res.body();
	    
	    //Uložiť do testovacieho adresára
	    boolean result = saveToDisc(answer, fileName);
	    
	    // overiť, či je výsledná hodnota pravdivá (voliteľný krok)
	    Assert.assertTrue(result);
	}
	
  /*
  *
  * Zavolaním tejto metódy uložíte obsah odpovede ako súbor na lokálny disk
  *
  */ 
	public static boolean saveToDisc(okhttp3.ResponseBody body, String fileName) 
	{
            // vytvoriť objekt súboru označujúci umiestnenie výsledného súboru
	    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;

                // uložiť prúd súborov na lokálny disk
		outputStream.write(fileReader, 0, read);
		fileSizeDownloaded += read;
            }
	    // vymazať inštanciu výstupného toku
	    outputStream.flush();
	    
	    // vrátiť hodnotu true ako súbor úspešne uložiť
	    return true;
	    } catch (Exception e) {
		e.printStackTrace();
		return false;
	    }
	} // saveToDisc ends here
HTML na XPS

Obrázok 1: - Ukážka HTML na XPS

Vzorové súbory použité vo vyššie uvedenom príklade si môžete stiahnuť z list.html a resultantFile.xps.

HTML na XPS pomocou príkazov cURL

K rozhraniam REST API je možné pristupovať aj prostredníctvom príkazov cURL, takže v tejto časti sa naučíme kroky, ako vykonať konverziu HTML na XPS pomocou príkazu cURL. Teraz ako nevyhnutnú podmienku musíme najprv vygenerovať JSON Web Token (JWT) na základe vašich individuálnych prihlasovacích údajov klienta. Ak chcete vygenerovať token JWT, vykonajte nasledujúci príkaz.

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"

Teraz, keď máme token JWT, vykonajte na termináli nasledujúci príkaz, aby ste vykonali konverziu HTML na 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

Záver

V tomto článku sú vysvetlené podrobnosti o konverzii HTML na XPS pomocou REST API. Naučili sme sa kroky na konverziu HTML na XPS pomocou útržkov kódu Java, ako aj pomocou príkazov cURL. Okrem toho upozorňujeme, že produkt dokumentácia je skvelým zdrojom informácií o úžasných možnostiach, ktoré ponúka rozhranie API. Okrem toho, ak sa pri používaní rozhrania API stretnete s akýmikoľvek problémami, neváhajte kontaktovať Free product support forum.

Súvisiace články

Odporúčame tiež navštíviť nasledujúce blogy, kde nájdete ďalšie podrobnosti týkajúce sa: