HyperText Markup Language (HTML) je standardní značkovací jazyk pro tvorbu webových stránek. Umožňuje vytváření a strukturu sekcí, odstavců a odkazů pomocí HTML elementů/tagů. A v případě, že jsou v souboru HTML použita některá vlastní písma nebo je odkazováno na jakýkoli dynamický objekt, který vyžaduje aktivní připojení ke zdrojovému počítači/serveru, existuje možnost ohrožení věrnosti dokumentu. Na druhé straně ve specifikaci XML Paper Specification (XPS) jsou prvky stránky definovány nezávisle na konkrétním operačním systému, tiskárně nebo aplikaci pro prohlížení. Inteligentním přístupem je tedy převod HTML do formátu XPS.
HTML Conversion API
Aspose.HTML Cloud SDK for Java je lehké API založené na REST architektuře, které poskytuje možnosti pro vytváření, manipulaci a konverzi HTML souborů do PDF, DOCX, TIFF, JPEG atd. Podporuje také převod HTML do XPS. Nejprve tedy musíme přidat následující podrobnosti do pom.xml projektu typu sestavení Maven, abychom zahrnuli SDK do našeho projektu 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 instalaci je dalším krokem bezplatné předplatné našich cloudových služeb prostřednictvím Aspose.Cloud dashboard pomocí GitHubu nebo účtu Google. Nebo jednoduše vytvořte nový účet a získejte podrobnosti o přihlašovacích údajích klienta.
Převést HTML na XPS v Javě
Při vývoji převodníku HTML na XPS postupujte podle pokynů uvedených níže.
- Nejprve musíme specifikovat podrobnosti proti metodám Configuration.setAPPSID a Configuration.setAPIKEY
- Za druhé, nastavíme podrobnosti pro setBasePath(..), setAuthPath(..) a specifikujeme setUserAgent(…) jako WebKit
- Za třetí, pro naši vlastní pomoc nastavíme setDebug(..) jako true
- Nyní vytvořte objekt třídy ConversionApi
- Zadejte podrobnosti okraje a název pro informace o výsledném souboru
- Nakonec zavolejte metodu GetConvertDocumentToXps(…), která vyžaduje vstupní HTML název, rozměry a detaily okrajů jako argumenty
// pro více příkladů prosím navštivte https://github.com/aspose-html-cloud/aspose-html-cloud-java
try
{
// Získejte ClientID a ClientSecret z https://dashboard.aspose.cloud/
String clientId = "bbf94a2c-6d7e-4020-b4d2-b9809741374e";
String clientSecret = "1c9379bb7d701c26cc87e741a29987bb";
// podrobnosti pro vyvolání 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);
// Vytvořte objekt Aspose.HTML Cloud API
com.aspose.html.api.ConversionApi htmlApi = new ApiClient().createService(ConversionApi.class);
// html dokument z cloudového úložiště
String name = "list.html";
// výsledný obrazový formát
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
// Vyvolejte rozhraní API pro konverzi 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);
}
Výše uvedený kód vrací výsledek v proudu odpovědí, takže za účelem uložení výstupu na místní jednotku můžeme zvážit použití následující vlastní metody.
/*
* Metoda přebírající ResponseBody a výsledný název souboru jako argumenty
*/
public static void checkAndSave(retrofit2.Call<okhttp3.ResponseBody> call, String fileName) throws IOException
{
// Synchronně odeslat požadavek a vrátit jeho odpověď.
retrofit2.Response<okhttp3.ResponseBody> res = call.execute();
// Deserializované tělo odpovědi úspěšné odpovědi
okhttp3.ResponseBody answer = res.body();
//Uložit do testovacího adresáře
boolean result = saveToDisc(answer, fileName);
// ověřte, že hodnota výsledku je pravdivá (nepovinný krok)
Assert.assertTrue(result);
}
/*
*
* Voláním této metody uložíte obsah Response jako soubor na místní disk
*
*/
public static boolean saveToDisc(okhttp3.ResponseBody body, String fileName)
{
// vytvořit souborový objekt označující umístění výsledného souboru
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;
// uložit datový proud souboru na místní disk
outputStream.write(fileReader, 0, read);
fileSizeDownloaded += read;
}
// vymazat instanci výstupního proudu
outputStream.flush();
// vrátit hodnotu true jako soubor úspěšně uložit
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
} // saveToDisc ends here
Vzorové soubory použité ve výše uvedeném příkladu lze stáhnout z list.html a resultantFile.xps.
HTML na XPS pomocí příkazů cURL
K rozhraním REST API lze také přistupovat pomocí příkazů cURL, takže v této části se naučíme kroky, jak provést konverzi HTML na XPS pomocí příkazu cURL. Nyní jako nezbytný předpoklad musíme nejprve vygenerovat webový token JSON (JWT) na základě vašich individuálních přihlašovacích údajů klienta. Pro vygenerování tokenu JWT proveďte následující příkaz.
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"
Nyní, když máme token JWT, spusťte na terminálu následující příkaz a proveďte konverzi 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
Závěr
Tento článek vysvětluje podrobnosti pro převod HTML na XPS pomocí REST API. Naučili jsme se kroky pro převod HTML na XPS pomocí úryvků kódu Java a také pomocí příkazů cURL. Dále mějte na paměti, že produkt Dokumentace je skvělým zdrojem informací o úžasných možnostech, které API nabízí. Kromě toho, pokud při používání API narazíte na nějaké problémy, neváhejte kontaktovat Free product support forum.
Související články
Doporučujeme také navštívit následující blogy, kde najdete další podrobnosti týkající se: