HTML у XPS

Пераўтварэнне HTML у XPS

HyperText Markup Language (HTML) - стандартная мова разметкі для стварэння вэб-старонак. Гэта дазваляе ствараць і структураваць раздзелы, абзацы і спасылкі з дапамогай элементаў/тэгаў HTML. І ў выпадку, калі некаторыя карыстальніцкія шрыфты выкарыстоўваюцца ў файле HTML або ёсць спасылка на любы дынамічны аб’ект, які патрабуе актыўнага злучэння з зыходнай машынай/серверам, існуе верагоднасць пагаршэння дакладнасці дакумента. З іншага боку, у спецыфікацыі паперы XML (XPS) элементы старонкі вызначаюцца незалежна ад пэўнай аперацыйнай сістэмы, прынтара або праграмы прагляду. Такім чынам, разумны падыход заключаецца ў пераўтварэнні HTML у фармат XPS.

API пераўтварэння HTML

Aspose.HTML Cloud SDK для Java - гэта лёгкі API на аснове архітэктуры REST, які дае магчымасці ствараць, маніпуляваць і пераўтвараць файлы HTML у PDF, DOCX, TIFF, JPEG і г. д. Ён таксама падтрымлівае пераўтварэнне HTML у XPS. Такім чынам, спачатку нам трэба дадаць наступныя дэталі ў pom.xml праекта тыпу зборкі Maven, каб уключыць SDK у наш праект 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>

Пасля ўстаноўкі наступным крокам з’яўляецца бясплатная падпіска на нашы воблачныя сэрвісы праз прыборную панэль Aspose.Cloud з дапамогай уліковага запісу GitHub або Google. Або проста стварыце новы ўліковы запіс і атрымайце ўліковыя дадзеныя кліента.

Пераўтварыце HTML у XPS у Java

Каб распрацаваць канвэртар HTML у XPS, выконвайце прыведзеныя ніжэй інструкцыі.

  • Перш за ўсё, нам трэба ўказаць дэталі метадаў Configuration.setAPPSID і Configuration.setAPIKEY
  • Па-другое, мы задаем дэталі для setBasePath(..), setAuthPath(..) і вызначаем setUserAgent(…) як WebKit
  • Па-трэцяе, для нашай жа дапамогі мы збіраемся ўсталяваць setDebug(..) як true
  • Цяпер стварыце аб’ект класа ConversionApi
  • Укажыце падрабязныя звесткі аб палях і імя для інфармацыі для выніковага файла
  • Нарэшце, выклічце метад GetConvertDocumentToXps(…), які патрабуе ў якасці аргументаў назву HTML, памеры і дэталі палёў
// для атрымання дадатковых прыкладаў, калі ласка, наведайце https://github.com/aspose-html-cloud/aspose-html-cloud-java

try
    {
    // Атрымайце ClientID і ClientSecret з https://dashboard.aspose.cloud/
    String clientId = "bbf94a2c-6d7e-4020-b4d2-b9809741374e";
    String clientSecret = "1c9379bb7d701c26cc87e741a29987bb";
  
    // дэталі для выкліку 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);
        
    // Стварыце аб'ект Aspose.HTML Cloud API
    com.aspose.html.api.ConversionApi htmlApi = new ApiClient().createService(ConversionApi.class);
     	
    // Html дакумент з воблачнага сховішча
    String name = "list.html";
    // выніковы фармат выявы
    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
    	
    // Выклікайце API для пераўтварэння HTML у 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);
    }

Прыведзены вышэй код вяртае вынік у патоку адказу, таму, каб захаваць вывад на лакальным дыску, мы можам разгледзець магчымасць выкарыстання наступнага карыстальніцкага метаду.

/*
* Метад прымае ResponseBody і выніковае імя файла ў якасці аргументаў
*/
public static void checkAndSave(retrofit2.Call<okhttp3.ResponseBody> call, String fileName) throws IOException 
	{
	    // Сінхронна адпраўляць запыт і вяртаць адказ.
	    retrofit2.Response<okhttp3.ResponseBody> res = call.execute();
	    
	    // Дэсерыялізаванае цела паспяховага адказу
	    okhttp3.ResponseBody answer = res.body();
	    
	    //Захаваць у каталог тэсціравання
	    boolean result = saveToDisc(answer, fileName);
	    
	    // пацвердзіць, што выніковае значэнне дакладна (неабавязковы крок)
	    Assert.assertTrue(result);
	}
	
  /*
  *
  * Выклічце гэты метад, каб захаваць змесціва адказу ў выглядзе файла на лакальным дыску
  *
  */ 
	public static boolean saveToDisc(okhttp3.ResponseBody body, String fileName) 
	{
            // стварыць аб'ект файла з указаннем месцазнаходжання для выніковага файла
	    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;

                // захаваць паток файлаў на лакальны дыск
		outputStream.write(fileReader, 0, read);
		fileSizeDownloaded += read;
            }
	    // ачысціць асобнік выхаднога патоку
	    outputStream.flush();
	    
	    // вярнуць ісціну як файл паспяхова захаваны
	    return true;
	    } catch (Exception e) {
		e.printStackTrace();
		return false;
	    }
	} // saveToDisc ends here
HTML у XPS

Image1: - Папярэдні прагляд HTML у XPS

Узоры файлаў, якія выкарыстоўваюцца ў прыведзеным вышэй прыкладзе, можна спампаваць з list.html і resultantFile.xps.

HTML у XPS з дапамогай каманд cURL

Да REST API таксама можна атрымаць доступ з дапамогай каманд cURL, таму ў гэтым раздзеле мы даведаемся, як выканаць пераўтварэнне HTML у XPS з дапамогай каманды cURL. Зараз у якасці папярэдняй умовы нам трэба спачатку згенераваць вэб-токен JSON (JWT) на аснове ўліковых дадзеных вашага індывідуальнага кліента. Каб згенераваць токен JWT, выканайце наступную каманду.

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"

Цяпер, калі ў нас ёсць маркер JWT, выканайце наступную каманду на тэрмінале, каб выканаць пераўтварэнне HTML у 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

Заключэнне

У гэтым артыкуле тлумачацца дэталі пераўтварэння HTML у XPS з дапамогай REST API. Мы даведаліся, як пераўтварыць HTML у XPS з дапамогай фрагментаў кода Java, а таксама з дапамогай каманд cURL. Акрамя таго, звярніце ўвагу, што Дакументацыя прадукту з’яўляецца выдатнай крыніцай для вывучэння дзіўных магчымасцей, якія прапануе API. Акрамя таго, калі вы сутыкнецеся з якімі-небудзь праблемамі пры выкарыстанні API, калі ласка, не саромейцеся звяртацца на Бясплатны форум падтрымкі прадуктаў.

Звязаныя артыкулы

Мы таксама рэкамендуем наведаць наступныя блогі для атрымання дадатковай інфармацыі адносна: