Comment aplatir des PDFs dans IronPDF C
IronPDF aplatit les documents PDF en C# avec la méthode Flatten(), en convertissant les champs de formulaire interactifs en contenu statique afin que le document ne puisse plus être modifié.
Les documents PDF comprennent souvent des formulaires interactifs avec des widgets remplissables tels que des boutons radio, des cases à cocher, des zones de texte et des listes. Pour rendre ces documents non modifiables à des fins de sécurité ou d'archivage, vous aplatissez le fichier PDF. Cela s'applique lors de l'utilisation de formulaires PDF dans des applications professionnelles, des documents légaux, ou tout scénario nécessitant un enregistrement permanent.
Démarrage rapide : Aplatissez votre PDF en quelques lignes
Aplatissez les documents PDF en utilisant IronPDF pour supprimer toute interactivité et créer du contenu permanent et non modifiable. Cet extrait C# charge un PDF existant, supprime tous les widgets remplissables et enregistre le document sécurisé.
-
Installez IronPDF avec le Gestionnaire de Packages NuGet
-
Copiez et exécutez cet extrait de code.
var pdf = IronPdf.PdfDocument.FromFile("input.pdf"); pdf.Flatten(); pdf.SaveAs("flattened.pdf"); -
Déployez pour tester sur votre environnement de production.
Commencez à utiliser IronPDF dans votre projet dès aujourd'hui avec un essai gratuit
Flux de travail minimal (5 étapes)
- Installer IronPDF à partir du Package Manager NuGet
- Chargement d'un PDF existant ou création d'un nouveau PDF à partir de HTML
- Appeler la méthode
Flatten(aplatir) - Enregistrer le document PDF aplati
- Vérifier que les champs du formulaire sont supprimés
Comment aplatir un document PDF en C#?
Une fois IronPDF installé, vous pouvez aplatir des fichiers PDF avec un seul appel de méthode. Le processus fonctionne sur les documents PDF existants et sur les PDFs que vous générez à partir de fichiers HTML avant l'aplatissement.
L'exemple de code ci-dessous utilise la classe PdfDocument pour charger un PDF existant. Pour une génération dynamique de PDF, rendez le formulaire avec la classe ChromePdfRenderer avant de l'aplatir.
Pour aplatir un fichier PDF, appelez la méthode Flatten. Cela supprime tous les widgets interactifs, y compris les boutons radio, les cases à cocher, et les champs de texte, rendant le document non modifiable.
Entrée
: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");
Imports IronPdf
' Select the desired PDF File
Private pdf As PdfDocument = PdfDocument.FromFile("before.pdf")
' Flatten the pdf
pdf.Flatten()
' Save as a new file
pdf.SaveAs("after_flatten.pdf")
Sortie
Pour des scénarios complexes, aplatissez des pages spécifiques ou définissez les données de formulaire avant l'aplatissement. Passez une liste d'index de pages basées sur zéro pour n'aplatir que ces pages :
:path=/static-assets/pdf/content-code-examples/how-to/pdf-image-flatten-csharp-3.cs
using IronPdf;
// Load a PDF with fillable forms
PdfDocument pdf = PdfDocument.FromFile("form-document.pdf");
// Optionally, pre-fill form fields by name before flattening
pdf.Form.FindFormField("name").Value = "John Doe";
pdf.Form.FindFormField("email").Value = "john@example.com";
// Flatten only pages 1-3, passing their zero-based indexes
pdf.Flatten(new[] { 0, 1, 2 });
// 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 by name before flattening
pdf.Form.FindFormField("name").Value = "John Doe"
pdf.Form.FindFormField("email").Value = "john@example.com"
' Flatten only pages 1-3, passing their zero-based indexes
pdf.Flatten(New Integer() {0, 1, 2})
' Save the result
pdf.SaveAs("flattened-form.pdf")
Comment puis-je vérifier que le PDF est aplati ?
Le résultat ci-dessous montre les états avant et après la traduction. Le premier PDF contient des champs de formulaire modifiables. Après l'exécution de la méthode d'aplatissement, le document devient non modifiable. Ce code fonctionne dans n'importe quel projet .NET, y compris les applications Blazor.
Flatten.Pour vérifier que l'aplatissement est réussi, vérifiez le nombre de champs du formulaire :
:path=/static-assets/pdf/content-code-examples/how-to/pdf-image-flatten-csharp-4.cs
using IronPdf;
// Load the flattened PDF
PdfDocument flattenedPdf = PdfDocument.FromFile("flattened.pdf");
// FormFieldCollection exposes Count directly on the Form property
if (flattenedPdf.Form.Count == 0)
{
Console.WriteLine("PDF has been successfully flattened - no interactive fields remain.");
}
else
{
Console.WriteLine($"Warning: {flattenedPdf.Form.Count} form fields still exist.");
}
Imports IronPdf
' Load the flattened PDF
Dim flattenedPdf As PdfDocument = PdfDocument.FromFile("flattened.pdf")
' FormFieldCollection exposes Count directly on the Form property
If flattenedPdf.Form.Count = 0 Then
Console.WriteLine("PDF has been successfully flattened - no interactive fields remain.")
Else
Console.WriteLine($"Warning: {flattenedPdf.Form.Count} form fields still exist.")
End If
Iron Suite joue un rôle crucial dans nos opérations. Ce sont des outils qui augmentent l'efficacité de l'entreprise, y compris la création de plans d'étage et l'amélioration de la gestion des stocks.
Qu'advient-il des champs de formulaire après l'aplatissement ?
Lorsque vous aplatissez un document PDF, chaque élément de formulaire interactif devient partie du contenu de la page. Les champs de formulaire se transforment en texte statique et en graphismes :
- les champs de texte deviennent du texte normal sur la page
- Les cases à cocher et les boutons radio deviennent des images statiques montrant l'état sélectionné
- les menus déroulants n'affichent que la valeur sélectionnée en texte clair
- les signatures numériques sont préservées visuellement mais perdent la validation cryptographique
Ce processus est irréversible. Conservez une copie du PDF interactif original si vous avez besoin de capacités d'édition ultérieures. L'aplatissement permet de garder le texte et le contenu vectoriel sélectionnables, contrairement à la rasterisation des pages en images, qui convertit chaque page en une image plate. Pour les documents nécessitant à la fois sécurité et éditabilité, utilisez les permissions et mots de passe IronPDF au lieu de l'aplatissement.
Quand devrais-je aplatir mes documents PDF ?
Cas courants pour l'aplatissement :
-
Archivage de documents juridiques : Aplatissez les contrats et les accords après leur signature afin d'éviter toute altération du contenu et de préserver l'intégrité juridique.
-
Distribution de rapports : Aplatissez les rapports financiers et les fiches de données comportant des champs calculés avant de les distribuer afin d'éviter toute falsification.
-
Traitement des soumissions de formulaires : Créez des enregistrements permanents en aplatissant les PDF une fois que les utilisateurs ont rempli les formulaires en ligne.
-
Optimisation de l'impression : Les PDF aplatis s'impriment de manière plus fiable car les imprimantes ne traitent pas les éléments interactifs.
- Réduction de la taille du fichier : L'aplatissement peut réduire la taille du fichier en supprimant les structures de données des champs de formulaire, ce qui se marie bien avec la compression PDF.
Voici un exemple de traitement par lots pour l'archivage de plusieurs formulaires remplis :
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
Conclusion
L'aplatissement convertit les champs de formulaire interactifs d'un PDF en contenu de page statique avec un seul appel Flatten(), verrouillant le document contre toute modification ultérieure. Gardez-en une copie non aplatie si vous pourriez avoir besoin de modifier les données plus tard, car l'opération ne peut pas être annulée.
Si vous avez besoin de remplir les champs d'abord, définissez les valeurs de formulaire avant l'aplatissement ; pour assembler des documents verrouillés, fusionnez-les ou divisez-les par la suite.
Accès rapide à la bibliothèque
En savoir plus Documentation
Consultez la documentation pour en savoir plus sur la façon d'aplatir les PDF, de les éditer et de les manipuler, etc.
Visiter la documentation d'IronPDFPrêt à voir ce que vous pouvez faire d'autre? Consultez notre page de didacticiels ici : Fonctionnalités supplémentaires
Questions Fréquemment Posées
Que signifie aplatir un PDF ?
L'aplatissement d'un PDF convertit tous les champs de formulaire interactifs tels que les cases à cocher, les zones de texte et les boutons radio en un contenu statique et non modifiable. IronPDF offre cette fonctionnalité pour garantir l'intégrité du document et empêcher toute modification ultérieure.
Comment aplatir un PDF en C# ?
Avec IronPDF, aplatissez un PDF en trois instructions : var pdf = IronPdf.PdfDocument.FromFile("input.pdf"); puis pdf.Flatten(); puis pdf.SaveAs("flattened.pdf"). Cela charge le PDF, supprime tous les éléments interactifs, et enregistre le document sécurisé.
Puis-je aplatir des pages spécifiques plutôt que l'ensemble du document ?
Oui, passez une liste d'index de page basés sur zéro à la méthode Flatten. Par exemple, pdf.Flatten(new[] { 0, 1, 2 }) ne aplatit que les pages 0, 1 et 2 en laissant les pages restantes interactives.
Quels types de champs de formulaire peuvent être aplatis ?
IronPDF peut aplatir tous les widgets interactifs, y compris les boutons radio, les cases à cocher, les champs de texte, les listes déroulantes et tout autre élément de formulaire remplissable, en les convertissant en contenu statique permanent.
Puis-je remplir des champs de formulaire avant d'aplatir le PDF ?
Oui, IronPDF vous permet de remplir préalablement les champs de formulaire avant d'aplatir. Vous pouvez définir des valeurs comme pdf.Form.FindFormField("name").Value = "John Doe" avant d'appeler la méthode Flatten pour créer un document complété, non modifiable.
Quel moteur de rendu le processus d'aplatissement PDF utilise-t-il ?
IronPDF utilise un moteur de rendu Chrome pour assurer un rendu précis des formes complexes avant l'aplatissement, préservant ainsi l'intégrité visuelle de vos documents tout au long du processus.
Pourquoi devrais-je aplatir un document PDF ?
L'aplatissement des PDF avec IronPDF est essentiel pour la sécurité, à des fins d'archivage, pour les documents juridiques ou pour tout scénario nécessitant une préservation permanente des documents où vous devez empêcher toute modification ultérieure des données de forme.


