Comment Définir les Marges pour Imprimer un Document en C
Les marges d'impression contrôlent l'espace vide entre le contenu de votre document et les bords de la page physique. Les configurer correctement évite le texte coupé, assure des mises en page cohérentes entre les imprimantes, et satisfait les exigences de mise en forme pour les factures, rapports et documents juridiques.
La classe Margins d'IronPrint accepte les valeurs en millimètres et propose trois surcharges de constructeur — uniforme, horizontal/vertical, et par côté — afin que nous puissions répondre à toute exigence de mise en page en une seule ligne. Nous parcourons chaque approche ci-dessous, de l'installation à l'impression avec des marges personnalisées.
Démarrage rapide : Définir les marges de papier
- Installez IronPrint via NuGet :
Install-Package IronPrint - Ajoutez
using IronPrint;au fichier - Créez un objet
PrintSettings - Assignez une valeur
MarginsàPaperMargins(valeurs en millimètres) - Transmettez les paramètres à
Printer.Print()avec le chemin du fichier
-
Installez IronPrint avec le Gestionnaire de Packages NuGet
PM > Install-Package IronPrint -
Copiez et exécutez cet extrait de code.
using IronPrint; // Set 15 mm margins on all sides and print PrintSettings settings = new PrintSettings(); settings.PaperMargins = new Margins(15); Printer.Print("report.pdf", settings); -
Déployez pour tester sur votre environnement de production.
Commencez à utiliser IronPrint dans votre projet dès aujourd'hui avec un essai gratuit
Flux de travail minimal (5 étapes)
- Installez la bibliothèque d'impression C# IronPrint
- Créer un objet `PrintSettings`
- Assignez une valeur `Margins` à `PaperMargins`
- Passez les paramètres à `Printer.Print()`
- Exécutez le projet pour imprimer avec des marges personnalisées
Comment puis-je définir des marges égales sur tous les côtés ?
Le constructeur le plus simple prend un seul entier et l'applique uniformément aux quatre côtés. Nous passons la valeur en millimètres :
:path=/static-assets/print/content-code-examples/how-to/set-paper-margins/set-paper-margins-uniform-margins.cs
using IronPrint;
// 20 mm margin on every side
PrintSettings settings = new PrintSettings
{
PaperMargins = new Margins(20),
PaperSize = PaperSize.A4
};
Printer.Print("invoice.pdf", settings);
Imports IronPrint
' 20 mm margin on every side
Dim settings As New PrintSettings With {
.PaperMargins = New Margins(20),
.PaperSize = PaperSize.A4
}
Printer.Print("invoice.pdf", settings)
Margins(20) définit Left, Top, Right, et Bottom chacun à 20 mm. C'est le choix le plus courant pour les documents professionnels standard où un espace blanc cohérent sur chaque bord est suffisant.
IronPrint mesure les marges en millimètres, ce qui évite la confusion de la classe System.Drawing.Printing.Margins qui utilise des centièmes de pouce. Une marge de 25,4 mm dans IronPrint équivaut à new System.Drawing.Printing.Margins(100) — aucun calcul de conversion n'est nécessaire de notre côté.
Comment définir des marges différentes pour chaque côté ?
Lorsqu'un document nécessite plus d'espace en haut pour un en-tête ou en bas pour un pied de page, nous utilisons le constructeur à quatre paramètres :
:path=/static-assets/print/content-code-examples/how-to/set-paper-margins/set-paper-margins-per-side-margins.cs
using IronPrint;
// Left: 10 mm, Top: 25 mm, Right: 10 mm, Bottom: 20 mm
PrintSettings settings = new PrintSettings
{
PaperMargins = new Margins(10, 25, 10, 20),
PaperOrientation = PaperOrientation.Portrait
};
Printer.Print("letterhead.pdf", settings);
Imports IronPrint
' Left: 10 mm, Top: 25 mm, Right: 10 mm, Bottom: 20 mm
Dim settings As New PrintSettings With {
.PaperMargins = New Margins(10, 25, 10, 20),
.PaperOrientation = PaperOrientation.Portrait
}
Printer.Print("letterhead.pdf", settings)
L'ordre des paramètres est left, top, right, bottom. Chaque valeur est indépendante, nous pouvons donc créer des mises en page asymétriques qui s'adaptent aux en-têtes, pieds de page, bords de reliure ou espace de perforation. La référence API de la classe Margins documente chaque champ.
Quelles options abrégées existent pour les mises en page de marges courantes ?
La classe Margins d'IronPrint fournit deux constructeurs supplémentaires au-delà des versions uniforme et par côté :
Abrégé Horizontal / Vertical — Margins(int horizontal, int vertical) définit gauche+droite à la première valeur et haut+bas à la seconde :
:path=/static-assets/print/content-code-examples/how-to/set-paper-margins/set-paper-margins-shorthand-margins.cs
using IronPrint;
// 10 mm left & right, 20 mm top & bottom
PrintSettings settings = new PrintSettings
{
PaperMargins = new Margins(10, 20)
};
Printer.Print("report-landscape.pdf", settings);
Imports IronPrint
' 10 mm left & right, 20 mm top & bottom
Dim settings As New PrintSettings With {
.PaperMargins = New Margins(10, 20)
}
Printer.Print("report-landscape.pdf", settings)
Marges zéro — Margins.Zero supprime toutes les marges pour une impression sans bordure :
:path=/static-assets/print/content-code-examples/how-to/set-paper-margins/set-paper-margins-zero-margins.cs
PrintSettings borderless = new PrintSettings
{
PaperMargins = Margins.Zero
};
Printer.Print("poster.png", borderless);
Dim borderless As New PrintSettings With {
.PaperMargins = Margins.Zero
}
Printer.Print("poster.png", borderless)
Gardez à l'esprit que la plupart des imprimantes physiques appliquent une zone imprimable minimale obligatoire. Définir Margins.Zero envoie des instructions de marge zéro au pilote, mais l'imprimante peut toujours couper le contenu près des bords selon ses capacités.
Comment combiner les marges avec d'autres paramètres d'impression ?
PaperMargins est une propriété de PrintSettings. Nous pouvons le combiner avec la taille du papier, l'orientation, le DPI, les copies, le mode en niveaux de gris, et la sélection d'imprimante dans un seul objet de configuration :
:path=/static-assets/print/content-code-examples/how-to/set-paper-margins/set-paper-margins-combined-settings.cs
using IronPrint;
// Full print configuration for a quarterly report
PrintSettings settings = new PrintSettings
{
PaperMargins = new Margins(15, 20, 15, 25),
PaperSize = PaperSize.A4,
PaperOrientation = PaperOrientation.Portrait,
Dpi = 300,
NumberOfCopies = 2,
Grayscale = false,
PrinterName = "HP LaserJet Pro MFP M428"
};
Printer.Print("Q4-report.pdf", settings);
Imports IronPrint
' Full print configuration for a quarterly report
Dim settings As New PrintSettings With {
.PaperMargins = New Margins(15, 20, 15, 25),
.PaperSize = PaperSize.A4,
.PaperOrientation = PaperOrientation.Portrait,
.Dpi = 300,
.NumberOfCopies = 2,
.Grayscale = False,
.PrinterName = "HP LaserJet Pro MFP M428"
}
Printer.Print("Q4-report.pdf", settings)
Pour les flux de travail asynchrones — WPF, MAUI, ou applications web ASP.NET — remplacez Printer.Print() par await Printer.PrintAsync() pour éviter de bloquer le fil UI. Le même objet PrintSettings fonctionne avec les deux méthodes.
Quelles Sont Mes Prochaines Étapes ?
Nous avons couvert quatre façons de configurer les marges d'impression avec IronPrint : marges uniformes utilisant Margins(int), contrôle par côté avec Margins(int, int, int, int), l'abréviation horizontale/verticale Margins(int, int), et l'impression sans bordure avec Margins.Zero. Chaque approche s'intègre à PrintSettings.PaperMargins et fonctionne avec à la fois Printer.Print() et Printer.PrintAsync().
Pour des lectures supplémentaires, explorez ces ressources :
- Tutoriels IronPrint — Imprimer un document pour des présentations d'impression de bout en bout.
- Guide des Paramètres d'impression pour le DPI, l'orientation, les copies, et plus.
- Référence API de la Classe Margins pour la documentation complète des constructeurs et des champs.
- Référence API de la classe Printer pour toutes les méthodes d'impression statiques.
Obtenez une licence d'essai gratuite pour tester chaque fonctionnalité dans un environnement en direct, ou voir les options de licences lorsque vous êtes prêt à déployer.

