HTML in PDF konvertieren

So konvertieren Sie HTML in PDF | HTML online in PDF

HTML ist ein führendes Dateiformat für die Webentwicklung, und die meisten modernen Webbrowser unterstützen HTML-Spezifikationen. Obwohl es plattformunabhängig ist und auf jedem Betriebssystem angezeigt werden kann, ist es auch anfällig für bösartige Skripte und kann nicht einfach über das Internet geteilt werden. Um solche Umstände zu vermeiden und für die langfristige Archivierung speichern wir eine Webseite als PDF(Portable Document Format).In diesem Artikel besprechen wir daher die Schritte zum Konvertieren von HTML in PDF mithilfe der Java REST API.

API zur Konvertierung von HTML in PDF

Aspose.HTML Cloud SDK für Java ermöglicht es Ihnen, HTML-Manipulationsvorgänge in Java-Anwendungen durchzuführen. Wir können HTML auch in Dokumentformate mit festem Layout (PDF oder XPS) konvertieren. Um die Konvertierung durchzuführen, können wir das Quell-HTML (XHTML, MHTML, EPUB, Markdown) aus dem Cloud-Speicher laden oder die URL einer Webseite angeben. Um das SDK zu verwenden, fügen Sie nun bitte die folgende Abhängigkeit in pom.xml Ihres Maven-Build-Projekts hinzu, damit aspose-html.jar zum Projekt hinzugefügt werden kann:

<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>

Konvertieren Sie HTML in PDF in Java

Befolgen Sie die unten angegebenen Schritte, um die Webseite in der Java-Anwendung in PDF zu konvertieren.

  • Zuerst müssen wir Details zu Configuration.setAPPSID angeben.
  • Zweitens geben wir die Configuration.setAPIKEY-Informationen an.
  • Drittens legen wir die setBasePath(..)-Details fest.
  • Dann müssen wir die setAuthPath(..)-Details angeben.
  • Legen Sie setUserAgent(…) als WebKit fest.
  • Zu unserer eigenen Unterstützung setzen wir setDebug(..) auf true.
  • Die API ermöglicht es uns auch, die Randdetails für die resultierende Datei anzugeben.
  • Der nächste Schritt besteht darin, die eingegebene HTML-Datei zu lesen und in die Dateiinstanz zu laden.
  • Jetzt müssen wir eine Instanz der RequestBody Klasse erstellen und Medien als „multipart/form-data“ analysieren.
  • Erstellen Sie ein Objekt der ConversionApi Klasse.
  • Da wir die Datei in den Cloud-Speicher hochladen möchten, müssen wir auch eine Instanz von StorageApi erstellen.
  • Jetzt müssen wir PostConvertDocumentInRequestToPdf(..) aufrufen, um den Konvertierungsprozess zu starten. Diese Methode akzeptiert den Namen der Eingabedatei, den Namen der resultierenden Datei sowie die Angaben zu Rändern und Abmessungen der resultierenden Datei als Argumente.
  • Nach der Konvertierung wird das Ergebnis an das Stream Objekt zurückgegeben, das die Rohbytes des Antworttexts enthält.
  • Jetzt müssen wir den deserialisierten Antworttext der erfolgreichen Antwort in das ResponseBody Objekt abrufen.
  • Laden Sie die resultierende Datei aus dem Cloud-Speicher in das ResponseBody Objekt herunter.
  • Anschließend rufen wir unsere benutzerdefinierte Methode auf, um das resultierende PDF Dokument auf einem lokalen Systemlaufwerk zu speichern.
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();
    //Im Testverzeichnis speichern
    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

}

Abschluss

In diesem Artikel haben wir die Schritte zum Konvertieren einer Webseite in PDF mithilfe des Java SDK gelernt. Wir haben festgestellt, dass mit weniger Codezeilen das komplette HTML mit absoluter Genauigkeit in das PDF-Format gerendert wird. Abgesehen vom PDF-Format können Sie mit der API auch Konvertierungsvorgänge von HTML in JPG, HTML in PNG, HTML in TIFF, HTML in BMP und HTML in GIF durchführen. In ähnlicher Weise können wir mit derselben API eine Markdown-Datei in HTML oder MHTML in das HTML-Format konvertieren.

Falls bei der Verwendung der API Probleme auftreten, können Sie uns gerne über das kostenlose Produkt-Support-Forum kontaktieren.

Wir empfehlen Ihnen, die folgenden Links zu besuchen, um mehr zu erfahren über