Enregistrement d\'un MSG au format PDF
Contents
[
Hide
]
Cet article montre comment convertir un message électronique en PDF à l'aide d'Aspose.Email. Aspose.Email pour Java gère les fonctionnalités de Microsoft Outlook, mais ne peut pas effectuer de conversion directe en PDF. Pour contourner ce problème, les exemples de cet article utilisent Aspose.Email pour convertir le message électronique en flux MHTML, puis utilisent Aspose.Words pour Java afin de charger le flux MHTML et de l'enregistrer en PDF.
Un message électronique peut également contenir des pièces jointes. Étant donné que chaque pièce jointe peut être d'un type de média différent, Aspose.Email ignore ces pièces jointes lors de la conversion en MHTML, c'est‑à‑dire que seules les images intégrées dans le message feront partie du MHTML et que les pièces jointes ordinaires seront ignorées.
Convertir le message électronique en PDF
Le code suivant montre la conversion d'un message électronique en PDF en utilisant Aspose.Email en combinaison avec Aspose.Words pour Java. Cela implique les étapes suivantes :
- Charger le message électronique avec MailMessage
- Enregistrer le message électronique dans un MemoryStream au format MHTML
- Charger le flux avec Aspose.Words
- Enregistrer le message au format PDF
Le message électronique source peut être vu comme suit :
|
| | :- | |Figure : Fichier MSG source |
|
| | :- | |Figure : Fichier PDF converti | Java
static void EmailToPdf(String emailPath) throws Exception
{
FileInputStream fstream=new FileInputStream(emailPath);
MailMessage eml = MailMessage.load(fstream);
//Save the Message to output stream in MHTML format
ByteArrayOutputStream emlStream = new ByteArrayOutputStream();
eml.save(emlStream, SaveOptions.getDefaultMhtml());
//Load the stream in Word document
LoadOptions lo = new LoadOptions();
lo.setLoadFormat(LoadFormat.MHTML);
Document doc = new Document(new ByteArrayInputStream(emlStream.toByteArray()), lo);
//Save to disc
doc.save("About Aspose.Pdf", SaveFormat.PDF);
//or Save to stream
ByteArrayOutputStream foStream = new ByteArrayOutputStream();
doc.save(foStream, SaveFormat.PDF);
}