HTML na XPS

Konwertuj HTML na XPS

HyperText Markup Language (HTML) to standardowy język znaczników do tworzenia stron internetowych. Pozwala na tworzenie i strukturę sekcji, akapitów i linków za pomocą elementów/tagów HTML. A w przypadku użycia niektórych niestandardowych czcionek w pliku HTML lub odniesienia do dowolnego obiektu dynamicznego, który wymaga aktywnego połączenia z maszyną/serwerem źródłowym, istnieje ryzyko naruszenia wierności dokumentu. Z drugiej strony, w XML Paper Specification (XPS) elementy strony są definiowane niezależnie od konkretnego systemu operacyjnego, drukarki czy aplikacji do przeglądania. Inteligentnym podejściem jest więc konwersja HTML do formatu XPS.

Interfejs API konwersji HTML

Aspose.HTML Cloud SDK for Java to lekki interfejs API oparty na architekturze REST, zapewniający możliwości tworzenia, manipulowania i konwertowania plików HTML do formatu PDF, DOCX, TIFF, JPEG itd. Obsługuje również konwersję HTML na XPS. Najpierw musimy dodać następujące szczegóły w pom.xml projektu typu kompilacji Maven, aby uwzględnić SDK w naszym projekcie 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>

Po instalacji kolejnym krokiem jest bezpłatna subskrypcja naszych usług chmurowych poprzez Dashboard Aspose.Cloud przy użyciu konta GitHub lub Google. Lub po prostu utwórz nowe konto i uzyskaj dane uwierzytelniające klienta.

Konwertuj HTML na XPS w Javie

Postępuj zgodnie z instrukcjami podanymi poniżej, aby opracować konwerter HTML na XPS.

  • Przede wszystkim musimy określić szczegóły dotyczące metod Configuration.setAPPSID i Configuration.setAPIKEY
  • Po drugie ustawiamy szczegóły dla setBasePath(..), setAuthPath(..) i określamy setUserAgent(…) jako WebKit
  • Po trzecie, dla własnej pomocy, ustawimy setDebug(..) jako true
  • Teraz utwórz obiekt klasy ConversionApi
  • Określ szczegóły marginesu i nazwę dla informacji o pliku wynikowym
  • Na koniec wywołaj metodę GetConvertDocumentToXps(…), która jako argumenty wymaga podania nazwy HTML, wymiarów i szczegółów marginesu
// więcej przykładów można znaleźć na stronie https://github.com/aspose-html-cloud/aspose-html-cloud-java

try
    {
    // Uzyskaj ClientID i ClientSecret z https://dashboard.aspose.cloud/
    String clientId = "bbf94a2c-6d7e-4020-b4d2-b9809741374e";
    String clientSecret = "1c9379bb7d701c26cc87e741a29987bb";
  
    // szczegóły wywołania 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);
        
    // Utwórz obiekt Aspose.HTML Cloud API
    com.aspose.html.api.ConversionApi htmlApi = new ApiClient().createService(ConversionApi.class);
     	
    // Dokument HTML z magazynu w chmurze
    String name = "list.html";
    // Wynikowy format obrazu
    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
    	
    // Wywołaj interfejs API do konwersji HTML na 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);
    }

Powyższy kod zwraca wynik w strumieniu odpowiedzi, więc w celu zapisania danych wyjściowych na dysku lokalnym możemy rozważyć użycie następującej niestandardowej metody.

/*
* Metoda przyjmująca ResponseBody i wynikową nazwę pliku jako argumenty
*/
public static void checkAndSave(retrofit2.Call<okhttp3.ResponseBody> call, String fileName) throws IOException 
	{
	    // Synchronicznie wyślij żądanie i zwróć odpowiedź.
	    retrofit2.Response<okhttp3.ResponseBody> res = call.execute();
	    
	    // Deserializowana treść odpowiedzi pomyślnej odpowiedzi
	    okhttp3.ResponseBody answer = res.body();
	    
	    //Zapisz w katalogu testowym
	    boolean result = saveToDisc(answer, fileName);
	    
	    // sprawdź, czy wartość wyniku jest prawdziwa (krok opcjonalny)
	    Assert.assertTrue(result);
	}
	
  /*
  *
  * Wywołaj tę metodę, aby zapisać treść odpowiedzi jako plik na dysku lokalnym
  *
  */ 
	public static boolean saveToDisc(okhttp3.ResponseBody body, String fileName) 
	{
            // utwórz obiekt pliku wskazujący lokalizację pliku wynikowego
	    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;

                // zapisz strumień plików na dysku lokalnym
		outputStream.write(fileReader, 0, read);
		fileSizeDownloaded += read;
            }
	    // wyczyść instancję strumienia wyjściowego
	    outputStream.flush();
	    
	    // zwróć true, ponieważ pomyślnie zapisano plik
	    return true;
	    } catch (Exception e) {
		e.printStackTrace();
		return false;
	    }
	} // saveToDisc ends here
HTML na XPS

Obraz 1: — Podgląd HTML do XPS

Przykładowe pliki użyte w powyższym przykładzie można pobrać z list.html i resultantFile.xps.

HTML do XPS za pomocą poleceń cURL

Dostęp do interfejsów API REST można również uzyskać za pomocą poleceń cURL, więc w tej sekcji nauczymy się, jak przeprowadzić konwersję HTML do XPS za pomocą polecenia cURL. Teraz, jako warunek wstępny, musimy najpierw wygenerować token sieciowy JSON (JWT) na podstawie indywidualnych poświadczeń klienta. Wykonaj następujące polecenie, aby wygenerować token 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"

Teraz, gdy mamy token JWT, wykonaj następujące polecenie na terminalu, aby przeprowadzić konwersję HTML na 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

Wniosek

W tym artykule wyjaśniono szczegóły konwersji HTML na XPS przy użyciu interfejsu API REST. Nauczyliśmy się, jak przekonwertować HTML na XPS za pomocą fragmentów kodu Java oraz poleceń cURL. Ponadto należy pamiętać, że produkt Dokumentacja jest doskonałym źródłem informacji o niesamowitych możliwościach oferowanych przez interfejs API. Ponadto, jeśli napotkasz jakiekolwiek problemy podczas korzystania z interfejsu API, skontaktuj się z Bezpłatne forum wsparcia produktu.

Powiązane artykuły

Zalecamy również odwiedzenie następujących blogów w celu uzyskania dalszych informacji dotyczących: