Convertir MHTML en PDF – C#
La conversion de MHTML en PDF est souvent nécessaire pour tirer parti du format PDF dans le cadre de tâches spécifiques. Le format PDF présente de nombreux avantages par rapport à d’autres fichiers. Par exemple, de nombreux programmes et applications prennent en charge les documents PDF ; les fichiers PDF sont optimisés pour l’impression et sont idéaux pour créer des copies physiques de vos documents ; vous pouvez configurer les paramètres de sécurité des fichiers PDF – désactiver l’impression, l’édition, l’utilisation d’une signature électronique, etc.
Dans cet article, vous trouverez des informations sur la manière de convertir MHTML en PDF à l’aide des méthodes ConvertMHTML() de la classe Converter et sur la manière d’appliquer les paramètres PdfSaveOptions et ICreateStreamProvider.
Convertisseur MHTML en ligne
Vous pouvez vérifier la fonctionnalité de l’API Aspose.HTML et convertir du MHTML en temps réel. Veuillez charger un fichier MHTML à partir du système de fichiers local, sélectionnez le format de sortie et exécutez l’exemple. Dans l’exemple, les options d’enregistrement sont définies par défaut. Vous recevrez immédiatement le résultat dans un fichier séparé.
Si vous souhaitez convertir du MHTML au format PDF par programme, veuillez consulter les exemples de code C# suivants.
MHTML vers PDF en deux lignes de code
Les méthodes statiques de la classe Converter sont principalement utilisées comme moyen le plus simple de convertir un code MHTML en différents formats. Par exemple, vous pouvez convertir MHTML en PDF dans votre application C# en deux lignes de code !
1// Convert MHTML to PDF using C#
2
3// Open an existing MHTML file for reading
4using FileStream stream = File.OpenRead(DataDir + "sample.mht");
5
6// Invoke the ConvertMHTML() method to convert MHTML to PDF
7Converter.ConvertMHTML(stream, new PdfSaveOptions(), Path.Combine(OutputDir, "convert-by-two-lines.pdf"));
Convertir MHTML en PDF
L’utilisation des méthodes Converter.ConvertMHTML() est le moyen le plus courant de convertir du code MHTML dans différents formats. Avec Aspose.HTML, vous pouvez convertir du code MHTML au format PDF de manière programmatique, avec un contrôle total sur un large éventail de paramètres de conversion.
L’extrait de code C# suivant montre comment convertir du MHTML en PDF à l’aide d’Aspose.HTML for .NET.
- Ouvrir un fichier MHTML existant.
- Créer une instance de la classe PdfSaveOptions.
- Utilisez la méthode ConvertMHTML() de la classe Converter pour enregistrer le MHTML en tant que fichier PDF. Vous devez transmettre le flux du fichier MHTML, les options PdfSaveOptions et le chemin du fichier de sortie à la méthode ConvertMHTML() pour la conversion du MHTML en PDF.
Dans l’exemple, nous utilisons la méthode OpenRead() de la classe System.IO.FileStream pour ouvrir et lire les fichiers du système de fichiers au chemin spécifié.
1// Convert MHTML to PDF in C#
2
3// Open an existing MHTML file for reading
4using FileStream stream = File.OpenRead(DataDir + "sample.mht");
5
6// Prepare a path to save the converted file
7string savePath = Path.Combine(OutputDir, "sample-output.pdf");
8
9// Create an instance of PdfSaveOptions
10PdfSaveOptions options = new PdfSaveOptions();
11
12// Call the ConvertMHTML() method to convert MHTML to PDF
13Converter.ConvertMHTML(stream, options, savePath);
Sauvegarder les options
Aspose.HTML permet de convertir du MHTML en PDF en utilisant des options d’enregistrement par défaut ou personnalisées. l’utilisation de PdfSaveOptions vous permet de personnaliser le processus de rendu ; vous pouvez spécifier la page size, les margins, les permissions de fichier, le CSS media-type, etc.
Property | Description |
---|---|
JpegQuality | Specifies the quality of JPEG compression for images. The default value is 95. |
Css | Gets a CssOptions object which is used for configuration of CSS properties processing. |
DocumentInfo | This property contains information about the output PDF document. |
BackgroundColor | This property sets the color that will fill the background of every page. By default, this property is Transparent. |
PageSetup | This property gets a page setup object and uses it for configuration output page-set. |
HorizontalResolution | Sets horizontal resolution for output images in pixels per inch. The default value is 300 dpi. |
VerticalResolution | Sets vertical resolution for output images in pixels per inch. The default value is 300 dpi. |
Encryption | This property gets or sets encryption details. If it is not set, then no encryption will be performed. |
Pour en savoir plus sur les PdfSaveOptions, veuillez lire l’article Convertisseurs à réglage fin.
Conversion de MHTML en PDF à l’aide de PdfSaveOptions
Pour convertir du MHTML en PDF en spécifiant PdfSaveOptions, vous devez suivre quelques étapes :
- Ouvrir un fichier MHTML existant.
- Créer un nouvel objet PdfSaveOptions et spécifier les options d’enregistrement.
- Utilisez la méthode ConvertMHTML() pour enregistrer du MHTML en tant que fichier PDF. Vous devez transmettre le flux du fichier MHTML, les options PdfSaveOptions et le chemin du fichier de sortie à la méthode ConvertMHTML() pour la conversion du MHTML en PDF.
L’exemple suivant montre comment utiliser PdfSaveOptions et créer un fichier PDF avec des options d’enregistrement personnalisées :
1// Convert MHTML to PDF in C# with custom settings
2
3// Open an existing MHTML file for reading
4using FileStream stream = File.OpenRead(DataDir + "sample.mht");
5
6// Prepare a path to save the converted file
7string savePath = Path.Combine(OutputDir, "sample-options.pdf");
8
9// Create an instance of PdfSaveOptions. Set up the page-size and change the background color to AliceBlue
10PdfSaveOptions options = new PdfSaveOptions()
11{
12 PageSetup =
13 {
14 AnyPage = new Page()
15 {
16 Size = new Aspose.Html.Drawing.Size(Length.FromPixels(3000), Length.FromPixels(1000))
17 }
18 },
19 BackgroundColor = System.Drawing.Color.AliceBlue
20};
21
22// Call the ConvertMHTML() method to convert MHTML to PDF
23Converter.ConvertMHTML(stream, options, savePath);
Dans l’exemple, nous utilisons la méthode OpenRead() de la classe System.IO.FileStream pour ouvrir et lire les fichiers sources à partir du système de fichiers au chemin spécifié. Le constructeur
PdfSaveOptions() initialise une instance de la classe PdfSaveOptions qui est transmise à la méthode ConvertMHTML(). La méthode ConvertMHTML() prend le stream
, les options
, le chemin du fichier de sortie savePath
et effectue l’opération de conversion. La classe PdfSaveOptions fournit de nombreuses propriétés qui vous donnent un contrôle total sur un large éventail de paramètres et améliorent le processus de conversion du MHTML au format PDF.
Dans l’exemple ci-dessus, nous utilisons :
- propriété
BackgroundColor
qui spécifie la couleur dans laquelle l’arrière-plan sera rempli. La couleur d’arrière-plan par défaut est Transparent. - propriété
PageSetup
qui spécifie la page size en pixels.
Fournisseurs de flux de sortie
S’il est nécessaire d’enregistrer des fichiers dans un espace de stockage distant (par exemple, un nuage, une base de données, etc.), vous pouvez mettre en œuvre l’interface ICreateStreamProvider afin de contrôler manuellement le processus de création de fichiers. Cette interface est conçue comme un objet de rappel pour créer un flux au début du document/de la page (en fonction du format de sortie) et libérer le flux créé au début après le rendu du document/de la page.
Aspose.HTML for .NET fournit différents types de formats de sortie pour les opérations de rendu. Certains de ces formats produisent un seul fichier de sortie (par exemple PDF, XPS), d’autres créent plusieurs fichiers (formats d’image JPG, PNG, etc.)
L’exemple ci-dessous montre comment mettre en œuvre et utiliser votre propre MemoryStreamProvider dans l’application :
1// Implement a custom MemoryStream provider for advanced control over HTML rendering output streams
2
3class MemoryStreamProvider : Aspose.Html.IO.ICreateStreamProvider
4{
5 // List of MemoryStream objects created during the document rendering
6 public List<MemoryStream> Streams { get; } = new List<MemoryStream>();
7
8 public Stream GetStream(string name, string extension)
9 {
10 // This method is called when only one output stream is required, for instance for XPS, PDF or TIFF formats
11 MemoryStream result = new MemoryStream();
12 Streams.Add(result);
13 return result;
14 }
15
16 public Stream GetStream(string name, string extension, int page)
17 {
18 // This method is called when the creation of multiple output streams are required. For instance, during the rendering HTML to list of image files (JPG, PNG, etc.)
19 MemoryStream result = new MemoryStream();
20 Streams.Add(result);
21 return result;
22 }
23
24 public void ReleaseStream(Stream stream)
25 {
26 // Here you can release the stream filled with data and, for instance, flush it to the hard-drive
27 }
28
29 public void Dispose()
30 {
31 // Releasing resources
32 foreach (MemoryStream stream in Streams)
33 stream.Dispose();
34 }
35}
Le code C# suivant montre comment utiliser la classe MemoryStreamProvider et la bibliothèque Aspose.HTML for .NET pour convertir du MHTML en PDF et enregistrer le résultat dans un fichier.
1// Convert MHTML to PDF in C# using memory stream
2
3// Create an instance of MemoryStreamProvider
4using MemoryStreamProvider streamProvider = new MemoryStreamProvider();
5
6// Open an existing MHTML file for reading
7using FileStream stream = File.OpenRead(DataDir + "sample.mht");
8
9// Prepare a path to save the converted file
10string savePath = Path.Combine(OutputDir, "stream-provider.pdf");
11
12// Convert MHTML to PDF by using the MemoryStreamProvider class
13Converter.ConvertMHTML(stream, new PdfSaveOptions(), streamProvider);
14
15// Get access to the memory stream that contains the result data
16MemoryStream memory = streamProvider.Streams.First();
17memory.Seek(0, SeekOrigin.Begin);
18
19// Flush the result data to the output file
20using (FileStream fs = File.Create(savePath))
21{
22 memory.CopyTo(fs);
23}
Vous pouvez télécharger les exemples complets et les fichiers de données sur GitHub.
Aspose.HTML propose un Convertisseur MHTML en PDF en ligne gratuit qui convertit les fichiers MHTML en PDF avec une grande qualité, facilement et rapidement. Il suffit de télécharger, de convertir vos fichiers et d’obtenir des résultats en quelques secondes !