Comment linéariser des PDF à l'aide de C# avec IronPDF

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

Les PDF linéarisés permettent l'affichage instantané de la première page pendant le téléchargement, ce qui améliore considérablement l'expérience utilisateur pour les documents volumineux. IronPDF propose des méthodes simples pour les créer et les vérifier en C#, en optimisant vos documents pour un affichage rapide sur le Web.

Un PDF linéarisé, également appelé " Fast Web View " ou " PDF optimisé pour le Web ", est restructuré pour la diffusion en continu sur Internet. Cela permet à un visualiseur compatible d'afficher la première page d'un document presque instantanément, bien avant que le téléchargement complet du fichier ne soit terminé.

Cette fonctionnalité est particulièrement utile dans les applications critiques ou sensibles au facteur temps. Elle élimine les temps de chargement frustrants pour les documents volumineux, en particulier sur les réseaux lents ou mobiles, permettant ainsi aux utilisateurs d'interagir immédiatement avec le contenu. Cela facilite la prise de décision et stimule la productivité dans les environnements professionnels. Associées aux fonctionnalités d'optimisation des performances d'IronPDF, elles offrent une expérience de visualisation exceptionnelle.

Dans cet article pratique, nous allons explorer les options qu'IronPDF offre aux développeurs pour exporter leurs documents au format PDF linéarisé.

Guide de démarrage rapide : Linéarisez votre PDF pour un affichage Web plus rapide

Commencez à utiliser IronPDF pour convertir vos PDF en format linéaire sans effort. Cet exemple de code simple montre comment optimiser un PDF pour un chargement plus rapide dans les navigateurs web en utilisant la méthode LinearizePdf d'IronPDF. Améliorez l'expérience utilisateur en permettant l'affichage des pages au fur et à mesure de leur chargement, au lieu d'attendre que le document entier soit téléchargé. Suivez les étapes ci-dessous pour optimiser vos fichiers PDF et les rendre plus efficaces pour le partage en ligne.

  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.SaveAsLinearized(pdf.BinaryData, "linearized.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 économiser un PDF au format linéarisé ?

Économiser un document au format PDF linéarisé avec IronPDF est un processus rapide et simple. Avant de commencer, assurez-vous d'avoir installé IronPDF via NuGet ou l'une des autres méthodes d'installation disponibles.

Dans cet exemple, nous allons convertir une chaîne HTML en PDF à l'aide de RenderHtmlAsPdf. Pour les documents HTML plus complexes, vous pouvez explorer les fonctionnalités de conversion HTML vers PDF d'IronPDF. Ensuite, nous enregistrerons l'objet PdfDocument sous forme de PDF linéarisé à l'aide de la méthode d'instance SaveAsLinearized, en passant le chemin du fichier de sortie sous forme d'argument de type chaîne.

:path=/static-assets/pdf/content-code-examples/how-to/linearize-pdf.cs
using IronPdf;

// Instantiate Renderer
var renderer = new ChromePdfRenderer();

// Create a PDF from an HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Pdf Bytes</h1>");

// Get the PDF binary data
var pdfBytes = pdf.BinaryData;

// Save the PDF binary data as a linearized PDF file
PdfDocument.SaveAsLinearized(pdfBytes, "linearize-from-bytes.pdf");
Imports IronPdf

' Instantiate Renderer
Dim renderer As New ChromePdfRenderer()

' Create a PDF from an HTML string using VB.NET
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Pdf Bytes</h1>")

' Get the PDF binary data
Dim pdfBytes = pdf.BinaryData

' Save the PDF binary data as a linearized PDF file
PdfDocument.SaveAsLinearized(pdfBytes, "linearize-from-bytes.pdf")
$vbLabelText   $csharpLabel

Ce processus restructure le format interne du PDF en plaçant les informations essentielles au début du fichier, ce qui permet un téléchargement et un rendu progressifs. Elle est particulièrement utile lors de la diffusion de fichiers PDF via des applications web.

À quoi ressemble le résultat final ?

Boîte de dialogue des propriétés du PDF montrant le paramètre

Comment économiser un fichier PDF au format " Linearized " ?

En plus d'économiser directement un objet PdfDocument, IronPDF permet également aux utilisateurs de convertir un tableau d'octets PDF en un PDF linéarisé. Cette flexibilité est particulièrement utile lors de l'utilisation de fichiers PDF stockés dans des bases de données ou lors du traitement de fichiers PDF dans des applications gourmandes en mémoire. Pour plus d'informations sur l'utilisation des PDF en mémoire, consultez notre guide sur le chargement de PDF à partir de flux mémoire.

Dans cet exemple, nous allons montrer comment convertir une chaîne HTML en un objet PdfDocument, obtenir son tableau d'octets, puis enregistrer ces données sous forme de PDF linéarisé à l'aide de la surcharge SaveAsLinearized qui accepte une entrée byte[], un chemin de sortie et un mot de passe facultatif.

À quoi ressemble le résultat final ?

Voici le fichier généré par le code :

Comment économiser un MemoryStream sous forme linéarisée ?

La surcharge SaveAsLinearized qui accepte une entrée Stream écrit toujours la sortie linéarisée dans un fichier situé au chemin de sortie spécifié. Cela s'avère utile lorsque votre PDF source se trouve déjà dans un flux (provenant d'une base de données, d'un réseau ou d'un tampon en mémoire) et que vous souhaitez enregistrer le résultat linéarisé sur le disque.

Dans cet exemple, nous allons convertir un objet PdfDocument en un tableau d'octets, l'écrire dans un MemoryStream, puis enregistrer le flux sous forme de fichier PDF linéarisé pour illustrer cette fonctionnalité.

Si vous devez éviter complètement l'écriture sur disque (pour HIPAA, PCI-DSS, les applications en mode sandbox ou les fonctions cloud avec des systèmes de fichiers en lecture seule), consultez les méthodes en mémoire dans la section suivante.

Voici le fichier généré par le code :

Comment linéariser entièrement en mémoire ?

Pour les environnements sandbox, les fonctions cloud ou les workflows soumis à des exigences de conformité (HIPAA, PCI-DSS) où l'écriture sur disque est restreinte ou indésirable, IronPDF fournit les méthodes LinearizePdfToBytes et LinearizePdfToStream qui renvoient directement le PDF linéarisé, sans fichiers temporaires ni E/S disque.

Ces méthodes sont disponibles à la fois en tant que méthodes d'instance sur PdfDocument et en tant que méthodes statiques acceptant des entrées byte[] ou Stream.

Obtenir un résultat linéarisé en octets

Utilisez LinearizePdfToBytes lorsque vous avez besoin d'un byte[] pour une réponse HTTP, une colonne de base de données varbinary ou tout tampon de taille fixe.

using IronPdf;

// Instance method: linearize the current document, get bytes back
var pdf = PdfDocument.FromFile("input.pdf");
byte[] linearizedBytes = pdf.LinearizePdfToBytes();

// Static method: linearize from a byte array without instantiating PdfDocument
byte[] inputBytes = File.ReadAllBytes("input.pdf");
byte[] result = PdfDocument.LinearizePdfToBytes(inputBytes);

// Password-protected PDFs
byte[] decrypted = PdfDocument.LinearizePdfToBytes(encryptedBytes, password: "secret");
using IronPdf;

// Instance method: linearize the current document, get bytes back
var pdf = PdfDocument.FromFile("input.pdf");
byte[] linearizedBytes = pdf.LinearizePdfToBytes();

// Static method: linearize from a byte array without instantiating PdfDocument
byte[] inputBytes = File.ReadAllBytes("input.pdf");
byte[] result = PdfDocument.LinearizePdfToBytes(inputBytes);

// Password-protected PDFs
byte[] decrypted = PdfDocument.LinearizePdfToBytes(encryptedBytes, password: "secret");
Imports IronPdf

' Instance method: linearize the current document, get bytes back
Dim pdf = PdfDocument.FromFile("input.pdf")
Dim linearizedBytes As Byte() = pdf.LinearizePdfToBytes()

' Static method: linearize from a byte array without instantiating PdfDocument
Dim inputBytes As Byte() = File.ReadAllBytes("input.pdf")
Dim result As Byte() = PdfDocument.LinearizePdfToBytes(inputBytes)

' Password-protected PDFs
Dim decrypted As Byte() = PdfDocument.LinearizePdfToBytes(encryptedBytes, password:="secret")
$vbLabelText   $csharpLabel

Obtenir un flux de sortie linéarisé

Utilisez LinearizePdfToStream pour rediriger la sortie vers un autre flux (téléchargements de blobs dans le cloud, corps de réponses HTTP, sockets réseau) sans mettre en mémoire tampon l'intégralité du fichier.

// Instance method: return a Stream
Stream linearizedStream = pdf.LinearizePdfToStream();

// Static method: linearize from a stream
using var inputStream = File.OpenRead("input.pdf");
Stream resultStream = PdfDocument.LinearizePdfToStream(inputStream);
// Instance method: return a Stream
Stream linearizedStream = pdf.LinearizePdfToStream();

// Static method: linearize from a stream
using var inputStream = File.OpenRead("input.pdf");
Stream resultStream = PdfDocument.LinearizePdfToStream(inputStream);
Imports System.IO

' Instance method: return a Stream
Dim linearizedStream As Stream = pdf.LinearizePdfToStream()

' Static method: linearize from a stream
Using inputStream As FileStream = File.OpenRead("input.pdf")
    Dim resultStream As Stream = PdfDocument.LinearizePdfToStream(inputStream)
End Using
$vbLabelText   $csharpLabel

Contrôle de la stratégie de linéarisation

Les six méthodes acceptent un paramètre facultatif LinearizationMode :

Mode Comportement Quand l'utiliser
Automatic (par défaut) Essaie d'abord la méthode basée sur les fichiers ; passe en mode mémoire si l'accès au disque est restreint Recommandation par défaut ; fonctionne dans la plupart des environnements
InMemory Effectue la linéarisation entièrement en mémoire, sans aucune opération d'E/S sur le disque Workflows HIPAA / PCI-DSS, applications en sandbox, systèmes de fichiers en lecture seule, fonctions cloud
FileBased Utilise un fichier temporaire dans le répertoire temporaire du système Lorsque vous souhaitez explicitement le comportement des fichiers temporaires et disposez d'une autorisation d'écriture
using IronPdf;

// Force in-memory linearization (no disk I/O at all)
byte[] linearized = pdf.LinearizePdfToBytes(LinearizationMode.InMemory);
using IronPdf;

// Force in-memory linearization (no disk I/O at all)
byte[] linearized = pdf.LinearizePdfToBytes(LinearizationMode.InMemory);
Imports IronPdf

' Force in-memory linearization (no disk I/O at all)
Dim linearized As Byte() = pdf.LinearizePdfToBytes(LinearizationMode.InMemory)
$vbLabelText   $csharpLabel

Veuillez noterArgumentException est levé lorsque les octets d'entrée sont nuls/vides ou lorsque le flux d'entrée n'est pas lisible. ArgumentNullException est levée lorsque le flux d'entrée est nul.

Comment diffuser un PDF linéarisé dans une réponse HTTP ?

Combinez LinearizePdfToStream avec FileStreamResult d'ASP.NET pour servir un PDF optimisé pour le Web directement au navigateur, sans créer de fichier temporaire :

:path=/static-assets/pdf/content-code-examples/how-to/linearize-pdf-http-response.cs
using IronPdf;
using Microsoft.AspNetCore.Mvc;

public class ReportController : Controller
{
    public IActionResult DownloadReport()
    {
        var pdf = PdfDocument.FromFile("quarterly-report.pdf");
        Stream linearized = pdf.LinearizePdfToStream(LinearizationMode.InMemory);

        return new FileStreamResult(linearized, "application/pdf")
        {
            FileDownloadName = "quarterly-report.pdf"
        };
    }
}
Imports IronPdf
Imports Microsoft.AspNetCore.Mvc
Imports System.IO

Public Class ReportController
    Inherits Controller

    Public Function DownloadReport() As IActionResult
        Dim pdf = PdfDocument.FromFile("quarterly-report.pdf")
        Dim linearized As Stream = pdf.LinearizePdfToStream(LinearizationMode.InMemory)

        Return New FileStreamResult(linearized, "application/pdf") With {
            .FileDownloadName = "quarterly-report.pdf"
        }
    End Function
End Class
$vbLabelText   $csharpLabel

Le navigateur reçoit un PDF linéarisé qui commence à afficher la première page tandis que le reste est transmis en continu — et aucun fichier intermédiaire ne touche jamais le disque du serveur.


Comment puis-je vérifier si un PDF est linéarisé ?

Outre la vérification des propriétés du document dans une visionneuse PDF, telle qu'Adobe Acrobat, pour voir si un PDF est linéarisé, IronPDF offre également un moyen de vérifier cela par programmation à l'aide de la méthode IsLinearized. Elle prend un paramètre de type chaîne pour le chemin d'accès au fichier et un deuxième paramètre de type chaîne facultatif pour le mot de passe si le PDF est crypté. Cette fonctionnalité de vérification est essentielle pour l'assurance qualité et peut être intégrée dans des workflows de tests automatisés.

