convertir html en pdf

Comment convertir HTML en PDF | HTML en PDF en ligne

Le format HTML est un format de fichier de premier plan pour le développement Web et la majorité des navigateurs Web modernes prennent en charge les spécifications HTML. Bien qu’il soit indépendant de la plate-forme et puisse être affiché sur n’importe quel système d’exploitation, il est également sujet aux scripts malveillants et ne peut pas être facilement partagé sur Internet. Ainsi, afin d’éviter de telles circonstances et pour un archivage à long terme, nous enregistrons une page Web au format PDF(Portable Document Format).Dans cet article, nous allons donc discuter des étapes à suivre pour convertir du HTML en PDF à l’aide de l’API REST Java.

API de conversion HTML en PDF

Aspose.HTML Cloud SDK for Java vous permet d’effectuer des opérations de manipulation HTML dans les applications Java. Nous pouvons également convertir du HTML en formats de document à mise en page fixe (PDF ou XPS).Ainsi, pour effectuer la conversion, nous pouvons charger le code source HTML (XHTML, MHTML, EPUB, Markdown) à partir du stockage cloud ou fournir l’URL d’une page Web. Maintenant, pour utiliser le SDK, veuillez ajouter la dépendance suivante dans pom.xml de votre projet de build maven afin que aspose-html.jar puisse être ajouté au projet :

<repositories> 
    <repository>
        <id>aspose-cloud</id>
        <name>artifact.aspose-cloud-releases</name>
        <url>http://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>

Convertir HTML en PDF en Java

Veuillez suivre les étapes ci-dessous pour convertir la page Web en PDF dans l’application Java.

  • Tout d’abord, nous devons spécifier les détails de Configuration.setAPPSID.
  • Deuxièmement, nous spécifions les informations Configuration.setAPIKEY.
  • Troisièmement, nous définissons les détails de setBasePath(..).
  • Nous devons ensuite spécifier les détails de setAuthPath(..).
  • Définissez setUserAgent(…) comme WebKit.
  • Pour notre propre assistance, nous allons définir setDebug(..) sur true.
  • L’API nous permet également de spécifier les détails de marge pour le fichier résultant.
  • L’étape suivante consiste à lire le fichier HTML d’entrée et à le charger dans l’instance de fichier.
  • Nous devons maintenant créer une instance de la classe RequestBody et analyser le média comme « multipart/form-data ».
  • Créez un objet de classe ConversionApi.
  • Puisque nous allons télécharger le fichier vers le stockage cloud, nous devons également créer une instance de StorageApi.
  • Nous devons maintenant appeler PostConvertDocumentInRequestToPdf(..) pour lancer le processus de conversion. Cette méthode accepte le nom du fichier d’entrée, le nom du fichier résultant et les détails des marges et des dimensions du fichier résultant comme arguments.
  • Après la conversion, le résultat est renvoyé à l’objet Stream contenant les octets bruts du corps de la réponse.
  • Nous devons maintenant récupérer le corps de réponse désérialisé de la réponse réussie dans l’objet ResponseBody.
  • Téléchargez le fichier résultant du stockage cloud vers l’objet ResponseBody.
  • Enfin, nous allons appeler notre méthode personnalisée pour enregistrer le document PDF résultant sur un lecteur système local.
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();
    //Enregistrer dans le répertoire de test
    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

}

Conclusion

Dans cet article, nous avons appris les étapes à suivre pour convertir une page Web en PDF à l’aide du SDK Java. Nous avons observé qu’avec moins de lignes de code, le HTML complet est restitué au format PDF avec une fidélité totale. Outre le format PDF, l’API vous permet également d’effectuer des opérations de conversion HTML vers JPG, HTML vers PNG, HTML vers TIFF, HTML vers BMP et HTML vers GIF. De même, nous pouvons convertir un fichier Markdown en HTML ou convertir le format MHTML en HTML à l’aide de la même API.

Si vous rencontrez des problèmes lors de l’utilisation de l’API, n’hésitez pas à nous contacter via le forum d’assistance produit gratuit.

Liens connexes

Nous vous recommandons de visiter les liens suivants pour en savoir plus sur