Options de rendu

Les options de rendu vous donnent un contrôle supplémentaire sur le périphérique de rendu. Chaque périphérique de rendu – PdfDevice, XpsDevice, DocDevice, et ImageDevice possède son propre ensemble d’options implémentées avec les classes PdfRenderingOptions, XpsRenderingOptions, DocRenderingOptions, et ImageRenderingOptions respectivement. Vous pouvez modifier la taille de la page, configurer les marges et les couleurs, définir un mot de passe de sécurité dans le cas d’un périphérique PDF, etc. La personnalisation des options de rendu est essentielle pour obtenir le document de sortie souhaité. Par exemple, vous pouvez réduire la taille du fichier en ajustant la qualité et la résolution de l’image ou améliorer la lisibilité en définissant les marges de la page et le formatage du texte.

Dans cet article, nous décrivons dans des exemples C# comment utiliser les options de rendu pour personnaliser le processus de rendu de HTML vers PDF, XPS, DOCX et Images. Un dispositif de rendu prend un objet d’options en paramètre et représente un document de sortie. Pour en savoir plus, veuillez lire l’article Dispositif de rendu.

Voici une démonstration de l’utilisation de PdfRenderingOptions pour personnaliser la taille de la page lors de la conversion de HTML en PDF :

 1// Render HTML to PDF in C# with custom page size
 2
 3string code = @"<span>Hello, World!!</span>";
 4
 5// Initialize an HTML document from HTML code
 6using HTMLDocument document = new HTMLDocument(code, ".");
 7
 8// Create an instance of PdfRenderingOptions and set a custom page size
 9PdfRenderingOptions options = new PdfRenderingOptions()
10{
11    PageSetup =
12        {
13            AnyPage = new Page(new Size(Length.FromInches(4),Length.FromInches(2)))
14        }
15};
16
17// Prepare a path to save the converted file 
18string savePath = Path.Combine(OutputDir, "file-with-custom-page-size.pdf");
19
20// Create an instance of the PdfDevice and specify the options and output file to render
21using PdfDevice device = new PdfDevice(options, savePath);
22
23// Render HTML to PDF
24document.RenderTo(device);

Options générales

L’espace de noms Aspose.Html.Rendering comprend de nombreux objets de rendu et des classes d’options de bas niveau appropriées responsables du rendu des documents dans l’implémentation IDevice. Les classes RenderingOptions et CssOptions représentent les options de rendu ou, en d’autres termes, les options de rendu générales. Ces options sont valables pour tous les dispositifs de rendu et tous les processus de rendu, de HTML à PDF, XPS, DOCX et Images :

PropertyDescription
PageSetupThis property gets a page setup object and uses it for configuration output page-set.
CssGets a CssOptions object which is used for configuration of CSS properties processing.
BackgroundColorThis property sets the color that will fill the background of every page. By default, this property is Transparent.
HorizontalResolutionSets horizontal resolution for output images in pixels per inch. The default value is 300 dpi.
VerticalResolutionSets vertical resolution for output images in pixels per inch. The default value is 300 dpi.
MediaTypeSets MediaType which will be used for media queries resolution during rendering. Default value is Print.

Résolution horizontale et verticale

Dans l’exemple suivant, nous montrerons comment nous pouvons contrôler la résolution du fichier image résultant, ce qui affecte en fin de compte sa taille et sa qualité :

 1// Render HTML to PNG with custom resolution using C#
 2
 3// Prepare a path to a source HTML file
 4string documentPath = Path.Combine(DataDir, "spring.html");
 5
 6// Create an instance of HTML document
 7using HTMLDocument document = new HTMLDocument(documentPath);
 8
 9// Prepare path to save output file 
10string savePath1 = Path.Combine(OutputDir, "output_resolution_50.png");
11string savePath2 = Path.Combine(OutputDir, "output_resolution_300.png");
12
13// Create options for low-resolution screens
14    ImageRenderingOptions options1 = new ImageRenderingOptions()
15    {
16        HorizontalResolution = 50,
17        VerticalResolution = 50
18    };
19
20// Create an instance of Image device
21using ImageDevice device1 = new ImageDevice(options1, savePath1);
22
23// Render HTML to PNG
24document.RenderTo(device1);
25
26
27// Create options for high-resolution screens
28ImageRenderingOptions options2 = new ImageRenderingOptions()
29{
30    HorizontalResolution = 300,
31    VerticalResolution = 300
32};
33
34// Create an instance of Image device
35using ImageDevice device2 = new ImageDevice(options2, savePath2);
36
37// Render HTML to PNG
38document.RenderTo(device2);

