HTML er et førende filformat til webudvikling, og et flertal af moderne webbrowsere understøtter HTML-specifikationer. Selvom det er platformsuafhængigt og kan ses på ethvert operativsystem, er de også tilbøjelige til ondsindede scripts og kan ikke nemt deles over internettet. Så for at undgå sådanne omstændigheder og for langsigtet arkivering gemmer vi en webside som PDF(Portable Document Format).Så i denne artikel vil vi diskutere trinene til, hvordan man konverterer HTML til PDF ved hjælp af Java REST API.
HTML til PDF konvertering API
Aspose.HTML Cloud SDK for Java giver dig mulighed for at udføre HTML-manipulationsoperationer i Java-applikationer. Vi kan også konvertere HTML til dokumentformater med fast layout (PDF eller XPS).Så for at udføre konverteringen kan vi indlæse kilde-HTML (XHTML, MHTML, EPUB, Markdown) fra skylageret eller angive URL’en af en webside. For nu at bruge SDK, skal du tilføje følgende afhængighed i pom.xml af dit maven build-projekt, så aspose-html.jar kan tilføjes til projektet:
<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>
Konverter HTML til PDF i Java
Følg venligst nedenstående trin for at konvertere websiden til PDF i Java-applikationen.
- Først og fremmest skal vi angive detaljer mod Configuration.setAPPSID.
- For det andet angiver vi Configuration.setAPIKEY-oplysningerne.
- For det tredje indstiller vi setBasePath(..) detaljerne.
- Så skal vi specificere setAuthPath(..) detaljerne.
- Indstil setUserAgent(…) som WebKit.
- For vores egen hjælp vil vi indstille setDebug(..) som sand.
- API’en giver os også mulighed for at angive margendetaljerne for den resulterende fil.
- Det næste trin er at læse input-HTML-filen og indlæse den i File-instansen.
- Nu skal vi oprette en instans af RequestBody-klassen og parse medier som “multipart/form-data”.
- Opret et objekt af ConversionApi-klassen.
- Da vi skal uploade filen til cloud storage, så skal vi også oprette en instans af StorageApi.
- Nu skal vi ringe til PostConvertDocumentInRequestToPdf(..) for at starte konverteringsprocessen. Denne metode accepterer inputfilnavn, resulterende filnavn og resulterende filmargen og dimensionsdetaljer som argumenter.
- Efter konverteringen returneres resultatet til Stream-objektet, der indeholder rå bytes af svarlegemet.
- Nu skal vi hente den deserialiserede svartekst af det vellykkede svar ind i ResponseBody-objektet.
- Download den resulterende fil fra skylageret til ResponseBody-objektet.
- Så til sidst vil vi kalde vores brugerdefinerede metode til at gemme det resulterende PDF-dokument på et lokalt systemdrev.
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();
//Gem i testbiblioteket
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
}
Konklusion
I denne artikel har vi lært trinene til, hvordan man konverterer en webside til PDF ved hjælp af Java SDK. Vi har observeret, at med færre kodelinjer gengives den komplette HTML til PDF-format med fuldstændig troværdighed. Udover PDF-format giver API’en dig også mulighed for at udføre HTML til JPG, HTML til PNG, HTML til TIFF, HTML til BMP og HTML til GIF konverteringsoperationer. På samme måde kan vi konvertere en Markdown-fil til HTML eller konvertere MHTML til HTML-format ved hjælp af den samme API.
Hvis du støder på problemer, mens du bruger API’en, er du velkommen til at kontakte os via gratis produktsupportforum.
Relaterede links
Vi anbefaler at besøge følgende links for at lære mere om