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.

  1. Créez une nouvelle instance de la classe MemoryStreamProvider. Elle sera utilisée comme flux de sortie pour le processus de rendu.
  2. Initialiser un document HTML en utilisant la classe HTMLDocument. Le contenu HTML est transmis en tant que paramètre au constructeur HTMLDocument().
  3. Appelez la méthode convertHTML(document, options, provider) pour convertir l’objet HTMLDocument en une image en utilisant les options de sauvegarde et le MemoryStreamProvider.
  4. Utilisez la méthode streamProvider.lStream.get(0) pour récupérer le premier objet InputStream de la liste lStream de l’objet streamProvider et l’assigner à la variable memory pour une manipulation ultérieure. De cette façon, vous accédez au flux de mémoire contenant les données de résultat.
  5. 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.

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.