Comment Définir les Marges pour Imprimer un Document en C

This article was translated from English: Does it need improvement?
Translated
View the article in English

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

  1. Installez IronPrint via NuGet : Install-Package IronPrint
  2. Ajoutez using IronPrint; au fichier
  3. Créez un objet PrintSettings
  4. Assignez une valeur Margins à PaperMargins (valeurs en millimètres)
  5. Transmettez les paramètres à Printer.Print() avec le chemin du fichier
  1. Installez IronPrint avec le Gestionnaire de Packages NuGet

    PM > Install-Package IronPrint
  2. 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);
  3. Déployez pour tester sur votre environnement de production.

    Commencez à utiliser IronPrint dans votre projet dès aujourd'hui avec un essai gratuit

    arrow pointer

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)
$vbLabelText   $csharpLabel

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)
$vbLabelText   $csharpLabel

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 / VerticalMargins(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)
$vbLabelText   $csharpLabel

Marges zéroMargins.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)
$vbLabelText   $csharpLabel

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)
$vbLabelText   $csharpLabel

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 :

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.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite
Prêt à commencer?
Nuget Téléchargements 38,930 | Version : 2026.4 vient de sortir
Still Scrolling Icon

Vous faites encore défiler ?

Vous voulez une preuve rapidement ? PM > Install-Package IronPrint
exécuter un échantillon regarder votre document sortir de l'imprimante.