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