L’image suivante montre le résultat du rendu du fichier spring.html avec des résolutions de 50 dpi et 300 dpi :

Deux images du fichier spring.html au format PNG à 50 et 300 dpi

Type de média CSS

CSS le type de support est une caractéristique importante qui spécifie comment un document sera présenté sur différents supports : à l’écran, sur papier, avec un appareil braille, etc. Il existe plusieurs façons de spécifier le type de support d’une feuille de style, par le biais de feuilles de style liées ou d’inlining :

Linked Style Sheet

1 <link rel="stylesheet" type="text/css" media="print" href="style.css">

Inline Style Sheet

1<style type="text/css">
2@media print {
3  body{ color: #000000; }
4}
5</style>

L’API Aspose.HTML prend en charge cette fonctionnalité, de sorte que vous pouvez convertir des documents HTML tels qu’ils apparaissent à l’écran ou à l’impression en appliquant les types de médias et les feuilles de style correspondants. L’exemple suivant montre comment configurer le type de média :

1// Create an option class
2var options = new PdfRenderingOptions();
3
4// Set the 'screen' media-type
5options.Css.MediaType = MediaType.Screen;

Veuillez noter que la valeur par défaut de CssOptions.MediaType est Print. Cela signifie que le document sera converti en appliquant les feuilles de style liées au périphérique d’impression et qu’il aura l’apparence du papier (vous pouvez utiliser l’aperçu avant impression de votre navigateur pour voir la différence). Par conséquent, si vous souhaitez que le document ait la même apparence qu’à l’écran, vous devez utiliser MediaType.Screen.

Couleur de fond

La propriété BackgroundColor est utilisée pour définir la couleur d’arrière-plan du document de sortie lors du rendu de fichiers HTML aux formats PDF, XPS, DOCX ou image. Par défaut, la couleur d’arrière-plan est transparente. Cependant, vous pouvez définir cette propriété sur une couleur spécifique en utilisant la classe RenderingOptions.

 1// Render HTML to PDF with custom background color using C#
 2
 3// Prepare path to a source HTML file
 4string documentPath = Path.Combine(DataDir, "spring.html");
 5
 6// Prepare a path to save the converted file 
 7string savePath = Path.Combine(OutputDir, "spring.pdf");
 8
 9// Create an instance of HTML document
10using HTMLDocument document = new HTMLDocument(documentPath);
11
12// Initialize options with 'Azure' as a background-color
13PdfRenderingOptions options = new PdfRenderingOptions()
14{
15    BackgroundColor = System.Drawing.Color.Azure
16};
17
18// Create an instance of PDF device
19using PdfDevice device = new PdfDevice(options, savePath);
20
21// Render HTML to PDF
22document.RenderTo(device);

Mise en page

La mise en page est un ensemble de paramètres qui déterminent la disposition d’une page imprimée. Ces paramètres vont de la taille de la page, des marges et du redimensionnement automatique aux règles de priorité @page. Vous pouvez facilement définir une mise en page individuelle pour chaque page à l’aide de cet ensemble de paramètres.

L’exemple suivant montre comment créer un document PDF avec des tailles de page différentes pour les pages de gauche et de droite (voir la visualisation du résultat dans la figure (a) ci-dessous) :

 1// Render HTML to PDF with custom page size using C#
 2
 3// Prepare HTML code
 4string code = @"<style>div { page-break-after: always; }</style>
 5<div>First Page</div>
 6<div>Second Page</div>
 7<div>Third Page</div>
 8<div>Fourth Page</div>";
 9
10// Initialize an HTML document from the HTML code
11using HTMLDocument document = new HTMLDocument(code, ".");
12
13// Create the instance of Rendering Options and set a custom page size
14PdfRenderingOptions options = new PdfRenderingOptions();
15options.PageSetup.SetLeftRightPage(
16    new Page(new Size(400, 150)),
17    new Page(new Size(400, 50))
18);
19
20// Prepare a path to save the converted file 
21string savePath = Path.Combine(OutputDir, "output-custom-page-size.pdf");
22
23// Create the PDF Device and specify options and output file
24using PdfDevice device = new PdfDevice(options, savePath);
25
26// Render HTML to PDF
27document.RenderTo(device);
Example-UsePageSetup.cs hosted with ❤ by GitHub

Dans certains cas, le contenu de la page HTML peut être plus large que la taille de la page définie dans les options. Si vous ne voulez pas couper le contenu de la page, vous pouvez essayer la propriété AdjustToWidestPage de la classe PageSetup. L’exemple suivant montre comment adapter la taille de la page au contenu (voir la visualisation du résultat dans la figure (b) ci-dessous) :

 1// Render HTML to PDF and adjust to the widest page with C#
 2
 3// Prepare HTML code
 4string code = @"<style>
 5    div { page-break-after: always; }
 6</style>
 7<div style='border: 1px solid red; width: 300px'>First Page</div>
 8<div style='border: 1px solid red; width: 500px'>Second Page</div>";
 9
10// Initialize an HTML document from the HTML code
11using HTMLDocument document = new HTMLDocument(code, ".");
12
13// Create the instance of Rendering Options and set a custom page-size
14PdfRenderingOptions options = new PdfRenderingOptions();
15options.PageSetup.AnyPage = new Page(new Size(400, 200));
16
17// Enable auto-adjusting for the page size
18options.PageSetup.AdjustToWidestPage = true;
19
20// Prepare a path to save the converted file 
21string savePath = Path.Combine(OutputDir, "output-widest-page-size.pdf");
22
23// Create the PdfDevice and specify options and output file
24using PdfDevice device = new PdfDevice(options, savePath);
25
26// Render HTML to PDF
27document.RenderTo(device);

Texte “Deux images – le résultat de la personnalisation de la mise en page pour chaque page et le résultat de l’ajustement de la taille de la page au contenu”

Pour en savoir plus sur le processus de rendu, veuillez lire l’article Dispositif de rendu – Rendering Device.

Si vous souhaitez savoir comment utiliser les options de rendu pour redimensionner les pages d’un document en fonction de la taille du contenu et vice versa, veuillez consulter l’article Comment redimensionner un document lors d’une conversion à partir de HTML ?

Options de rendu PDF

La classe PdfRenderingOptions, en plus des options générales, supporte certains paramètres spécifiques, tels que JpegQuality, DocumentInfo, Encryption, et FormFieldBehaviour.

PropertyDescription
JpegQualitySpecifies the quality of JPEG compression for images. The default value is 95.
DocumentInfoThis property contains information about the output PDF document.
EncryptionThis property gets or sets encryption details. If it is not set, then no encryption will be performed.
FormFieldBehaviourThis property specifies the behavior of form fields in the output PDF document.

La propriété FormFieldBehaviour est utilisée pour spécifier le comportement des champs de formulaire dans un document PDF. Pour savoir ce que signifie aplatir un fichier PDF et comment le faire à l’aide de la bibliothèque Aspose.HTML for .NET, veuillez consulter l’article Aplatir un PDF – Flatten PDF.

Le code C# suivant montre comment ajouter du cryptage à un fichier de sortie PDF en utilisant la classe PdfRenderingOptions :

 1// Render HTML to PDF with password protection using C#
 2
 3// Prepare a path to a source HTML file
 4string documentPath = Path.Combine(DataDir, "document.html");
 5
 6// Initialize the HTML document from the file
 7using HTMLDocument document = new HTMLDocument(documentPath);
 8
 9// Create the instance of Rendering Options
10PdfRenderingOptions options = new PdfRenderingOptions();
11
12// Set the permissions to the file
13options.Encryption = new PdfEncryptionInfo(
14        "user_pwd",
15        "owner_pwd",
16        PdfPermissions.PrintDocument,
17        PdfEncryptionAlgorithm.RC4_128);
18
19// Prepare a path to save the converted file 
20string savePath = Path.Combine(OutputDir, "output-options.pdf");
21
22// Create an instance of the PdfDevice and specify options and output file
23using PdfDevice device = new PdfDevice(options, savePath);
24
25// Render HTML to PDF
26document.RenderTo(device);

L’exemple ci-dessus montre comment créer une nouvelle instance de PdfRenderingOptions et définir les options de cryptage pour un fichier de sortie PDF. Pour cela, vous devez utiliser le constructeur PdfEncryptionInfo(userPassword, ownerPassword, permissions, encryptionAlgorithm) pour créer un objet PdfEncryptionInfo, qui définit les paramètres de cryptage pour le fichier PDF. Le constructeur prend quatre paramètres :

Options de rendu d’image

La classe ImageRenderingOptions prend en charge toutes les options générales et vous permet de configurer des options spécifiques, telles que l’anticrénelage, la configuration du rendu du texte, la sélection du format de l’image et la compression de l’image.

PropertyDescription
CompressionSets Tagged Image File Format (TIFF) Compression. By default, this property is LZW.
FormatSets the ImageFormat (JPG, PNG, BMP, TIFF, or GIF). By default, this property is PNG.
UseAntialiasingThis property sets the rendering quality for the image.
TextGets a TextOptions object which is used for configuration of text rendering.

Voyons comment utiliser un objet spécialisé ImageRenderingOptions pour configurer la qualité de rendu de l’image. L’exemple suivant montre comment modifier la résolution et l’anticrénelage de l’image résultante.

 1// Render HTML to JPG with custom resolution and antialiasing settings with C#
 2
 3// Prepare a path to a source HTML file
 4string documentPath = Path.Combine(DataDir, "color.html");
 5
 6// Initialize the HTML document from the file
 7using HTMLDocument document = new HTMLDocument(documentPath);
 8
 9// Create an instance of Rendering Options
10ImageRenderingOptions options = new ImageRenderingOptions(ImageFormat.Jpeg)
11{
12    // Disable smoothing mode
13    UseAntialiasing = false,
14
15    // Set the image resolution as 75 dpi
16    VerticalResolution = Resolution.FromDotsPerInch(75),
17    HorizontalResolution = Resolution.FromDotsPerInch(75),
18};
19
20// Prepare a path to save the converted file 
21string savePath = Path.Combine(OutputDir, "color-options.jpg");
22
23// Create an instance of the ImageDevice and specify options and output file
24using ImageDevice device = new ImageDevice(options, savePath);
25
26// Render HTML to JPG
27document.RenderTo(device);

Options de rendu XPS

Les fichiers XPS générés par notre bibliothèque n’ont pas de paramètres spécifiques. Tous les paramètres de XpsRenderingOptions sont hérités de la classe de base RenderingOptions et décrits [ici].(51)

 1// Render HTML to XPS with custom page size using C#
 2
 3// Prepare a path to a source HTML file
 4string documentPath = Path.Combine(DataDir, "document.html");
 5
 6// Initialize the HTML document from the file
 7using HTMLDocument document = new HTMLDocument(documentPath);
 8
 9// Create an instance of Rendering Options
10XpsRenderingOptions options = new XpsRenderingOptions();
11options.PageSetup.AnyPage = new Page(new Size(Length.FromInches(5), Length.FromInches(2)));
12
13// Prepare a path to save the converted file 
14string savePath = Path.Combine(OutputDir, "document-options.xps");
15
16// Create an instance of the XpsDevice and specify options and output file
17using XpsDevice device = new XpsDevice(options, savePath);
18
19// Render HTML to XPS
20document.RenderTo(device);

Options de rendu du DOC

La classe DocRenderingOptions prend en charge toutes les options générales et vous permet de personnaliser les propriétés FontEmbeddingRule et DocumentFormat pour le fichier de sortie.

PropertyDescription
FontEmbeddingRuleThis property gets or sets the font embedding rule. Available values are Full and None. The default value is None.
DocumentFormatThis property gets or sets the file format of the output document. The default value is DOCX.

L’exemple suivant montre comment personnaliser les options de rendu des documents de sortie en définissant la taille de la page et la règle d’intégration des polices :

 1// Render HTML to DOCX in C# with custom page settings
 2
 3// Prepare a path to a source HTML file
 4string documentPath = Path.Combine(DataDir, "nature.html");
 5
 6// Initialize the HTML document from the file
 7using HTMLDocument document = new HTMLDocument(documentPath);
 8
 9// Create an instance of Rendering Options and set a custom page size
10DocRenderingOptions options = new DocRenderingOptions();
11options.PageSetup.AnyPage = new Page(new Size(Length.FromInches(8), Length.FromInches(10)));
12options.FontEmbeddingRule = (FontEmbeddingRule.Full);
13
14// Prepare a path to save the converted file 
15string savePath = Path.Combine(OutputDir, "nature-options.docx");
16
17// Create an instance of the DocDevice and specify options and output file
18using DocDevice device = new DocDevice(options, savePath);
19
20// Render HTML to DOCX
21document.RenderTo(device);

Aspose.HTML propose des Convertisseurs gratuits en ligne qui permettent de convertir des fichiers HTML, XHTML, MHTML, EPUB, XML et Markdown dans toute une série de formats populaires. Vous pouvez facilement convertir vos documents HTML en PDF, XPS, DOCX, JPG, PNG, GIF, TIFF et autres. Il vous suffit de sélectionner un fichier, de choisir le format à convertir et le tour est joué. Cerise sur le gâteau, c’est entièrement gratuit !

Texte “Applications Web HTML”

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.