Jak ustawić marginesy papieru do drukowania w C

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

Marginesy drukowania kontrolują pustą przestrzeń między treścią dokumentu a krawędziami fizycznej strony. Prawidłowe ustawienie zapobiega przecięciu tekstu, zapewnia spójność układów na różnych drukarkach i spełnia wymagania dotyczące formatowania faktur, raportów i dokumentów prawnych.

Klasa Margins IronPrint akceptuje wartości w milimetrach i oferuje trzy przeciążenia konstruktora — jednolite, poziome/pionowe oraz na stronę — dzięki czemu można sprostać każdemu wymaganiu układu w jednej linii. Omówimy każde podejście poniżej, od instalacji do drukowania z niestandardowymi marginesami.

Szybki start: Ustawianie marginesów papieru

  1. Zainstaluj IronPrint poprzez NuGet: Install-Package IronPrint
  2. Dodaj using IronPrint; do pliku
  3. Utwórz obiekt PrintSettings
  4. Przypisz wartość Margins do PaperMargins (wartości w milimetrach)
  5. Prześlij ustawienia do Printer.Print() wraz ze ścieżką do pliku
  1. Install IronPrint with NuGet Package Manager

    PM > Install-Package IronPrint
  2. Skopiuj i uruchom ten fragment kodu.

    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. Wdrożenie do testowania w środowisku produkcyjnym

    Rozpocznij używanie IronPrint w swoim projekcie już dziś z darmową wersją próbną

    arrow pointer

Jak można ustawić równe marginesy na wszystkich stronach?

Najprostszy konstruktor przyjmuje jedną liczbę całkowitą i stosuje ją jednolicie do wszystkich czterech stron. Przekazujemy wartość w milimetrach:

: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) ustawia Left, Top, Right i Bottom po 20 mm każdy. Jest to najczęściej wybierana opcja dla standardowych dokumentów biznesowych, gdzie wystarczająca jest spójność pustej przestrzeni na każdej krawędzi.

IronPrint mierzy marginesy w milimetrach, co unika zamieszania klasy System.Drawing.Printing.Margins, która używa setnych cali. Margines 25,4 mm w IronPrint jest równoważny new System.Drawing.Printing.Margins(100) — nie jest wymagana żadna konwersja po naszej stronie.

Jak ustawić różne marginesy dla każdej strony?

Gdy dokument wymaga dodatkowej przestrzeni na górze dla nagłówka lub na dole dla stopki, używamy konstruktora czteroparametrowego:

: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

Kolejność parametrów to left, top, right, bottom. Każda wartość jest niezależna, więc można tworzyć asymetryczne układy pasujące do nagłówków, stopek, krawędzi wiązania czy miejsca na otwory do perforacji. Dokumentacja API klasy Margins opisuje każde pole.

Jakie istnieją skróty dla powszechnych układów marginesów?

Klasa Margins IronPrint oferuje dwa dodatkowe konstruktory poza jednolitym i na stronę:

Skrót poziomy/pionowyMargins(int horizontal, int vertical) ustawia lewy+prawy na pierwszą wartość, a górny+dolny na drugą:

: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

Marginesy zeroweMargins.Zero usuwa wszystkie marginesy dla drukowania bez ramki:

: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

Pamiętaj, że większość fizycznych drukarek wymusza minimalny obszar drukowalny przez hardware. Ustawienie Margins.Zero wysyła instrukcje zerowych marginesów do sterownika, ale drukarka może wciąż obcinać zawartość blisko krawędzi, w zależności od swoich możliwości.

Jak połączyć marginesy z innymi ustawieniami drukowania?

PaperMargins jest jedną z właściwości w PrintSettings. Można ją połączyć z rozmiarem papieru, orientacją, DPI, kopiami, trybem w skali szarości i wyborem drukarki w jednym obiekcie konfiguracyjnym:

: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

Dla asynchronicznych przepływów pracy — WPF, MAUI lub aplikacji webowych ASP.NET — zastępujemy Printer.Print() metodą await Printer.PrintAsync(), aby uniknąć blokowania wątku UI. Ten sam obiekt PrintSettings działa z obiema metodami.

Jakie są kolejne kroki?

Omówiliśmy cztery sposoby konfigurowania marginesów drukowania za pomocą IronPrint: jednolite marginesy używając Margins(int), kontrola na stronę z Margins(int, int, int, int), skrót poziomy/pionowy Margins(int, int) oraz drukowanie bez marginesów z Margins.Zero. Każde podejście przekazywane jest do PrintSettings.PaperMargins i działa z Printer.Print() i Printer.PrintAsync().

Dla dalszej lektury, zobacz te zasoby:

Samouczki IronPrint — Drukuj Dokument dla pełnego przewodnika po drukowaniu.

Uzyskaj bezpłatną licencję próbną, aby przetestować każdą funkcję w rzeczywistym środowisku, lub zobacz opcje licencyjne, gdy będziesz gotowy do wdrożenia.

Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podrę...

Czytaj więcej
Gotowy, aby rozpocząć?
Nuget Pliki do pobrania 40,056 | Wersja: 2026.4 just released
Still Scrolling Icon

Wciąż przewijasz?

Czy chcesz szybko dowodu? PM > Install-Package IronPrint
uruchom próbkę obserwuj, jak twój dokument trafia do drukarki.