Spłaszczanie plików PDF w języku C
IronPDF spłaszcza dokumenty PDF w języku C# za pomocą jednej linii kodu, konwertując interaktywne pola formularzy na treść statyczną, aby zapobiec dalszym modyfikacjom i zapewnić integralność dokumentu.
Dokumenty PDF często zawierają interaktywne formularze z elementami do wypełnienia, takimi jak przyciski opcji, pola wyboru, pola tekstowe i listy. Aby uniemożliwić edycję tych dokumentów ze względów bezpieczeństwa lub archiwizacji, należy spłaszczyć plik PDF. IronPDF zapewnia tę funkcjonalność za pomocą zaledwie jednej linii kodu. Ta funkcja jest niezbędna podczas pracy z formularzami PDF w aplikacjach biznesowych, dokumentach prawnych lub w każdej sytuacji wymagającej trwałego zachowania dokumentów.
Szybki start: Spłaszcz plik PDF w jednym wierszu
Spłaszczaj dokumenty PDF za pomocą IronPDF, aby usunąć wszelką interaktywność i utworzyć trwałą, nieedytowalną treść. Ten jednowierszowy kod w języku C# ładuje istniejący plik PDF, usuwa wszystkie elementy do wypełnienia i zapisuje zabezpieczony dokument.
-
Install IronPDF with NuGet Package Manager
PM > Install-Package IronPdf -
Skopiuj i uruchom ten fragment kodu.
IronPdf.PdfDocument.FromFile("input.pdf").Flatten().SaveAs("flattened.pdf"); -
Wdrożenie do testowania w środowisku produkcyjnym
Rozpocznij używanie IronPDF w swoim projekcie już dziś z darmową wersją próbną
Minimalny proces (5 kroków)
- Zainstaluj IronPDF z menedżera pakietów NuGet
- Wczytaj istniejący plik PDF lub utwórz nowy na podstawie kodu HTML
- Wywołaj metodę
Flatten - Zapisz spłaszczony dokument PDF
- Sprawdź, czy pola formularza zostały usunięte
Jak spłaszczyć dokument PDF w języku C#?
Po zainstalowaniu IronPDF można spłaszczyć pliki PDF za pomocą jednej linii kodu. Proces ten działa z plikami PDF utworzonymi z plików HTML, ciągów znaków HTML lub istniejących dokumentów PDF.
Przyklad kodu ponizej uzywa klasy PdfDocument do zaladowania istniejacego pliku PDF. Do dynamicznego generowania PDF, uzyj klasy ChromePdfRenderer. Silnik renderujący IronPDF dla przeglądarki Chrome zapewnia dokładne renderowanie złożonych formularzy przed ich spłaszczeniem.
Aby spłaszczyć plik PDF, wywolaj metode Flatten. Powoduje to usunięcie wszystkich interaktywnych elementów, w tym przycisków opcji, pól wyboru i pól tekstowych, co sprawia, że dokument staje się całkowicie nieedytowalny.
:path=/static-assets/pdf/content-code-examples/how-to/pdf-image-flatten-csharp-flatten-pdf.cs
using IronPdf;
// Select the desired PDF File
PdfDocument pdf = PdfDocument.FromFile("before.pdf");
// Flatten the pdf
pdf.Flatten();
// Save as a new file
pdf.SaveAs("after_flatten.pdf");
using IronPdf;
// Select the desired PDF File
PdfDocument pdf = PdfDocument.FromFile("before.pdf");
// Flatten the pdf
pdf.Flatten();
// Save as a new file
pdf.SaveAs("after_flatten.pdf");
using IronPdf;
// Select the desired PDF File
PdfDocument pdf = PdfDocument.FromFile("before.pdf");
// Flatten the pdf
pdf.Flatten();
// Save as a new file
pdf.SaveAs("after_flatten.pdf");
Imports IronPdf
' Select the desired PDF File
Dim pdf As PdfDocument = PdfDocument.FromFile("before.pdf")
' Flatten the pdf
pdf.Flatten()
' Save as a new file
pdf.SaveAs("after_flatten.pdf")
W przypadku złożonych scenariuszy można spłaszczyć określone strony lub manipulować danymi formularza przed spłaszczeniem:
using IronPdf;
// Load a PDF with fillable forms
PdfDocument pdf = PdfDocument.FromFile("form-document.pdf");
// Optionally, pre-fill form fields before flattening
pdf.Form.Fields[0].Value = "John Doe";
pdf.Form.Fields[1].Value = "john@example.com";
// Flatten only specific pages (pages 1-3)
pdf.FlattenPagesRange(0, 2);
// Or flatten the entire document
pdf.Flatten();
// Save the result
pdf.SaveAs("flattened-form.pdf");
using IronPdf;
// Load a PDF with fillable forms
PdfDocument pdf = PdfDocument.FromFile("form-document.pdf");
// Optionally, pre-fill form fields before flattening
pdf.Form.Fields[0].Value = "John Doe";
pdf.Form.Fields[1].Value = "john@example.com";
// Flatten only specific pages (pages 1-3)
pdf.FlattenPagesRange(0, 2);
// Or flatten the entire document
pdf.Flatten();
// Save the result
pdf.SaveAs("flattened-form.pdf");
Imports IronPdf
' Load a PDF with fillable forms
Dim pdf As PdfDocument = PdfDocument.FromFile("form-document.pdf")
' Optionally, pre-fill form fields before flattening
pdf.Form.Fields(0).Value = "John Doe"
pdf.Form.Fields(1).Value = "john@example.com"
' Flatten only specific pages (pages 1-3)
pdf.FlattenPagesRange(0, 2)
' Or flatten the entire document
pdf.Flatten()
' Save the result
pdf.SaveAs("flattened-form.pdf")
Jak sprawdzić, czy plik PDF został spłaszczony?
Poniższy wynik pokazuje stan przed i po spłaszczeniu. Pierwszy plik PDF zawiera edytowalne pola formularza. Po zastosowaniu metody flatten w IronPDF dokument staje się całkowicie nieedytowalny. Ten kod działa w każdym projekcie .NET, w tym w aplikacjach ASP.NET i na serwerach Blazor.
Flatten.Aby sprawdzić, czy spłaszczenie przebiegło pomyślnie, sprawdź liczbę pól formularza:
using IronPdf;
// Load the flattened PDF
PdfDocument flattenedPdf = PdfDocument.FromFile("flattened.pdf");
// Check if any form fields exist
if (flattenedPdf.Form.Fields.Count == 0)
{
Console.WriteLine("PDF has been successfully flattened - no interactive fields remain.");
}
else
{
Console.WriteLine($"Warning: {flattenedPdf.Form.Fields.Count} form fields still exist.");
}
using IronPdf;
// Load the flattened PDF
PdfDocument flattenedPdf = PdfDocument.FromFile("flattened.pdf");
// Check if any form fields exist
if (flattenedPdf.Form.Fields.Count == 0)
{
Console.WriteLine("PDF has been successfully flattened - no interactive fields remain.");
}
else
{
Console.WriteLine($"Warning: {flattenedPdf.Form.Fields.Count} form fields still exist.");
}
Imports IronPdf
' Load the flattened PDF
Dim flattenedPdf As PdfDocument = PdfDocument.FromFile("flattened.pdf")
' Check if any form fields exist
If flattenedPdf.Form.Fields.Count = 0 Then
Console.WriteLine("PDF has been successfully flattened - no interactive fields remain.")
Else
Console.WriteLine($"Warning: {flattenedPdf.Form.Fields.Count} form fields still exist.")
End If
Co dzieje się z polami formularza po spłaszczeniu?
Podczas spłaszczania dokumentu PDF wszystkie interaktywne elementy formularza ulegają trwałej transformacji. Pola formularza przekształcają się w statyczną zawartość strony, stając się częścią warstwy wizualnej dokumentu:
- Pola tekstowe stają się zwykłym tekstem na stronie
- Pola wyboru i przyciski opcji stają się statycznymi obrazkami pokazującymi ich stan wyboru
- Menu rozwijane wyświetlają tylko wybraną wartość jako zwykły tekst
- Podpisy cyfrowe są zachowane wizualnie, ale tracą walidację kryptograficzną
Ten proces jest nieodwracalny. Zachowaj kopię oryginalnego interaktywnego pliku PDF, jeśli w przyszłości będziesz potrzebować możliwości edycji. W przypadku dokumentów wymagających zarówno bezpieczeństwa, jak i możliwości edycji, należy używać uprawnień i haseł PDF zamiast spłaszczania.
Kiedy należy spłaszczyć dokumenty PDF?
Spłaszczanie plików PDF jest niezbędne w następujących scenariuszach biznesowych:
-
Archiwizacja dokumentów prawnych: Spłaszczaj umowy i porozumienia po podpisaniu, aby zapobiec zmianom treści i zachować integralność prawną.
-
Dystrybucja raportów: Przed dystrybucją należy spłaszczyć raporty finansowe i arkusze danych z polami obliczeniowymi, aby zapobiec manipulacjom.
-
Przetwarzanie przesłanych formularzy: Tworzenie trwałych zapisów poprzez spłaszczanie plików PDF po wypełnieniu przez użytkowników formularzy online.
-
Optymalizacja drukowania: Spłaszczone pliki PDF drukują się bardziej niezawodnie, ponieważ drukarki nie przetwarzają elementów interaktywnych.
- Zmniejszenie rozmiaru pliku: Spłaszczenie może zmniejszyć rozmiar pliku poprzez usunięcie struktur danych pól formularza podczas kompresji pliku PDF.
Oto przykład przetwarzania wsadowego służący do archiwizacji wielu wypełnionych formularzy:
using IronPdf;
using System.IO;
public class BatchPdfFlattener
{
public static void FlattenAllPdfsInDirectory(string sourceDir, string outputDir)
{
// Ensure output directory exists
Directory.CreateDirectory(outputDir);
// Get all PDF files in source directory
string[] pdfFiles = Directory.GetFiles(sourceDir, "*.pdf");
foreach (string pdfFile in pdfFiles)
{
try
{
// Load the PDF
PdfDocument pdf = PdfDocument.FromFile(pdfFile);
// Flatten the document
pdf.Flatten();
// Save to output directory with "_flattened" suffix
string fileName = Path.GetFileNameWithoutExtension(pdfFile);
string outputPath = Path.Combine(outputDir, $"{fileName}_flattened.pdf");
pdf.SaveAs(outputPath);
Console.WriteLine($"Flattened: {fileName}");
}
catch (Exception ex)
{
Console.WriteLine($"Error processing {pdfFile}: {ex.Message}");
}
}
}
}
using IronPdf;
using System.IO;
public class BatchPdfFlattener
{
public static void FlattenAllPdfsInDirectory(string sourceDir, string outputDir)
{
// Ensure output directory exists
Directory.CreateDirectory(outputDir);
// Get all PDF files in source directory
string[] pdfFiles = Directory.GetFiles(sourceDir, "*.pdf");
foreach (string pdfFile in pdfFiles)
{
try
{
// Load the PDF
PdfDocument pdf = PdfDocument.FromFile(pdfFile);
// Flatten the document
pdf.Flatten();
// Save to output directory with "_flattened" suffix
string fileName = Path.GetFileNameWithoutExtension(pdfFile);
string outputPath = Path.Combine(outputDir, $"{fileName}_flattened.pdf");
pdf.SaveAs(outputPath);
Console.WriteLine($"Flattened: {fileName}");
}
catch (Exception ex)
{
Console.WriteLine($"Error processing {pdfFile}: {ex.Message}");
}
}
}
}
Imports IronPdf
Imports System.IO
Public Class BatchPdfFlattener
Public Shared Sub FlattenAllPdfsInDirectory(sourceDir As String, outputDir As String)
' Ensure output directory exists
Directory.CreateDirectory(outputDir)
' Get all PDF files in source directory
Dim pdfFiles As String() = Directory.GetFiles(sourceDir, "*.pdf")
For Each pdfFile As String In pdfFiles
Try
' Load the PDF
Dim pdf As PdfDocument = PdfDocument.FromFile(pdfFile)
' Flatten the document
pdf.Flatten()
' Save to output directory with "_flattened" suffix
Dim fileName As String = Path.GetFileNameWithoutExtension(pdfFile)
Dim outputPath As String = Path.Combine(outputDir, $"{fileName}_flattened.pdf")
pdf.SaveAs(outputPath)
Console.WriteLine($"Flattened: {fileName}")
Catch ex As Exception
Console.WriteLine($"Error processing {pdfFile}: {ex.Message}")
End Try
Next
End Sub
End Class
Aby zapoznać się z zaawansowanymi technikami obróbki plików PDF, w tym scalaniem lub dzielenie plików PDF po spłaszczeniu, zapoznaj się z obszerną dokumentacją IronPDF.
Szybki dostęp do biblioteki
Czytaj więcej Dokumentacja
Zapoznaj się z dokumentacją, aby dowiedzieć się więcej o spłaszczaniu plików PDF, ich edycji i modyfikacji oraz o innych kwestiach.
Odwiedź dokumentację IronPDFGotowy, aby sprawdzić, co jeszcze możesz zrobić? Zapoznaj się z naszą stroną z samouczkami tutaj: Dodatkowe funkcje
Często Zadawane Pytania
What does flattening a PDF mean?
Flattening a PDF converts all interactive form fields like checkboxes, text boxes, and radio buttons into static, non-editable content. IronPDF provides this functionality to ensure document integrity and prevent further modifications.
How do I flatten a PDF in C#?
With IronPDF, you can flatten a PDF in one line of code: IronPdf.PdfDocument.FromFile("input.pdf").Flatten().SaveAs("flattened.pdf"). This loads the PDF, removes all interactive elements, and saves the secured document.
Can I flatten specific pages instead of the entire document?
Yes, IronPDF allows you to flatten specific pages using the FlattenPagesRange method. For example, pdf.FlattenPagesRange(0, 2) will flatten only pages 1-3 of your document while leaving other pages interactive.
What types of form fields can be flattened?
IronPDF can flatten all interactive widgets including radio buttons, checkboxes, text fields, dropdown lists, and any other fillable form elements, converting them to permanent static content.
Can I fill form fields before flattening the PDF?
Yes, IronPDF allows you to pre-fill form fields before flattening. You can set values like pdf.Form.Fields[0].Value = "John Doe" before calling the Flatten method to create a completed, non-editable document.
What rendering engine does the PDF flattening process use?
IronPDF uses a Chrome rendering engine to ensure accurate rendering of complex forms before flattening, maintaining the visual integrity of your documents throughout the process.
Why would I need to flatten a PDF document?
Flattening PDFs with IronPDF is essential for security, archival purposes, legal documents, or any scenario requiring permanent document preservation where you need to prevent further modifications to form data.

