HTML σε XPS

Μετατροπή HTML σε XPS

Η γλώσσα σήμανσης HyperText (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>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>

Μετά την εγκατάσταση, το επόμενο βήμα είναι μια δωρεάν συνδρομή στις υπηρεσίες cloud μας μέσω του Aspose.Cloud dashboard χρησιμοποιώντας 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 από την αποθήκευση cloud
    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();
	    
	    // επιστρέψτε true ως αρχείο αποθήκευσης με επιτυχία
	    return true;
	    } catch (Exception e) {
		e.printStackTrace();
		return false;
	    }
	} // saveToDisc ends here
HTML σε XPS

Εικόνα 1: - Προεπισκόπηση 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 καθώς και μέσω εντολών cURL. Επιπλέον, σημειώστε ότι το Προϊόν Τεκμηρίωση είναι μια εξαιρετική πηγή για την εκμάθηση των εκπληκτικών δυνατοτήτων που προσφέρει το API. Επιπλέον, εάν αντιμετωπίσετε προβλήματα κατά τη χρήση του API, μη διστάσετε να επικοινωνήσετε με το Δωρεάν φόρουμ υποστήριξης προϊόντων.

Σχετικά Άρθρα

Συνιστούμε επίσης να επισκεφθείτε τα ακόλουθα ιστολόγια για περισσότερες λεπτομέρειες σχετικά με: