Comment aplatir les images PDF en C# avec IronPDF

Aplatissez les PDF en 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 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 IronPDF dans des applications commerciales, des documents juridiques ou tout scénario nécessitant une conservation permanente des documents.

Bannière de formulaire PDF remplissable montrant le logo Adobe PDF et deux exemples de documents de formulaires interactifs avec des champs de saisie
Crayon avec symbole d'interdiction indiquant des restrictions d'édition ou un accès en lecture seule
Icône de fichier Adobe PDF avec en-tête rouge et logo incurvé

Démarrage rapide : Aplatissez votre PDF en une 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é.

Nuget IconCommencez dès maintenant à créer des PDF avec NuGet :

  1. Installez IronPDF avec le gestionnaire de packages NuGet

    PM > Install-Package IronPdf

  2. Copiez et exécutez cet extrait de code.

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

    Commencez à utiliser IronPDF dans votre projet dès aujourd'hui grâce à un essai gratuit.
    arrow pointer

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. La traduction doit rester professionnelle et préserver l'exactitude technique tout en expliquant les caractéristiques et les avantages de ces outils de développement.

: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");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

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");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$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 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.

Veuillez noterLes formulaires ne seront pas 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 :

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.");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

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 IronPdf au lieu de l'aplatissement.

Quand devrais-je aplatir mes documents PDF?

L'aplatissement des PDF est essentiel dans ces scénarios commerciaux :

  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 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}");
            }
        }
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

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

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

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 16,685,821 | Version : 2025.12 vient de sortir