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;
// Configure a uniform 20 mm margin on all sides
PrintSettings settings = new PrintSettings
{
PaperMargins = new Margins(20),
PaperSize = PaperSize.A4
};
// Print the invoice
Printer.Print("invoice.pdf", settings);
Imports IronPrint
' Configure a uniform 20 mm margin on all sides
Dim settings As New PrintSettings With {
.PaperMargins = New Margins(20),
.PaperSize = PaperSize.A4
}
' Print the invoice
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;
// Configure per-side margins (left, top, right, bottom)
PrintSettings settings = new PrintSettings
{
PaperMargins = new Margins(10, 25, 10, 20),
PaperOrientation = PaperOrientation.Portrait
};
// Print the letterhead
Printer.Print("letterhead.pdf", settings);
Imports IronPrint
' Configure per-side margins (left, top, right, bottom)
Dim settings As New PrintSettings With {
.PaperMargins = New Margins(10, 25, 10, 20),
.PaperOrientation = PaperOrientation.Portrait
}
' Print the letterhead
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;
// Configure horizontal and vertical margin shorthand
PrintSettings settings = new PrintSettings
{
PaperMargins = new Margins(10, 20)
};
// Print the landscape report
Printer.Print("report-landscape.pdf", settings);
Imports IronPrint
' Configure horizontal and vertical margin shorthand
Dim settings As New PrintSettings With {
.PaperMargins = New Margins(10, 20)
}
' Print the landscape report
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
using IronPrint;
// Configure zero margins for edge-to-edge printing
PrintSettings borderless = new PrintSettings
{
PaperMargins = new Margins(0)
};
// Print the poster
Printer.Print("poster.png", borderless);
Imports IronPrint
' Configure zero margins for edge-to-edge printing
Dim borderless As New PrintSettings With {
.PaperMargins = New Margins(0)
}
' Print the poster
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;
// Configure full print settings with asymmetric margins
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"
};
// Print the Q4 report to the named printer
Printer.Print("Q4-report.pdf", settings);
Imports IronPrint
' Configure full print settings with asymmetric margins
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"
}
' Print the Q4 report to the named printer
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.

