Jak spłaszczyć pliki PDF przed drukowaniem w języku C
Klasa PrintSettings w IronPrint zawiera właściwość Flatten, która scala wszystkie interaktywne pola formularza, adnotacje i warstwy obrazów w statyczną zawartość w czasie drukowania. Ustawiamy Flatten = true na naszym obiekcie PrintSettings, a IronPrint zajmuje się resztą — nie jest wymagana oddzielna biblioteka do manipulacji PDF ani zapis pliku pośredniego.
W niniejszym przewodniku omówiono, kiedy i jak spłaszczać pliki PDF przed drukowaniem, wraz z działającym kodem w języku C# dla przepływów pracy synchronicznych, z połączonymi ustawieniami oraz asynchronicznych.
Szybki start: Spłaszczanie plików PDF przed drukowaniem
- Zainstaluj IronPrint za pomocą NuGet:
Install-Package IronPrint - Dodaj
using IronPrint;do pliku - Utwórz obiekt
PrintSettings - Ustaw
Flattennatrue - Przekaż ustawienia do
Printer.Print()lubPrinter.PrintAsync()
-
Install IronPrint with NuGet Package Manager
-
Skopiuj i uruchom ten fragment kodu.
using IronPrint; // Flatten and print a PDF with form fields Printer.Print("form-document.pdf", new PrintSettings { Flatten = true }); -
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 - Ustaw
Flattennatrue - Przekaż ustawienia do
Printer.PRINT() - Sprawdź, czy wydruk zawiera spłaszczone pola formularza
Jak spłaszczyć plik PDF przed wydrukowaniem w języku C#?
Spłaszczamy PDF w czasie drukowania, ustawiając właściwość Flatten na true na obiekcie PrintSettings. Następnie przekazujemy ten obiekt do dowolnej metody drukowania IronPrint.
:path=/static-assets/print/content-code-examples/how-to/flatten-pdfs/flatten-pdfs-flatten-basic.cs
using IronPrint;
// Configure print settings with flattening enabled
PrintSettings settings = new PrintSettings();
settings.Flatten = true;
// Print the flattened document
Printer.Print("application-form.pdf", settings);
Imports IronPrint
' Configure print settings with flattening enabled
Dim settings As New PrintSettings()
settings.Flatten = True
' Print the flattened document
Printer.Print("application-form.pdf", settings)
Najpierw tworzona jest instancja PrintSettings, która inicjalizuje się z wartościami domyślnymi — w tym Flatten = false. Następnie ustawiamy Flatten na true, Printer.Print Flatten co informuje IronPrint, aby scalić wszystkie interaktywne elementy w zawartość strony przed wysłaniem zadania do drukarki. Gdy wywołujemy [Print()], drukarka otrzymuje w pełni statyczną wersję dokumentu.
Spłaszczanie odbywa się w pamięci podczas procesu drukowania. Oryginalny plik PDF pozostaje interaktywny na dysku, więc użytkownicy końcowi nadal mogą wypełniać i ponownie przesyłać formularz. Jest to istotna różnica: dostosowujemy plik do druku, a nie trwałe zmieniamy plik źródłowy.
Właściwość Flatten została wprowadzona w IronPrint w wersji 2024.7.2 i jest dostępna we wszystkich kolejnych wersjach.
Kiedy należy spłaszczyć plik PDF przed drukowaniem?
Spłaszczanie jest najbardziej przydatne, gdy plik PDF zawiera elementy interaktywne, które mogą nie wyświetlać się poprawnie na papierze. Najczęstsze scenariusze obejmują:
Pliki PDF z polami formularza do wypełnienia. Pola tekstowe, pola wyboru, przyciski opcji i menu rozwijane są renderowane przez przeglądarkę PDF — nie są osadzone w treści strony. Niektóre sterowniki drukarek całkowicie pomijają te warstwy, co powoduje pojawienie się pustych pól na wydrukowanej stronie. Spłaszczenie wymusza umieszczenie wartości pól w warstwie statycznej strony.
Pliki PDF z adnotacjami lub nakładkami. Komentarze, karteczki samoprzylepne, stemple i adnotacje znajdują się na oddzielnej warstwie. Spłaszczenie łączy je z widoczną treścią, dzięki czemu pojawiają się one na wydruku.
Pliki PDF z obrazami osadzonymi na różnych warstwach. Dokumenty złożone z wielu źródeł mogą zawierać obrazy na różnych warstwach z. Spłaszczanie kompozytów do jednej warstwy, zapobiegające brakom lub niewłaściwemu wyrównaniu obrazów.
Gdy plik PDF zawiera wyłącznie statyczny tekst i obrazy — na przykład raport wygenerowany z kodu HTML lub zeskanowany dokument — spłaszczenie nie ma żadnego wpływu. W takich przypadkach możemy pozostawić Flatten na jego domyślnej wartości false Flatten = true PaperSize.A4 PaperOrientation.Portrait Dpi PaperMargins, aby uniknąć zbędnego obciążenia przetwarzania.
Jak połączyć opcję Flatten z innymi ustawieniami drukowania?
Klasa PrintSettings udostępnia kilka właściwości obok Flatten. Możemy skonfigurować rozmiar papieru, orientację, rozdzielczość (DPI), marginesy i liczbę kopii wraz z płaskim drukowaniem — wszystko w jednym zadaniu drukowania.
:path=/static-assets/print/content-code-examples/how-to/flatten-pdfs/flatten-pdfs-combined-settings.cs
using IronPrint;
// Configure flatten with full print settings
PrintSettings settings = new PrintSettings
{
Flatten = true,
PaperSize = PaperSize.A4,
PaperOrientation = PaperOrientation.Portrait,
Dpi = 300,
NumberOfCopies = 2,
PaperMargins = new Margins(10, 10, 10, 10),
Grayscale = false
};
// Print the insurance claim form
Printer.Print("insurance-claim.pdf", settings);
Imports IronPrint
' Configure flatten with full print settings
Dim settings As New PrintSettings With {
.Flatten = True,
.PaperSize = PaperSize.A4,
.PaperOrientation = PaperOrientation.Portrait,
.Dpi = 300,
.NumberOfCopies = 2,
.PaperMargins = New Margins(10, 10, 10, 10),
.Grayscale = False
}
' Print the insurance claim form
Printer.Print("insurance-claim.pdf", settings)
Dla przejrzystości używamy składni inicjalizatora obiektów. EnsureFlatten zapewnia, że wszystkie dane formularza pojawiają się na wydrukowanej stronie. PaperSize i Orientation odpowiadają standardowemu formatowi formularzy biznesowych. DPI przy 300 produkuje ostre teksty na wypełnionych polach, które pierwotnie były renderowane w rozdzielczości ekranu. Margins akceptuje cztery wartości w milimetrach za pośrednictwem konstruktora Margins.
Cechy te nie są ze sobą sprzeczne. IronPrint najpierw stosuje operację spłaszczania, a następnie formatuje wynikowy dokument statyczny zgodnie z pozostałymi ustawieniami przed wysłaniem zadania do drukarki. Aby uzyskać więcej informacji na temat opcji drukowania, w tym wyboru drukarki i konfiguracji podajnika, zapoznaj się z pełnym przewodnikiem konfiguracji.
Jak spłaszczyć i drukować asynchronicznie?
W aplikacjach, w których blokowanie głównego wątku jest niedopuszczalne — takich jak aplikacje WPF lub WinForms — używamy metody Printer.PrintAsync. Metoda akceptuje ten sam obiekt PrintSettings i zwraca Task.
:path=/static-assets/print/content-code-examples/how-to/flatten-pdfs/flatten-pdfs-async-flatten.cs
using IronPrint;
using System.Threading.Tasks;
public class FormPrinter
{
public async Task PrintFlattenedFormAsync(string pdfPath)
{
// Configure flatten with Letter paper at 300 DPI
PrintSettings settings = new PrintSettings
{
Flatten = true,
PaperSize = PaperSize.Letter,
Dpi = 300
};
// Print asynchronously
await Printer.PrintAsync(pdfPath, settings);
}
}
Imports IronPrint
Imports System.Threading.Tasks
Public Class FormPrinter
Public Async Function PrintFlattenedFormAsync(pdfPath As String) As Task
' Configure flatten with Letter paper at 300 DPI
Dim settings As New PrintSettings With {
.Flatten = True,
.PaperSize = PaperSize.Letter,
.Dpi = 300
}
' Print asynchronously
Await Printer.PrintAsync(pdfPath, settings)
End Function
End Class
Ten wzorzec oparty na klasach jest przydatny, gdy logika drukowania znajduje się w warstwie usług. Konfigurujemy Flatten = true wraz z PaperSize.Letter dla formularzy w formacie amerykańskim. Słowo kluczowe await zwalnia wątek wywołujący, podczas gdy IronPrint przetwarza operację spłaszczania i wysyła zadanie do drukowania.
Asynchroniczne metody IronPrint — w tym PrintAsync i ShowPrintDialogAsync — wszystkich honorują ustawienie Flatten w taki sam sposób, jak ich synchroniczne odpowiedniki await PrintSettings.Flatten Flatten = true. Niezależnie od tego, czy drukujemy w tle, czy za pomocą okna dialogowego PRINT, zachowanie spłaszczania pozostaje spójne.
Jakie są moje kolejne kroki?
Omówiliśmy, jak spłaszczać pliki PDF przed wydrukiem w C# za pomocą właściwości PrintSettings w IronPrint. Kluczowym przesłaniem jest: ustaw Flatten, aby scalić interaktywne pola formularza, adnotacje i warstwy obrazów w statyczną zawartość w czasie drukowania — bez modyfikacji pliku źródłowego.
Aby kontynuować pracę nad tym:
- Zapoznaj się z pełnym przewodnikiem po konfiguracji ustawień drukowania dla wszystkich dostępnych właściwości
- Zobacz przykłady kodu ustawień drukowania, aby zapoznać się z typowymi wzorcami
- Zapoznaj się z dokumentacją API PrintSettings, aby uzyskać szczegółowe informacje na temat właściwości i wartości domyślnych
- Sprawdź dziennik zmian IronPrint, aby zapoznać się z najnowszymi funkcjami i ulepszeniami
Rozpocznij bezpłatny 30-dniowy okres próbny, aby przetestować spłaszczanie plików PDF we własnych procesach drukowania, lub zapoznaj się z opcjami licencyjnymi do użytku produkcyjnego.
Często Zadawane Pytania
Jaki jest cel spłaszczania PDF przed drukowaniem?
Spłaszczanie PDF gwarantuje, że wszystkie pola formularzy, adnotacje i obrazy są scalone w jedną warstwę, co zapewnia dokładne renderowanie i drukowanie.
Jak mogę spłaszczyć PDF za pomocą C#?
Możesz spłaszczyć PDF w C# używając biblioteki IronPrint. To polega na ustawieniu wartości logicznej w PrintSettings, aby upewnić się, że wszystkie elementy są odpowiednio spłaszczone w trakcie procesu drukowania.
Dlaczego pola formularzy i adnotacje muszą być spłaszczone?
Pola formularzy i adnotacje muszą być spłaszczone, aby uniknąć edytowalności lub nieprawidłowego wyrównania interaktywnych elementów po wydrukowaniu, co gwarantuje spójny wynik.
Co się stanie, jeśli PDF nie zostanie spłaszczony przed drukowaniem?
Jeśli PDF nie zostanie spłaszczony, interaktywne elementy, takie jak pola formularza i adnotacje, mogą nie zostać poprawnie wydrukowane, co prowadzi do błędów lub brakujących informacji w wydrukowanym dokumencie.
Czy IronPrint wspiera spłaszczanie innych elementów PDF poza polami formularzy?
Tak, IronPrint wspiera spłaszczanie różnych elementów PDF, w tym adnotacji, obrazów i innych treści warstwy, zapewniając, że wszystko jest wydrukowane zgodnie z założeniami.
Czy można zautomatyzować proces spłaszczania w C#?
Oczywiście, korzystając z IronPrint, możesz zautomatyzować proces spłaszczania poprzez skonfigurowanie PrintSettings w swoim kodzie C#, upraszczając przepływ pracy dla przetwarzania wsadową PDF.
Czy spłaszczanie PDF może wpłynąć na jakość druku?
Spłaszczanie PDF zazwyczaj poprawia jakość druku, zapewniając, że wszystkie elementy są dokładnie renderowane i wyrównane, co zmniejsza ryzyko błędów podczas procesu drukowania.
Jaka jest rola wartości logicznej w PrintSettings przy spłaszczaniu PDF?
Wartość logiczna w PrintSettings w IronPrint jest kluczowym parametrem umożliwiającym spłaszczenie PDF, zapewniając, że wszystkie warstwy są scalone w jedną, gotową do druku formę.
Czy IronPrint wymaga dodatkowego oprogramowania do spłaszczania PDF?
Nie jest wymagane dodatkowe oprogramowanie. IronPrint jest samodzielną biblioteką, która zapewnia wszelkie niezbędne funkcje do spłaszczania PDF bezpośrednio w twoich aplikacjach C#.
Jak IronPrint zapewnia kompatybilność z różnymi wersjami PDF?
IronPrint jest zaprojektowany do współpracy z różnymi wersjami PDF, zapewniając, że proces spłaszczania zachowuje integralność i formatowanie oryginalnego dokumentu.

