Jak ustawić marginesy papieru do drukowania w C
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
- Zainstaluj IronPrint poprzez NuGet:
Install-Package IronPrint - Dodaj
using IronPrint;do pliku - Utwórz obiekt
PrintSettings - Przypisz wartość
MarginsdoPaperMargins(wartości w milimetrach) - Prześlij ustawienia do
Printer.Print()wraz ze ścieżką do pliku
-
Install IronPrint with NuGet Package Manager
PM > Install-Package IronPrint -
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); -
Wdrożenie do testowania w środowisku produkcyjnym
Rozpocznij używanie IronPrint w swoim projekcie już dziś z darmową wersją próbną
Minimalny proces (5 kroków)
- Zainstaluj bibliotekę IronPrint C#
- Utwórz obiekt
PrintSettings - Przypisz wartość
MarginsdoPaperMargins - Przekaż ustawienia do
Printer.PRINT() - Uruchom projekt, aby drukować z niestandardowymi marginesami
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)
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)
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/pionowy — Margins(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)
Marginesy zerowe — Margins.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)
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)
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.
- Instrukcja dotycząca ustawień drukowania: DPI, orientacja, liczba kopii i inne.
- Dokumentacja API klasy Margins zawiera pełną dokumentację konstruktorów i pól. Referencja API klasy Printer dla wszystkich statycznych metod drukowania.
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.

