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.
W poniższym przykładzie kodu wykorzystano klasę PdfDocument do załadowania istniejącego pliku PDF. Do dynamicznego generowania plików PDF należy użyć 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, wywołaj metodę 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 tłumaczeniu. 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 PDF-y drukują się bardziej niezawodnie, ponieważ drukarki nie przetwarzają interaktywnych elementów.
- 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 dla archiwizacji wielu ukończonych 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
Dla zaawansowanych technik manipulacji PDF, w tym łączenia lub dzielenia PDF po spłaszczeniu, zobacz pełną 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
Co oznacza spłaszczenie PDF?
Spłaszczenie PDF konwertuje wszystkie interaktywne pola formularzy, takie jak pola wyboru, pola tekstowe i przyciski radiowe, na statyczną, nieedytowalną zawartość. IronPDF oferuje tę funkcjonalność, aby zapewnić integralność dokumentu i zapobiec dalszym modyfikacjom.
Jak spłaszczyć PDF w C#?
Dzięki IronPDF możesz spłaszczyć PDF w jednej linii kodu: IronPdf.PdfDocument.FromFile("input.pdf").Flatten().SaveAs("flattened.pdf"). To ładuje PDF, usuwa wszystkie interaktywne elementy i zapisuje zabezpieczony dokument.
Czy mogę spłaszczyć określone strony zamiast całego dokumentu?
Tak, IronPDF pozwala na spłaszczenie określonych stron przy użyciu metody FlattenPagesRange. Na przykład pdf.FlattenPagesRange(0, 2) spłaszczy tylko strony 1-3 twojego dokumentu, pozostawiając inne strony interaktywne.
Jakie typy pól formularzy można spłaszczyć?
IronPDF może spłaszczać wszystkie interaktywne widżety, w tym przyciski radiowe, pola wyboru, pola tekstowe, listy rozwijane oraz dowolne inne wypełnialne elementy formularzy, przekształcając je w trwałą statyczną zawartość.
Czy mogę wypełniać pola formularzy przed spłaszczeniem PDF?
Tak, IronPDF pozwala wypełniać pola formularzy przed spłaszczeniem. Możesz ustawić wartości takie jak pdf.Form.Fields[0].Value = "John Doe" przed wywołaniem metody Flatten, aby stworzyć ukończony, nieedytowalny dokument.
Jakiego silnika renderowania używa proces spłaszczania PDF?
IronPDF używa silnika renderowania Chrome, aby zapewnić dokładne renderowanie złożonych formularzy przed spłaszczeniem, zachowując integralność wizualną twoich dokumentów w całym procesie.
Dlaczego musiałbym spłaszczać dokument PDF?
Spłaszczenie plików PDF z IronPDF jest niezbędne dla bezpieczeństwa, celów archiwalnych, dokumentów prawnych lub w jakichkolwiek sytuacjach wymagających trwałego zachowania dokumentów, gdzie konieczne jest uniemożliwienie dalszych modyfikacji danych formularza.

