Papier-Ränder festlegen beim PDF drucken in C

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

Druckränder kontrollieren den Leerraum zwischen Ihrem Dokumentinhalt und den Rändern der physischen Seite. Wenn man sie richtig einstellt, verhindert dies abgeschnittenen Text, stellt konsistente Layouts über verschiedene Drucker sicher und erfüllt Formatierungsanforderungen für Rechnungen, Berichte und juristische Dokumente.

Die Margins Klasse von IronPrint akzeptiert Werte in Millimetern und bietet drei Konstruktor-Überladungen — einheitlich, horizontal/vertikal und je Seite — damit wir jede Layoutanforderung in einer einzigen Zeile erfüllen können. Wir gehen im Folgenden auf jeden Ansatz ein, von der Installation bis zum Drucken mit benutzerdefinierten Rändern.

Schnellstart: Papier-Ränder festlegen

  1. Installieren Sie IronPrint über NuGet: Install-Package IronPrint
  2. Fügen Sie using IronPrint; zur Datei hinzu
  3. Erstellen Sie ein PrintSettings Objekt
  4. Weisen Sie einen Margins Wert PaperMargins zu (Werte in Millimetern)
  5. Übergeben Sie die Einstellungen an Printer.Print() mit dem Dateipfad
  1. Installieren Sie IronPrint mit NuGet Package Manager

    PM > Install-Package IronPrint
  2. Kopieren Sie diesen Codeausschnitt und führen Sie ihn aus.

    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. Bereitstellen zum Testen in Ihrer Live-Umgebung

    Beginnen Sie noch heute, IronPrint in Ihrem Projekt zu verwenden, mit einer kostenlosen Testversion

    arrow pointer

Wie kann ich gleiche Ränder auf allen Seiten festlegen?

Der einfachste Konstruktor nimmt eine einzelne Ganzzahl und wendet sie einheitlich auf alle vier Seiten an. Wir übergeben den Wert in Millimetern:

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

Margins(20) setzt Left, Top, Right und Bottom jeweils auf 20 mm. Dies ist die häufigste Wahl für standardmäßige Geschäftsdokumente, bei denen konsistenter Leerraum an jedem Rand ausreicht.

IronPrint misst Ränder in Millimetern, was die Verwirrung der System.Drawing.Printing.Margins Klasse vermeidet, die Hundertstelzoll verwendet. Ein 25,4 mm Rand in IronPrint entspricht new System.Drawing.Printing.Margins(100) — keine Umrechnungsrechnung erforderlich.

Wie stelle ich unterschiedliche Ränder für jede Seite ein?

Wenn ein Dokument zusätzlichen Platz oben für einen Briefkopf oder unten für eine Fußzeile benötigt, verwenden wir den Vier-Parameter-Konstruktor:

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

Die Parameterreihenfolge ist left, top, right, bottom. Jeder Wert ist unabhängig, sodass wir asymmetrische Layouts erstellen können, die Kopfzeilen, Fußzeilen, Binde-Ränder oder Lochrand berücksichtigen. Die Margins Class API Referenz dokumentiert jedes Feld.

Welche Kurzschreiboptionen gibt es für häufige Randlayouts?

Die Margins Klasse von IronPrint bietet zwei zusätzliche Konstruktoren über die einheitlichen und je Seite-Versionen hinaus:

Horizontal / Vertikal KurzformMargins(int horizontal, int vertical) setzt links+rechts auf den ersten Wert und oben+unten auf den zweiten:

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

Null-RänderMargins.Zero entfernt alle Ränder für randloses Drucken:

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

Beachten Sie, dass die meisten physischen Drucker einen hardware-minimale Druckbereich erzwingen. Das Setzen von Margins.Zero sendet Null-Rand-Anweisungen an den Treiber, aber der Drucker könnte Inhalte in Randnähe dennoch je nach seinen Fähigkeiten abschneiden.

Wie kombiniere ich Ränder mit anderen Druckeinstellungen?

PaperMargins ist eine Eigenschaft auf PrintSettings. Wir können es mit Papiergröße, Ausrichtung, DPI, Kopien, Graustufenmodus und Druckerwahl in einem einzigen Konfigurationsobjekt kombinieren:

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

Für asynchrone Workflows — WPF, MAUI oder ASP.NET Web-Apps — ersetzen Sie Printer.Print() mit await Printer.PrintAsync(), um den UI-Thread nicht zu blockieren. Dasselbe PrintSettings Objekt funktioniert mit beiden Methoden.

Was sind meine nächsten Schritte?

Wir haben vier Möglichkeiten behandelt, Druckränder mit IronPrint zu konfigurieren: einheitliche Ränder mit Margins(int), Kontrolle je Seite mit Margins(int, int, int, int), der horizontale/vertikale Kurzform Margins(int, int) und randloses Drucken mit Margins.Zero. Jeder Ansatz wird in PrintSettings.PaperMargins eingespeist und funktioniert mit sowohl Printer.Print() als auch Printer.PrintAsync().

Für weiterführende Lektüre, erkunden Sie diese Ressourcen:

Holen Sie sich eine kostenlose Testlizenz, um alle Funktionen in einer Live-Umgebung zu testen, oder sehen Sie sich die Lizenzierungsoptionen an, wenn Sie bereit sind, zu deployen.

Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender ...

Weiterlesen
Bereit anzufangen?
Nuget Downloads 40,056 | Version: 2026.4 gerade veröffentlicht
Still Scrolling Icon

Scrollst du immer noch?

Sie brauchen schnell einen Beweis? PM > Install-Package IronPrint
Führen Sie ein Beispiel aus und beobachten Sie, wie Ihr Dokument auf dem Drucker ausgegeben wird.