Comment aplatir les images PDF en C# avec IronPDF

Comment aplatir des PDFs dans IronPDF C

This article was translated from English: Does it need improvement?
Translated
View the article in English

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é.

  1. Installez IronPDF avec le Gestionnaire de Packages NuGet

    PM > Install-Package IronPdf
  2. Copiez et exécutez cet extrait de code.

    var pdf = IronPdf.PdfDocument.FromFile("input.pdf");
    pdf.Flatten();
    pdf.SaveAs("flattened.pdf");
  3. Déployez pour tester sur votre environnement de production.

    Commencez à utiliser IronPDF dans votre projet dès aujourd'hui avec un essai gratuit

    arrow pointer

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")
$vbLabelText   $csharpLabel

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")
$vbLabelText   $csharpLabel

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.

Aplati PDF

Veuillez noterLes formulaires ne seront plus détectables après l'utilisation de la méthode 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
$vbLabelText   $csharpLabel
Icon Quote related to Comment puis-je vérifier que le PDF est aplati ?

Ma bibliothèque préférée de ce genre est IronPDF. Elle permet une manipulation rapide et efficace des fichiers PDF. Elle dispose également de nombreuses fonctionnalités précieuses, comme l'exportation au format PDF/A et la signature numérique des documents PDF.

Milan Jovanovic related to Comment puis-je vérifier que le PDF est aplati ?

Milan Jovanovic

Microsoft MVP

Voir l'étude de cas
Icon Quote related to Comment puis-je vérifier que le PDF est aplati ?

IronOCR signifie que nous pouvons économiser 40 000 $ par an grâce au traitement manuel, tout en améliorant la productivité et en libérant des ressources pour des tâches à fort impact. Je le recommande vivement.

Brent Matzelle related to Comment puis-je vérifier que le PDF est aplati ?

Brent Matzelle

Directeur technique, OPYN

Voir l'étude de cas
Icon Quote related to Comment puis-je vérifier que le PDF est aplati ?

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.

David Jones related to Comment puis-je vérifier que le PDF est aplati ?

David Jones

Ingénieur logiciel principal, Agorus Build

Voir l'étude de cas

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 :

  1. 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.

  2. 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.

  3. 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.

  4. Optimisation de l'impression : Les PDF aplatis s'impriment de manière plus fiable car les imprimantes ne traitent pas les éléments interactifs.

  5. 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
$vbLabelText   $csharpLabel

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

Documentation

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'IronPDF

Prê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.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite
Prêt à commencer ?
Nuget Téléchargements 20,296,129 | Version : 2026.7 vient de sortir
Still Scrolling Icon

Vous faites encore défiler ?

Vous voulez une preuve rapidement ? PM > Install-Package IronPdf
exécuter un échantillon Regardez votre code HTML se transformer en PDF.