Le fait de convertir HTML en PDF est courant, des factures aux rapports, mais les paramètres par défaut ne correspondent rarement à vos besoins en matière de marque et d’impression. Aspose.HTML for .NET,Vous pouvez contrôler avec précision Page de taille, Marge, Orientation,et Les règles CSS Pour produire des PDFs professionnels et cohérents, ce guide montre une configuration propre et répétitive et inclut un échantillon complet de C#.
Traitement des clés
- Utilisez
Converter.ConvertHTMLavecPdfSaveOptionsPour une conversion robuste HTML → PDF. - Configurez
PageSetup.AnyPagedeux séances taille et Marge (A4/A3/custom) : sélectionnez un portrait ou un paysage par taille. - appliquer
options.Css.MediaType(Prince vs écranPour respecter le bon CSS. - Générer plusieurs variantes (p. ex. portrait A4 + paysage A3) du même HTML pour différents publics.
Guide étape par étape
1) Set up the project
Installez le package NuGet et créez un projet de console (étapes dans Comment courir).
2) Load HTML content
Télécharger un fichier existant ou créer un HTMLDocument de la chaîne. fournir une Base URI pour résoudre les CSS relatifs, les images et les polices.
3) Configure page geometry and media
Utilisez PdfSaveOptions.PageSetup.AnyPage Définir taille et Marge,et set Css.MediaType 2 Objectif @media print règles quand il le faut.
4) Convert to PDF
appelle Converter.ConvertHTML(document, options, path) Pour écrire le fichier PDF.
Exemple complet (Compilable C#)
using System;
using System.IO;
using Aspose.Html;
using Aspose.Html.Converters;
using Aspose.Html.Saving; // PdfSaveOptions
using Aspose.Html.Rendering; // MediaType
using Aspose.Html.Drawing; // Length, Size, Margin, Page
namespace HtmlToPdfCustomization
{
internal static class Program
{
// How to run:
// 1) dotnet new console -n HtmlToPdfCustomization
// 2) cd HtmlToPdfCustomization
// 3) dotnet add package Aspose.HTML
// 4) Replace Program.cs with this file's contents
// 5) dotnet run -- "path-to-input.html" (optional)
private static void Main(string[] args)
{
string outDir = Path.Combine(Directory.GetCurrentDirectory(), "out");
Directory.CreateDirectory(outDir);
// Load HTML from file if provided; otherwise, use inline HTML
HTMLDocument document;
if (args.Length > 0 && File.Exists(args[0]))
{
document = new HTMLDocument(args[0]);
}
else
{
string html = "<!DOCTYPE html>" +
"<html><head><meta charset=\\\"utf-8\\\">" +
"<title>HTML to PDF (Aspose.HTML)</title>" +
"<style>body{font-family:Arial,Helvetica,sans-serif;margin:24px}" +
".lead{color:#444} table{width:100%;border-collapse:collapse}" +
"th,td{border:1px solid #ddd;padding:6px 8px;text-align:left}" +
"@media print{body{font-size:12pt}.lead{color:#000}}</style>" +
"</head><body>" +
"<h1>Order Summary</h1>" +
"<p class=\\\"lead\\\">This PDF respects print CSS and custom page settings.</p>" +
"<table><tr><th>Item</th><th>Qty</th><th>Price</th></tr>" +
"<tr><td>Widget A</td><td>3</td><td>$12.00</td></tr>" +
"<tr><td>Widget B</td><td>2</td><td>$9.50</td></tr></table>" +
"</body></html>";
document = new HTMLDocument(html, ".");
}
using (document)
{
var mm = Length.FromMillimeters;
// Variant 1: A4 portrait with 12.7 mm margins, using print CSS
var a4 = new PdfSaveOptions();
a4.Css.MediaType = MediaType.Print;
a4.PageSetup.AnyPage = new Page(
new Size(mm(210), mm(297)), // A4
new Margin(mm(12.7), mm(12.7), mm(12.7), mm(12.7))
);
string a4Path = Path.Combine(outDir, "order-a4.pdf");
Converter.ConvertHTML(document, a4, a4Path);
Console.WriteLine($"Saved: {a4Path}");
// Variant 2: A3 landscape with tighter margins, using screen CSS
var a3Landscape = new PdfSaveOptions();
a3Landscape.Css.MediaType = MediaType.Screen;
a3Landscape.PageSetup.AnyPage = new Page(
new Size(mm(420), mm(297)), // A3 landscape
new Margin(mm(10), mm(10), mm(10), mm(10))
);
string a3Path = Path.Combine(outDir, "order-a3-landscape.pdf");
Converter.ConvertHTML(document, a3Landscape, a3Path);
Console.WriteLine($"Saved: {a3Path}");
// Variant 3: Custom 6 x 9 inches trim with narrow margins (print CSS)
var custom = new PdfSaveOptions();
custom.Css.MediaType = MediaType.Print;
custom.PageSetup.AnyPage = new Page(
new Size(Length.FromInches(6), Length.FromInches(9)),
new Margin(mm(5), mm(5), mm(5), mm(5))
);
string customPath = Path.Combine(outDir, "order-6x9.pdf");
Converter.ConvertHTML(document, custom, customPath);
Console.WriteLine($"Saved: {customPath}");
}
}
}
}
Ce que fait ce code
- Loisirs HTML à partir d’un fichier ou d’une chaîne de mémoire avec une URI de base.
- Configuration - le
PdfSaveOptionspour le portrait A4, le paysage A3 et une taille de décoration personnalisée de 6×9 pouces. - applique - le
MediaType.PrintouMediaType.ScreenPour respecter vos règles de CSS. - Exportations 3 fiches PDF en une
out/Le Follet.
Dépannage & Conseils
- Mauvais styles:• TOGGLE
options.Css.MediaTypeentrePrintetScreenPour correspondre à votre style. - Contenu cliqué: augmenter la taille de la page ou les marges; les formats plus larges aident les grandes tables.
- Fontaines manquantes: assurez-vous que les polices sont disponibles pour le rendu ou intégrées via
@font-face. - Performance: simplifier le DOM / CSS lourd; préférez les actifs statiques cachés.
FAQ
Q1.Comment puis-je définir la taille et les marges de la page? Utilisez PdfSaveOptions.PageSetup.AnyPage = new Page(Size, Margin) Avec des unités de Length (en millimètres ou en pouces).
Q2.Puis-je forcer les styles d’impression? Oui, le set options.Css.MediaType = MediaType.Print ainsi @media print règles s’appliquent .
Q3. comment faire pour rendre les pages de paysage? Créer un paysage Size (par exemple, A3 420 × 297 mm) lors de la création du Page.
Q4.Pouvons-nous exporter plusieurs variantes à partir d’un seul HTML? Créer séparément PdfSaveOptions Objets (diverses Css.MediaType et les tailles) et appel Converter.ConvertHTML Pour chacun !.
Q5 : Ai-je besoin d’un moteur de navigateur installé ? Non. Aspose.HTML rend le côté serveur sans navigateur externe.
1 du présent règlement
Utiliser PdfSaveOptions Avec CSS, vous pouvez créer des PDF polisés sur mesure pour les besoins d’impression, d’archivage ou d’exécution.Commencez par le portrait A4 pour les documents généraux, ajoutez un paysage A3 pour les amples dispositions et conservez une taille de décoration personnalisée pour les brochures ou les rapports.
More in this category
- Aspose.HTML: Styling HTML for Image Rendering
- HTML .NET : Options de sortie PDF avancées
- Convertir HTML à des images de haute qualité avec Aspose.HTML pour .NET
- Convertir HTML à l'image avec Aspose.HTML pour .NET: Un guide étape par étabe
- HTML à la conversion d'image : un guide complet avec des exemples