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;

// 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) 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;

// 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

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;

// 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

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
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

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;

// 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

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 38,948 | 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.