HTML เป็น XPS

แปลง HTML เป็น XPS

HyperText Markup Language (HTML) เป็นภาษามาร์กอัปมาตรฐานสำหรับการสร้างหน้าเว็บ ช่วยให้สามารถสร้างและจัดโครงสร้างของส่วน ย่อหน้า และลิงก์โดยใช้องค์ประกอบ/แท็ก HTML และในกรณีที่ใช้ฟอนต์แบบกำหนดเองในไฟล์ HTML หรือมีการอ้างอิงออบเจกต์ไดนามิกใดๆ ซึ่งต้องมีการเชื่อมต่อกับเครื่องต้นทาง/เซิร์ฟเวอร์ มีโอกาสที่ความเที่ยงตรงของเอกสารจะประนีประนอม ในอีกด้านหนึ่ง ใน XML Paper Specification(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>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>

หลังจากติดตั้งแล้ว ขั้นตอนต่อไปคือการสมัครสมาชิกบริการคลาวด์ของเราฟรีผ่าน แดชบอร์ด Aspose.Cloud โดยใช้บัญชี GitHub หรือ Google หรือเพียงแค่ สร้างบัญชีใหม่ และรับรายละเอียดข้อมูลรับรองลูกค้าของคุณ

แปลง HTML เป็น XPS ใน Java

โปรดทำตามคำแนะนำที่ระบุด้านล่างเพื่อพัฒนาตัวแปลง HTML เป็น XPS

  • ก่อนอื่น เราต้องระบุรายละเอียดกับเมธอด Configuration.setAPPSID และ Configuration.setAPIKEY
  • ประการที่สอง เรากำหนดรายละเอียดสำหรับ setBasePath(..), setAuthPath(..) และระบุ setUserAgent(…) เป็น WebKit
  • ประการที่สาม เพื่อความช่วยเหลือของเราเอง เราจะตั้งค่า setDebug(..) เป็นจริง
  • ตอนนี้สร้างวัตถุของคลาส 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 Web Token (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 code snippets และผ่านคำสั่ง cURL นอกจากนี้ โปรดทราบว่าผลิตภัณฑ์ Documentation เป็นแหล่งเรียนรู้ความสามารถที่น่าทึ่งที่ API นำเสนอ นอกจากนี้ หากคุณพบปัญหาใดๆ ขณะใช้งาน API โปรดติดต่อ ฟอรัมสนับสนุนผลิตภัณฑ์ฟรี

บทความที่เกี่ยวข้อง

เราขอแนะนำให้ไปที่บล็อกต่อไปนี้เพื่อดูรายละเอียดเพิ่มเติมเกี่ยวกับ: