HTML na XPS

Převést HTML na XPS

HyperText Markup Language (HTML) je standardní značkovací jazyk pro tvorbu webových stránek. Umožňuje vytváření a strukturu sekcí, odstavců a odkazů pomocí HTML elementů/tagů. A v případě, že jsou v souboru HTML použita některá vlastní písma nebo je odkazováno na jakýkoli dynamický objekt, který vyžaduje aktivní připojení ke zdrojovému počítači/serveru, existuje možnost ohrožení věrnosti dokumentu. Na druhé straně ve specifikaci XML Paper Specification (XPS) jsou prvky stránky definovány nezávisle na konkrétním operačním systému, tiskárně nebo aplikaci pro prohlížení. Inteligentním přístupem je tedy převod HTML do formátu XPS.

HTML Conversion API

Aspose.HTML Cloud SDK for Java je lehké API založené na REST architektuře, které poskytuje možnosti pro vytváření, manipulaci a konverzi HTML souborů do PDF, DOCX, TIFF, JPEG atd. Podporuje také převod HTML do XPS. Nejprve tedy musíme přidat následující podrobnosti do pom.xml projektu typu sestavení Maven, abychom zahrnuli SDK do našeho projektu Java.

<repositories> 
    <repository>
        <id>aspose-cloud</id>
        <name>artifact.aspose-cloud-releases</name>
        <url>https://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 instalaci je dalším krokem bezplatné předplatné našich cloudových služeb prostřednictvím Aspose.Cloud dashboard pomocí GitHubu nebo účtu Google. Nebo jednoduše vytvořte nový účet a získejte podrobnosti o přihlašovacích údajích klienta.

Převést HTML na XPS v Javě

Při vývoji převodníku HTML na XPS postupujte podle pokynů uvedených níže.

  • Nejprve musíme specifikovat podrobnosti proti metodám Configuration.setAPPSID a Configuration.setAPIKEY
  • Za druhé, nastavíme podrobnosti pro setBasePath(..), setAuthPath(..) a specifikujeme setUserAgent(…) jako WebKit
  • Za třetí, pro naši vlastní pomoc nastavíme setDebug(..) jako true
  • Nyní vytvořte objekt třídy ConversionApi
  • Zadejte podrobnosti okraje a název pro informace o výsledném souboru
  • Nakonec zavolejte metodu GetConvertDocumentToXps(…), která vyžaduje vstupní HTML název, rozměry a detaily okrajů jako argumenty
// pro více příkladů prosím navštivte https://github.com/aspose-html-cloud/aspose-html-cloud-java

try
    {
    // Získejte ClientID a ClientSecret z https://dashboard.aspose.cloud/
    String clientId = "bbf94a2c-6d7e-4020-b4d2-b9809741374e";
    String clientSecret = "1c9379bb7d701c26cc87e741a29987bb";
  
    // podrobnosti pro vyvolání 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);
        
    // Vytvořte objekt Aspose.HTML Cloud API
    com.aspose.html.api.ConversionApi htmlApi = new ApiClient().createService(ConversionApi.class);
     	
    // html dokument z cloudového úložiště
    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
    	
    // Vyvolejte rozhraní API pro konverzi 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);
    }

Výše uvedený kód vrací výsledek v proudu odpovědí, takže za účelem uložení výstupu na místní jednotku můžeme zvážit použití následující vlastní metody.

/*
* Metoda přebírající ResponseBody a výsledný název souboru jako argumenty
*/
public static void checkAndSave(retrofit2.Call<okhttp3.ResponseBody> call, String fileName) throws IOException 
	{
	    // Synchronně odeslat požadavek a vrátit jeho odpověď.
	    retrofit2.Response<okhttp3.ResponseBody> res = call.execute();
	    
	    // Deserializované tělo odpovědi úspěšné odpovědi
	    okhttp3.ResponseBody answer = res.body();
	    
	    //Uložit do testovacího adresáře
	    boolean result = saveToDisc(answer, fileName);
	    
	    // ověřte, že hodnota výsledku je pravdivá (nepovinný krok)
	    Assert.assertTrue(result);
	}
	
  /*
  *
  * Voláním této metody uložíte obsah Response jako soubor na místní disk
  *
  */ 
	public static boolean saveToDisc(okhttp3.ResponseBody body, String fileName) 
	{
            // vytvořit souborový objekt označující umístění výsledného souboru
	    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žit datový proud souboru na místní disk
		outputStream.write(fileReader, 0, read);
		fileSizeDownloaded += read;
            }
	    // vymazat instanci výstupního proudu
	    outputStream.flush();
	    
	    // vrátit hodnotu true jako soubor úspěšně uložit
	    return true;
	    } catch (Exception e) {
		e.printStackTrace();
		return false;
	    }
	} // saveToDisc ends here
HTML na XPS

Obrázek1:- Náhled HTML na XPS

Vzorové soubory použité ve výše uvedeném příkladu lze stáhnout z list.html a resultantFile.xps.

HTML na XPS pomocí příkazů cURL

K rozhraním REST API lze také přistupovat pomocí příkazů cURL, takže v této části se naučíme kroky, jak provést konverzi HTML na XPS pomocí příkazu cURL. Nyní jako nezbytný předpoklad musíme nejprve vygenerovat webový token JSON (JWT) na základě vašich individuálních přihlašovacích údajů klienta. Pro vygenerování tokenu JWT proveďte následující pří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"

Nyní, když máme token JWT, spusťte na terminálu následující příkaz a proveďte konverzi 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ávěr

Tento článek vysvětluje podrobnosti pro převod HTML na XPS pomocí REST API. Naučili jsme se kroky pro převod HTML na XPS pomocí úryvků kódu Java a také pomocí příkazů cURL. Dále mějte na paměti, že produkt Dokumentace je skvělým zdrojem informací o úžasných možnostech, které API nabízí. Kromě toho, pokud při používání API narazíte na nějaké problémy, neváhejte kontaktovat Free product support forum.

Související články

Doporučujeme také navštívit následující blogy, kde najdete další podrobnosti týkající se: