Aplatir les PDF en C
IronPDF aplatit les documents PDF en C# avec une seule ligne de code, convertissant les champs de formulaire interactifs en contenu statique pour empêcher toute modification ultérieure et garantir l'intégrité du document.
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 devez aplatir le fichier PDF. IronPDF fournit cette fonctionnalité avec une seule ligne de code. Cette capacité est essentielle lorsqu'on travaille avec des formulaires PDF dans des applications commerciales, des documents juridiques ou tout scénario nécessitant une conservation permanente des documents.
Démarrage rapide : Aplatir votre PDF en une seule ligne
Aplatissez les documents PDF à l'aide d'IronPDF pour supprimer toute interactivité et créer un contenu permanent et non modifiable. Ce one-liner en C# charge un PDF existant, supprime tous les widgets remplissables et enregistre le document sécurisé.
-
Installez IronPDF avec le Gestionnaire de Packages NuGet
PM > Install-Package IronPdf -
Copiez et exécutez cet extrait de code.
IronPdf.PdfDocument.FromFile("input.pdf").Flatten().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 à l'aide d'une seule ligne de code. Le processus fonctionne avec des PDF créés à partir de fichiers HTML, chaînes HTML, ou de documents PDF existants.
L'exemple de code ci-dessous utilise la classe PdfDocument pour charger un PDF existant. Pour la génération dynamique de PDF, utilisez la classe ChromePdfRenderer. Le moteur de rendu Chrome rendering engine d'IronPDF garantit un rendu précis des formes complexes avant l'aplatissement.
Pour aplatir un fichier PDF, appelez la méthode Flatten. Cette opération supprime tous les widgets interactifs, notamment les boutons radio, les cases à cocher et les champs de texte, rendant le document entièrement non modifiable.
: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")
Pour les scénarios complexes, vous pouvez aplatir des pages spécifiques ou manipuler des données de formulaire avant l'aplatissement :
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")
Comment puis-je vérifier que le PDF est aplati?
Le résultat ci-dessous montre les états avant et après l'aplatissement. Le premier PDF contient des champs de formulaire modifiables. Après avoir appliqué la méthode d'aplatissement d'IronPDF, le document devient totalement non modifiable. Ce code fonctionne dans n'importe quel projet .NET, y compris les applications ASP.NET et les serveurs Blazor.
Flatten.Pour vérifier que l'aplatissement est réussi, vérifiez le nombre de champs du formulaire :
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
Qu'advient-il des champs de formulaire après l'aplatissement?
Lorsque vous aplatissez un document PDF, tous les éléments de formulaire interactifs subissent une transformation permanente. Les champs du formulaire se transforment en contenu de page statique, devenant ainsi partie intégrante de la couche visuelle du document :
- 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. Pour les documents nécessitant à la fois sécurité et éditabilité, utilisez les permissions et mots de passe PDF au lieu de l'aplatissement.
Quand devrais-je aplatir mes documents PDF?
L'aplatissement des PDF est essentiel dans ces scénarios commerciaux :
-
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 des fichiers : L'aplatissement peut réduire la taille des fichiers en supprimant les structures de données des champs de formulaire lors de l'utilisation de 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
Pour les techniques avancées de manipulation des PDF, notamment la fusion ou la division de PDF après aplatissement, consultez la documentation complète d'IronPDF.
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, vous pouvez aplatir un PDF en une seule ligne de code : IronPdf.PdfDocument.FromFile("input.pdf").Flatten().SaveAs("flattened.pdf"). Ceci 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, IronPDF vous permet d'aplatir des pages spécifiques à l'aide de la méthode FlattenPagesRange. Par exemple, pdf.FlattenPagesRange(0, 2) aplatira uniquement les pages 1 à 3 de votre document tout en laissant les autres pages 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 pré-remplir les champs de formulaire avant l'aplatissement. Vous pouvez définir des valeurs telles que pdf.Form.Fields[0].Value = "John Doe" avant d'appeler la méthode d'aplatissement pour créer un document complété et non éditable.
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.

