HTML hanggang XPS

I-convert ang HTML sa XPS

Ang HyperText Markup Language (HTML) ay isang karaniwang markup language para sa paggawa ng web page. Pinapayagan nito ang paglikha at istruktura ng mga seksyon, talata, at link gamit ang mga elemento/tag ng HTML. At kung sakaling ang ilang mga custom na font ay ginamit sa isang HTML file o anumang dynamic na bagay ay isinangguni na nangangailangan ng aktibong koneksyon sa source machine/server, may mga pagkakataong makompromiso ang katapatan ng dokumento. Sa kabilang panig, sa XML Paper Specification(XPS), ang mga elemento ng page ay tinutukoy nang hiwalay sa isang partikular na operating system, printer, o application sa pagtingin. Kaya ang isang matalinong diskarte ay ang pag-convert ng HTML sa format na XPS.

HTML Conversion API

Ang Aspose.HTML Cloud SDK para sa Java ay isang magaan na REST na nakabatay sa arkitektura na API na nagbibigay ng mga kakayahang gumawa, magmanipula at mag-convert ng mga HTML file sa PDF, DOCX, TIFF, JPEG , atbp. Sinusuportahan din nito ang conversion ng HTML sa XPS. Kaya, una, kailangan naming idagdag ang mga sumusunod na detalye sa pom.xml ng Maven build type project para maisama ang SDK sa aming Java project.

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

Pagkatapos ng pag-install, ang susunod na hakbang ay isang libreng subscription sa aming mga serbisyo sa cloud sa pamamagitan ng Aspose.Cloud dashboard gamit ang GitHub o Google account. O kaya, lumikha ng bagong Account at kunin ang mga detalye ng iyong Mga Kredensyal ng Kliyente.

I-convert ang HTML sa XPS sa Java

Mangyaring sundin ang mga tagubiling tinukoy sa ibaba upang bumuo ng HTML sa XPS converter.

  • Una sa lahat, kailangan naming tukuyin ang mga detalye laban sa mga pamamaraan ng Configuration.setAPPSID at Configuration.setAPIKEY
  • Pangalawa, nagtakda kami ng mga detalye para sa setBasePath(..), setAuthPath(..) at tukuyin ang setUserAgent(…) bilang WebKit
  • Pangatlo, para sa aming sariling tulong, itatakda namin ang setDebug(..) bilang totoo
  • Gumawa ngayon ng object ng ConversionApi class
  • Tukuyin ang mga detalye ng margin at pangalan para sa impormasyon para sa resultang file
  • Panghuli, tawagan ang GetConvertDocumentToXps(…) na pamamaraan na nangangailangan ng pag-input ng pangalan ng HTML, mga dimensyon at mga detalye ng margin bilang mga argumento
// para sa higit pang mga halimbawa, pakibisita ang https://github.com/aspose-html-cloud/aspose-html-cloud-java

try
    {
    // Kumuha ng ClientID at ClientSecret mula sa https://dashboard.aspose.cloud/
    String clientId = "bbf94a2c-6d7e-4020-b4d2-b9809741374e";
    String clientSecret = "1c9379bb7d701c26cc87e741a29987bb";
  
    // mga detalye para sa Api invocation
    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);
        
    // Gumawa ng object ng Aspose.HTML Cloud API
    com.aspose.html.api.ConversionApi htmlApi = new ApiClient().createService(ConversionApi.class);
     	
    // Ang html na dokumento mula sa cloud storage
    String name = "list.html";
    // nagreresultang format ng imahe
    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
    	
    // I-invoke ang API para sa HTML sa XPS conversion
    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);
    }

Ibinabalik ng code sa itaas ang resulta sa stream ng tugon kaya, upang mai-save ang output sa isang lokal na drive, maaari naming isaalang-alang ang paggamit ng sumusunod na custom na paraan.

/*
* Paraan ng pagkuha ng ResponseBody at resultang pangalan ng file bilang mga argumento
*/
public static void checkAndSave(retrofit2.Call<okhttp3.ResponseBody> call, String fileName) throws IOException 
	{
	    // Sabay-sabay na ipadala ang kahilingan at ibalik ang tugon nito.
	    retrofit2.Response<okhttp3.ResponseBody> res = call.execute();
	    
	    // Ang deserialized response body ng isang matagumpay na tugon
	    okhttp3.ResponseBody answer = res.body();
	    
	    //I-save sa direktoryo ng pagsubok
	    boolean result = saveToDisc(answer, fileName);
	    
	    // patunayan ang halaga ng resulta ay totoo (opsyonal na hakbang)
	    Assert.assertTrue(result);
	}
	
  /*
  *
  * Tawagan ang paraang ito upang i-save ang nilalaman ng Tugon bilang file sa lokal na drive
  *
  */ 
	public static boolean saveToDisc(okhttp3.ResponseBody body, String fileName) 
	{
            // lumikha ng file object na nagpapahiwatig ng lokasyon para sa resultang file
	    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;

                // i-save ang stream ng file sa lokal na drive
		outputStream.write(fileReader, 0, read);
		fileSizeDownloaded += read;
            }
	    // i-clear ang halimbawa ng output stream
	    outputStream.flush();
	    
	    // ibalik ang true bilang matagumpay na pag-save ng file
	    return true;
	    } catch (Exception e) {
		e.printStackTrace();
		return false;
	    }
	} // saveToDisc ends here
HTML hanggang XPS

Image1:- HTML hanggang XPS preview

Ang mga sample na file na ginamit sa halimbawa sa itaas ay maaaring ma-download mula sa list.html at resultantFile.xps.

HTML hanggang XPS gamit ang cURL Commands

Maa-access din ang REST API sa pamamagitan ng mga cURL command kaya sa seksyong ito, matututuhan natin ang mga hakbang kung paano gawin ang HTML sa XPS conversion gamit ang cURL command. Ngayon bilang isang paunang kinakailangan, kailangan muna naming bumuo ng JSON Web Token (JWT) batay sa iyong mga indibidwal na kredensyal ng kliyente. Paki-execute ang sumusunod na command para makabuo ng JWT token.

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"

Ngayon na mayroon na kaming JWT token, mangyaring isagawa ang sumusunod na command sa terminal upang maisagawa ang HTML sa XPS conversion.

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

Konklusyon

Ipinaliwanag ng artikulong ito ang mga detalye para sa pag-convert ng HTML sa XPS gamit ang REST API. Natutunan namin ang mga hakbang sa pag-convert ng HTML sa XPS gamit ang mga snippet ng Java code pati na rin sa pamamagitan ng mga cURL command. Higit pa rito, pakitandaan na ang Product Documentation ay isang mahusay na mapagkukunan para sa pag-aaral ng mga kamangha-manghang kakayahan na inaalok ng API. Higit pa rito, kung makatagpo ka ng anumang mga isyu habang ginagamit ang API, mangyaring huwag mag-atubiling makipag-ugnayan sa Free product support forum.

Mga Kaugnay na Artikulo

Inirerekomenda din namin ang pagbisita sa mga sumusunod na blog para sa karagdagang detalye tungkol sa: