HTML sang XPS

Chuyển đổi HTML sang XPS

Ngôn ngữ đánh dấu siêu văn bản (HTML) là ngôn ngữ đánh dấu tiêu chuẩn để tạo trang web. Nó cho phép tạo và cấu trúc các phần, đoạn văn và liên kết bằng cách sử dụng các phần tử/thẻ HTML. Và trong trường hợp một số phông chữ tùy chỉnh được sử dụng trong tệp HTML hoặc bất kỳ đối tượng động nào được tham chiếu yêu cầu kết nối hoạt động với máy/máy chủ nguồn, thì có khả năng ảnh hưởng đến độ trung thực của tài liệu. Mặt khác, trong Đặc tả giấy XML(XPS), các thành phần trang được xác định độc lập với một hệ điều hành, máy in hoặc ứng dụng xem cụ thể. Vì vậy, một cách tiếp cận thông minh là chuyển đổi định dạng HTML sang XPS.

API chuyển đổi HTML

Aspose.HTML Cloud SDK dành cho Java là API nhẹ dựa trên kiến trúc REST cung cấp khả năng tạo, thao tác và chuyển đổi các tệp HTML thành PDF, DOCX, TIFF, JPEG , v.v. Nó cũng hỗ trợ chuyển đổi HTML sang XPS. Vì vậy, trước tiên, chúng ta cần thêm các chi tiết sau vào pom.xml của dự án kiểu xây dựng Maven để đưa SDK vào dự án Java của chúng ta.

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

Sau khi cài đặt, bước tiếp theo là đăng ký miễn phí các dịch vụ đám mây của chúng tôi thông qua Bảng điều khiển Aspose.Cloud bằng tài khoản GitHub hoặc Google. Hoặc, chỉ cần tạo Tài khoản mới và nhận thông tin chi tiết Thông tin xác thực khách hàng của bạn.

Chuyển đổi HTML sang XPS trong Java

Vui lòng làm theo các hướng dẫn được chỉ định bên dưới để phát triển trình chuyển đổi HTML sang XPS.

  • Trước hết, chúng ta cần chỉ định chi tiết đối với các phương thức Configuration.setAPPSID và Configuration.setAPIKEY
  • Thứ hai, chúng tôi đặt chi tiết cho setBasePath(..), setAuthPath(..) và chỉ định setUserAgent(…) làm WebKit
  • Thứ ba, để được hỗ trợ, chúng tôi sẽ đặt setDebug(..) là true
  • Bây giờ hãy tạo một đối tượng của lớp ConversionApi
  • Chỉ định chi tiết lề và tên cho thông tin cho tệp kết quả
  • Cuối cùng, gọi phương thức GetConvertDocumentToXps(…) yêu cầu nhập tên HTML, kích thước và chi tiết lề làm đối số
// để biết thêm ví dụ, vui lòng truy cập https://github.com/aspose-html-cloud/aspose-html-cloud-java

try
    {
    // Nhận ClientID và ClientSecret từ https://dashboard.aspose.cloud/
    String clientId = "bbf94a2c-6d7e-4020-b4d2-b9809741374e";
    String clientSecret = "1c9379bb7d701c26cc87e741a29987bb";
  
    // chi tiết cho lời gọi 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);
        
    // Tạo một đối tượng của Aspose.HTML Cloud API
    com.aspose.html.api.ConversionApi htmlApi = new ApiClient().createService(ConversionApi.class);
     	
    // Tài liệu html từ lưu trữ đám mây
    String name = "list.html";
    // định dạng hình ảnh kết quả
    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
    	
    // Gọi API để chuyển đổi HTML sang 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);
    }

Đoạn mã trên trả về kết quả trong luồng phản hồi, vì vậy, để lưu đầu ra trên ổ đĩa cục bộ, chúng tôi có thể cân nhắc sử dụng phương thức tùy chỉnh sau.

/*
* Phương thức lấy ResponseBody và tên tệp kết quả làm đối số
*/
public static void checkAndSave(retrofit2.Call<okhttp3.ResponseBody> call, String fileName) throws IOException 
	{
	    // Đồng bộ gửi yêu cầu và trả lại phản hồi của nó.
	    retrofit2.Response<okhttp3.ResponseBody> res = call.execute();
	    
	    // Nội dung phản hồi được khử lưu huỳnh của một phản hồi thành công
	    okhttp3.ResponseBody answer = res.body();
	    
	    //Lưu vào thư mục kiểm tra
	    boolean result = saveToDisc(answer, fileName);
	    
	    // xác thực giá trị kết quả là đúng (bước tùy chọn)
	    Assert.assertTrue(result);
	}
	
  /*
  *
  * Gọi phương thức này để lưu nội dung Phản hồi dưới dạng tệp trên ổ đĩa cục bộ
  *
  */ 
	public static boolean saveToDisc(okhttp3.ResponseBody body, String fileName) 
	{
            // tạo đối tượng tệp chỉ vị trí cho tệp kết quả
	    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;

                // lưu luồng tệp vào ổ đĩa cục bộ
		outputStream.write(fileReader, 0, read);
		fileSizeDownloaded += read;
            }
	    // xóa phiên bản luồng đầu ra
	    outputStream.flush();
	    
	    // trả về true khi lưu tệp thành công
	    return true;
	    } catch (Exception e) {
		e.printStackTrace();
		return false;
	    }
	} // saveToDisc ends here
HTML sang XPS

Hình ảnh1: - Xem trước HTML sang XPS

Có thể tải xuống các tệp mẫu được sử dụng trong ví dụ trên từ list.htmlresultantFile.xps.

HTML sang XPS bằng các lệnh cURL

Các API REST cũng có thể được truy cập thông qua các lệnh cURL, vì vậy trong phần này, chúng ta sẽ tìm hiểu các bước về cách thực hiện chuyển đổi HTML sang XPS bằng lệnh cURL. Bây giờ là điều kiện tiên quyết, trước tiên chúng tôi cần tạo Mã thông báo web JSON (JWT) dựa trên thông tin đăng nhập khách hàng cá nhân của bạn. Vui lòng thực hiện lệnh sau để tạo mã thông báo 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"

Bây giờ chúng ta đã có mã thông báo JWT, vui lòng thực hiện lệnh sau trên thiết bị đầu cuối để thực hiện chuyển đổi HTML sang 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

Phần kết luận

Bài viết này đã giải thích chi tiết để chuyển đổi HTML sang XPS bằng API REST. Chúng ta đã học các bước để chuyển đổi HTML sang XPS bằng cách sử dụng các đoạn mã Java cũng như thông qua các lệnh cURL. Ngoài ra, xin lưu ý rằng Tài liệu của Sản phẩm là một nguồn tuyệt vời để tìm hiểu các khả năng tuyệt vời do API cung cấp. Ngoài ra, nếu bạn gặp phải bất kỳ sự cố nào khi sử dụng API, vui lòng liên hệ với Diễn đàn hỗ trợ sản phẩm miễn phí.

Những bài viết liên quan

Chúng tôi cũng khuyên bạn nên truy cập các blog sau để biết thêm chi tiết về: