A HTML a webfejlesztés vezető fájlformátuma, és a modern webböngészők többsége támogatja a HTML specifikációit. Bár platformfüggetlen, és bármilyen operációs rendszeren megtekinthető, hajlamosak a rosszindulatú szkriptekre, és nem oszthatók meg könnyen az interneten keresztül. Ezért az ilyen körülmények elkerülése és a hosszú távú archiválás érdekében egy weboldalt PDF(Portable Document Format) formátumban mentünk el. Tehát ebben a cikkben megvitatjuk a HTML-t PDF-be konvertálásának lépéseit a Java REST API segítségével.
HTML-ből PDF-be konvertáló API
Az Aspose.HTML Cloud SDK for Java lehetővé teszi HTML-kezelési műveletek végrehajtását a Java alkalmazásokon belül. A HTML-t fix elrendezésű dokumentumformátumokká (PDF vagy XPS) is tudjuk konvertálni. Tehát az átalakítás végrehajtásához betölthetjük a forrás HTML-t (XHTML, MHTML, EPUB, Markdown) a felhőtárhelyről, vagy megadhatjuk az URL-t egy weboldalról. Most az SDK használatához adja hozzá a következő függőséget a maven build projektjének pom.xml fájljához, hogy az aspose-html.jar hozzáadható legyen a projekthez:
<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>
Konvertálja a HTML-t PDF-be Java nyelven
Kérjük, kövesse az alábbi lépéseket a weboldal PDF formátumba konvertálásához a Java alkalmazásban.
- Először is meg kell adnunk részleteket a Configuration.setAPPSID mezőben.
- Másodszor megadjuk a Configuration.setAPIKEY információt.
- Harmadszor, beállítjuk a setBasePath(..) részleteit.
- Ezután meg kell adnunk a setAuthPath(..) részleteit.
- A setUserAgent(…) beállítása WebKit-ként.
- Saját segítségünkre a setDebug(..) függvényt igaznak fogjuk beállítani.
- Az API azt is lehetővé teszi, hogy megadjuk a margó részleteit az eredményül kapott fájlhoz.
- A következő lépés a bemeneti HTML-fájl beolvasása és betöltése a fájlpéldányba.
- Most létre kell hoznunk a RequestBody osztály példányát, és az adathordozót “multipart/form-data”-ként kell elemezni.
- Hozzon létre egy objektumot a ConversionApi osztályból.
- Mivel a fájlt felhőtárhelyre fogjuk feltölteni, ezért létre kell hoznunk a StorageApi példányát is.
- Most meg kell hívnunk a PostConvertDocumentInRequestToPdf(..) függvényt az átalakítási folyamat elindításához. Ez a módszer argumentumként fogadja el a bemeneti fájlnevet, az eredő fájlnevet, valamint az eredő fájl margóját és a méretadatokat.
- Az átalakítás után az eredmény visszakerül a Stream objektumhoz, amely a választörzs nyers bájtjait tartalmazza.
- Most be kell kérnünk a sikeres válasz deserializált választörzsét a ResponseBody objektumba.
- Töltse le az eredményül kapott fájlt a felhőtárhelyről a ResponseBody objektumra.
- Végül meg fogjuk hívni egyéni módszerünket, hogy az eredményül kapott PDF-dokumentumot a helyi rendszermeghajtóra mentsük.
import com.aspose.html.api.ConversionApi;
import okhttp3.MediaType;
import okhttp3.MultipartBody;
import okhttp3.RequestBody;
import okhttp3.Response;
import okhttp3.ResponseBody;
import retrofit2.Call;
import java.io.*;
public class conversionCode {
public static void main(String[] args) {
com.aspose.html.Configuration.setAPP_SID("c235e685-1aab-4cda-a95b-54afd63eb87f");
com.aspose.html.Configuration.setAPI_KEY("b8da4ee37494f2ef8da3c727f3a0acb9");
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);
String name = "Simple.html";// inpit Document name.
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.
String storage = null; // Name of the storage.
File f = new File("/Users/nayyershahbaz/Documents/"+name);
if(!f.exists()){
System.out.println("file not found");
}
RequestBody requestBody = RequestBody.create( MediaType.parse("multipart/form-data"), f);
MultipartBody.Part file = MultipartBody.Part.createFormData("file", f.getName(), requestBody);
try {
ConversionApi api = new com.aspose.html.ApiClient().createService(ConversionApi.class);
com.aspose.html.api.StorageApi storageApi = new com.aspose.html.ApiClient().createService(com.aspose.html.api.StorageApi.class);
Call<ResponseBody> call2 = api.PostConvertDocumentInRequestToPdf("resultantFile.pdf", file, width, height, leftMargin, rightMargin, topMargin, bottomMargin);
retrofit2.Response<ResponseBody> res = call2.execute();
ResponseBody resultant = res.body();
call2 = storageApi.downloadFile("resultantFile.pdf", null, storage);
checkAndSave(call2, "resultantFile.pdf");
} catch (Exception e) {
System.err.println("Exception during file processing...");
e.printStackTrace();
}
} // main ends here
public static void checkAndSave(Call<ResponseBody> call, String fileName) throws IOException
{
retrofit2.Response<ResponseBody> res = call.execute();
ResponseBody answer = res.body();
//Mentés a tesztkönyvtárba
boolean result = saveToDisc(answer, fileName);
}
public static boolean saveToDisc(ResponseBody body, String fileName)
{
File savedFile = new File("/Users/nayyershahbaz/Documents/"+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
}
Következtetés
Ebben a cikkben megtanultuk, hogyan lehet egy weboldalt PDF formátumba konvertálni Java SDK használatával. Megfigyeltük, hogy kevesebb kódsorral a teljes HTML teljes hűséggel PDF formátumba kerül. A PDF formátumon kívül az API lehetővé teszi HTML-ből JPG-be, HTML-ből PNG-be, HTML-ből TIFF-be, HTML-ből BMP-be és HTML-be GIF konverziós művelet. Hasonlóképpen konvertálhatunk Markdown fájlt HTML formátumba vagy MHTML-t HTML formátumba ugyanazzal az API-val.
Ha bármilyen problémába ütközik az API használata során, forduljon hozzánk bizalommal az ingyenes terméktámogatási fórumon.
Kapcsolódó linkek
Javasoljuk, hogy látogassa meg az alábbi linkeket, ha többet szeretne megtudni erről