Flux de sortie – Output Streams – Conversion de HTML en PDF, DOCX et images
Flux de sortie – Output Streams
Lors des opérations de conversion HTML, les résultats sont généralement enregistrés dans un fichier. Cependant, certains scénarios nécessitent de stocker les résultats en mémoire ou de les envoyer vers un stockage distant. Vous pouvez facilement le faire en implémentant la classe spécialisée MemoryStreamProvider
. Cette classe représente un mécanisme de rappel nécessaire pour gérer la création et la gestion des flux de sortie, par exemple, pendant le rendu.
Note: Elle peut être invoquée plusieurs fois lorsque des flux de sortie multiples sont nécessaires. Le scénario dans lequel ce cas est possible est le rendu HTML vers l’ensemble des fichiers images.
Classe MemoryStreamProvider
La bibliothèque Aspose.HTML for Java permet de réaliser la classe MemoryStreamProvider
comme une implémentation personnalisée de l’interface java.io.Closeable
. Cela permet d’appeler la méthode close()
sur les instances de cette classe pour libérer les ressources détenues par l’objet MemoryStreamProvider. La classe MemoryStreamProvider
possède un champ public lStream
qui est une liste java.util.List
d’objets java.io.InputStream
. Ces objets représentent les flux d’entrée créés pendant le processus de rendu du document.
1// Implement a memory-based stream provider for handling InputStreams during document rendering in Aspose.HTML for Java
2
3// For complete examples and data files, please go to https://github.com/aspose-html/Aspose.HTML-for-Java
4
5public class MemoryStreamProvider implements java.io.Closeable {
6 // List of InputStream objects created during the document rendering
7 public java.util.List<java.io.InputStream> lStream = new java.util.ArrayList<>();
8
9 @Override
10 public void close() throws java.io.IOException {
11 for (java.io.InputStream stream : lStream) {
12 stream.close();
13 }
14 }
15}
MemoryStream vers fichier
Le code Java suivant montre comment utiliser la classe MemoryStreamProvider
et la bibliothèque Aspose.HTML for Java pour convertir du HTML en JPG et enregistrer l’image dans un fichier.
- Créez une nouvelle instance de la classe
MemoryStreamProvider
. Elle sera utilisée comme flux de sortie pour le processus de rendu. - Initialiser un document HTML en utilisant la classe HTMLDocument. Le contenu HTML est transmis en tant que paramètre au constructeur HTMLDocument().
- Appelez la méthode
convertHTML(document, options, provider)
pour convertir l’objet HTMLDocument en une image en utilisant les options de sauvegarde et leMemoryStreamProvider
. - Utilisez la méthode
streamProvider.lStream.get(0)
pour récupérer le premier objet InputStream de la listelStream
de l’objetstreamProvider
et l’assigner à la variablememory
pour une manipulation ultérieure. De cette façon, vous accédez au flux de mémoire contenant les données de résultat. - Utilisez la méthode
reset()
pour réinitialiser la position du flux au début.
1// Convert HTML to JPEG in memory using Aspose.HTML for Java and save the result to a file
2
3// Create an instance of MemoryStreamProvider
4MemoryOutputStreamProvider streamProvider = new MemoryOutputStreamProvider();
5
6// Initialize an HTMLDocument instance
7HTMLDocument document = new HTMLDocument("<span>Hello, World!!</span>", ".");
8
9// Convert HTML to JPG using the MemoryStreamProvider
10Converter.convertHTML(document, new ImageSaveOptions(ImageFormat.Jpeg), streamProvider.lStream);
11
12// Get access to the memory stream that contains the result data
13java.io.InputStream memory = streamProvider.lStream.get(0);
14memory.reset();
15
16// Flush the result data to the output file
17Path outputFile = new File("output.jpg").toPath();
18Files.copy(memory, outputFile, StandardCopyOption.REPLACE_EXISTING);
Conclusion
La classe MemoryStreamProvider
est un composant polyvalent et important lors de la gestion des opérations de rendu en mémoire avec Aspose.HTML for Java. En implémentant l’interface java.io.Closeable
, MemoryStreamProvider fournit une gestion efficace des ressources en permettant aux flux d’être explicitement fermés après utilisation. Sa principale fonctionnalité est de servir de mécanisme de rappel pour la création et la gestion des flux de sortie, par exemple, pendant les processus de rendu.
La liste lStream
, qui contient plusieurs objets InputStream
, rend MemoryStreamProvider
particulièrement utile pour les scénarios nécessitant plusieurs flux de sortie, tels que le rendu de documents HTML multipages en images individuelles. Cette classe ne simplifie pas seulement le processus de gestion de la sortie du rendu, mais elle offre également la flexibilité de conserver les résultats en mémoire avant de les stocker dans une mémoire persistante ou de les transmettre en continu à des systèmes distants.
Vous pouvez télécharger les exemples complets et les fichiers de données à partir de GitHub.