Dans cet exemple, nous utiliserons les fichiers de sortie des trois exemples ci-dessus pour vérifier s'ils sont linéarisés, et inclurons un quatrième PDF non linéarisé pour illustrer le comportement de la méthode. Pour des techniques plus avancées de manipulation et de vérification de fichiers PDF, découvrez l'ensemble complet de fonctionnalités d'IronPDF.

Quels sont les résultats ?

Sortie de débogage affichant les résultats de la linéarisation PDF : trois valeurs True et une valeur False

Comme vous pouvez le constater, les trois premiers exemples renvoient MemoryStream, tandis que le dernier PDF, qui n'est pas linéarisé, renvoie IsLinearized.

Veuillez noterLa linéarisation est une structure au niveau du fichier, la vérification s'effectue donc sur les fichiers enregistrés via IsLinearized. Pour produire une sortie linéarisée sous forme d'octets ou de flux sans écriture sur le disque, utilisez les méthodes LinearizePdfToBytes et LinearizePdfToStream décrites ci-dessus.

Meilleures pratiques pour les PDF linéarisés

Lorsque vous travaillez avec des PDF linéarisés, tenez compte des bonnes pratiques suivantes :

  1. Considérations relatives à la taille des fichiers : la linéarisation peut légèrement augmenter la taille des fichiers en raison du format restructuré. Utilisez les fonctionnalités de compression d'IronPDF pour optimiser la taille des fichiers si nécessaire.

  2. Déploiement Web : les PDF linéarisés sont idéaux pour les applications Web. Configurez votre serveur web pour prendre en charge les requêtes de plage d'octets afin de tirer pleinement parti des avantages de la linéarisation.

  3. Tests de performance : Testez toujours les PDF linéarisés dans votre environnement cible. L'amélioration des performances est particulièrement perceptible avec des fichiers volumineux sur des connexions lentes.

  4. Compatibilité : bien que la plupart des lecteurs PDF modernes prennent en charge les PDF linéarisés, assurez-vous de la compatibilité avec les lecteurs préférés de vos utilisateurs.

Pour découvrir d'autres stratégies d'optimisation et des techniques avancées de gestion des PDF, consultez la documentation sur les options de rendu d'IronPDF.

Questions Fréquemment Posées

Qu'est-ce qu'un PDF linéarisé et pourquoi devrais-je l'utiliser ?

Un PDF linéarisé, également connu sous le nom de " Fast Web View " ou " PDF optimisé pour le web ", est réorganisé structurellement pour la diffusion en continu sur Internet. La fonction de linéarisation d'IronPDF permet aux visionneuses compatibles d'afficher la première page presque instantanément pendant que le reste se télécharge, ce qui améliore considérablement l'expérience de l'utilisateur pour les documents volumineux, en particulier sur les réseaux lents ou mobiles.

Comment créer un PDF linéarisé en C# ?

Avec IronPDF, vous pouvez facilement créer un PDF linéarisé à l'aide de la méthode SaveAsLinearized. Il suffit de charger ou de créer votre document PDF, puis d'appeler pdf.SaveAsLinearized(pdf.BinaryData, 'output.pdf') pour l'enregistrer en tant que PDF linéarisé optimisé pour une visualisation rapide sur le web.

Puis-je convertir des PDF existants en format linéarisé ?

Oui, IronPDF vous permet de convertir des PDF existants au format linéarisé. Vous pouvez charger n'importe quel PDF en utilisant PdfDocument.FromFile('input.pdf'), puis utiliser la méthode SaveAsLinearized pour l'enregistrer en tant que PDF linéarisé afin d'améliorer les performances web.

Comment puis-je vérifier si un PDF est déjà linéarisé ?

IronPDF fournit la propriété IsLinearized pour vérifier si un PDF est linéarisé. Il suffit de charger votre document PDF et de vérifier la propriété booléenne IsLinearized pour déterminer si le document est déjà optimisé pour une visualisation rapide sur le web.

Quels sont les principaux avantages de la linéarisation des PDF pour les applications web ?

La linéarisation des PDF avec IronPDF permet un affichage instantané de la première page, élimine les temps de chargement frustrants pour les documents volumineux, permet une prise de décision plus rapide dans les environnements professionnels et améliore considérablement l'expérience de l'utilisateur, en particulier dans les applications critiques ou sensibles au facteur temps.

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 18,918,602 | Version : 2026.5 just released
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.