Jak liniaryzować pliki PDF przy użyciu języka C# i biblioteki IronPDF

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

Zlinearyzowane pliki PDF umożliwiają natychmiastowe wyświetlenie pierwszej strony podczas pobierania, co znacznie poprawia komfort użytkowania w przypadku dużych dokumentów. IronPDF zapewnia proste metody ich tworzenia i weryfikacji w języku C#, optymalizując dokumenty pod kątem szybkiego przeglądania w sieci.

Zlinearyzowany plik PDF, znany również jako "Fast Web View" lub "PDF zoptymalizowany pod kątem sieci", jest strukturalnie zreorganizowany pod kątem strumieniowania internetowego. Dzięki temu kompatybilna przeglądarka może wyświetlić pierwszą stronę dokumentu niemal natychmiast, na długo przed zakończeniem pobierania całego pliku.

W aplikacjach o znaczeniu krytycznym lub wymagających szybkiego działania funkcja ta jest szczególnie przydatna. Eliminuje to frustrujące czasy ładowania dużych dokumentów, szczególnie w wolnych lub mobilnych sieciach, umożliwiając użytkownikom natychmiastową interakcję z treścią. Ułatwia to szybsze podejmowanie decyzji i zwiększa produktywność w środowiskach profesjonalnych. W połączeniu z funkcjami optymalizacji wydajności IronPDF zapewniają one wyjątkowe wrażenia podczas przeglądania.

W tym poradniku omówimy opcje, które IronPDF oferuje programistom w zakresie eksportowania dokumentów jako zlinearyzowanych plików PDF.

Szybki start: Zlinaryzuj plik PDF, aby przyspieszyć wyświetlanie w przeglądarce

Zacznij korzystać z IronPDF, aby bez wysiłku przekształcać pliki PDF do formatu tekstowego. Ten prosty przykład kodu pokazuje, jak zoptymalizować plik PDF pod kątem szybszego ładowania w przeglądarkach internetowych przy użyciu metody LinearizePdf biblioteki IronPDF. Popraw komfort użytkowania, umożliwiając wyświetlanie stron w miarę ich ładowania, zamiast czekać na pobranie całego dokumentu. Wykonaj poniższe kroki, aby zoptymalizować pliki PDF i zwiększyć ich wydajność podczas udostępniania online.

  1. Install IronPDF with NuGet Package Manager

    PM > Install-Package IronPdf
  2. Skopiuj i uruchom ten fragment kodu.

    var pdf = IronPdf.PdfDocument.FromFile("input.pdf");
    pdf.SaveAsLinearized(pdf.BinaryData, "linearized.pdf");
  3. Wdrożenie do testowania w środowisku produkcyjnym

    Rozpocznij używanie IronPDF w swoim projekcie już dziś z darmową wersją próbną

    arrow pointer


Jak zapisać plik PDF w formacie zlinearyzowanym?

Zapisywanie dokumentu jako zlinearyzowanego pliku PDF za pomocą IronPDF to szybki i łatwy proces. Przed rozpoczęciem upewnij się, że zainstalowałeś IronPDF za pomocą NuGet lub jednej z innych dostępnych metod instalacji.

W tym przykładzie przekonwertujemy ciąg znaków HTML do formatu PDF przy użyciu RenderHtmlAsPdf. W przypadku bardziej złożonych dokumentów HTML warto zapoznać się z funkcjami konwersji HTML do PDF oferowanymi przez IronPDF. Następnie zapiszemy obiekt PdfDocument jako zlinearyzowany plik PDF za pomocą metody instancji SaveAsLinearized, przekazując ścieżkę pliku wyjściowego jako argument typu string.

: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

Proces ten zmienia strukturę wewnętrzną pliku PDF, umieszczając kluczowe informacje na początku pliku, co umożliwia stopniowe pobieranie i renderowanie. Jest to szczególnie przydatne podczas udostępniania plików PDF za pośrednictwem aplikacji internetowych.

Jak wygląda wynik?

Okno dialogowe właściwości pliku PDF z zaznaczonym ustawieniem Fast Web View, ilustrujące liniową optymalizację pliku PDF

Jak zapisać plik PDF w formacie zlinearyzowanym?

Oprócz bezpośredniego zapisywania obiektu PdfDocument, IronPDF umożliwia również konwersję tablicy bajtów PDF na zlinearyzowany plik PDF. Ta elastyczność jest szczególnie przydatna podczas pracy z plikami PDF przechowywanymi w bazach danych lub podczas przetwarzania plików PDF w aplikacjach wymagających dużej ilości pamięci. Aby uzyskać więcej informacji na temat pracy z plikami PDF w pamięci, zapoznaj się z naszym przewodnikiem dotyczącym ładowania plików PDF ze strumieni pamięci.

W tym przykładzie pokażemy, jak przekształcić ciąg HTML w obiekt PdfDocument, uzyskać jego tablicę bajtów, a następnie zapisać te dane jako zlinearyzowany plik PDF przy użyciu przeciążenia SaveAsLinearized, które akceptuje dane wejściowe byte[], ścieżkę wyjściową oraz opcjonalne hasło.

Jak wygląda wynik?

Oto plik wygenerowany przez kod:

Jak zapisać strumień pamięci jako zlinearyzowany?

Przeładowanie SaveAsLinearized, które akceptuje dane wejściowe Stream, nadal zapisuje zlinearyzowane dane wyjściowe do pliku w określonej ścieżce wyjściowej. Jest to przydatne, gdy źródłowy plik PDF znajduje się już w strumieniu (z bazy danych, sieci lub bufora w pamięci) i chcesz zapisać zlinearyzowany wynik na dysku.

W tym przykładzie przekonwertujemy obiekt PdfDocument na tablicę bajtów, zapiszemy go do MemoryStream, a następnie zapiszemy strumień jako zlinearyzowany plik PDF, aby zademonstrować tę funkcję.

Jeśli chcesz całkowicie uniknąć zapisywania na dysku (z powodu HIPAA, PCI-DSS, aplikacji w piaskownicy lub funkcji w chmurze z systemami plików tylko do odczytu), zapoznaj się z metodami działającymi w pamięci w następnej sekcji.

Oto plik wygenerowany przez kod:

Jak całkowicie zlinearyzować dane w pamięci?

W przypadku środowisk typu sandbox, funkcji chmurowych lub przepływów pracy wrażliwych na zgodność z przepisami (HIPAA, PCI-DSS), gdzie zapis na dysku jest ograniczony lub niepożądany, IronPDF udostępnia metody LinearizePdfToBytes i LinearizePdfToStream, które zwracają bezpośrednio zlinearyzowany plik PDF, bez plików tymczasowych i operacji wejścia/wyjścia na dysk.

Metody te są dostępne zarówno jako metody instancji w PdfDocument, jak i jako metody statyczne akceptujące dane wejściowe byte[] lub Stream.

Uzyskaj zlinearyzowany wynik w postaci bajtów

Użyj LinearizePdfToBytes, gdy potrzebujesz byte[] dla odpowiedzi HTTP, kolumny bazy danych varbinary lub dowolnego bufora o stałym rozmiarze.

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

Uzyskaj zlinearyzowany wynik jako strumień

Użyj LinearizePdfToStream podczas przekazywania danych do innego strumienia (przesyłanie obiektów blob do chmury, treści odpowiedzi HTTP, gniazda sieciowe) bez buforowania całego pliku w pamięci.

// 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

Kontrola strategii linearyzacji

Wszystkie sześć metod akceptuje opcjonalny parametr LinearizationMode:

Tryb Zachowanie Kiedy używać
Automatic (domyślnie) Najpierw próbuje metody opartej na plikach; jeśli dostęp do dysku jest ograniczony, przechodzi na tryb pamięci wewnętrznej Zalecane ustawienie domyślne; działa w większości środowisk
InMemory Wykonuje linearyzację całkowicie w pamięci, bez operacji wejścia/wyjścia na dysk Procesy HIPAA / PCI-DSS, aplikacje w środowisku sandbox, systemy plików tylko do odczytu, funkcje w chmurze
FileBased Wykorzystuje plik tymczasowy w katalogu tymczasowym systemu Gdy wyraźnie chcesz zachować zachowanie plików tymczasowych i masz uprawnienia do zapisu
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

Zwróć uwagęArgumentException jest generowany, gdy bajty wejściowe są zerowe/puste lub gdy strumień wejściowy nie jest czytelny. ArgumentNullException jest generowany, gdy strumień wejściowy jest pusty.

Jak przesłać zlinearyzowany plik PDF w odpowiedzi HTTP?

Połącz LinearizePdfToStream z FileStreamResult z ASP.NET, aby dostarczyć plik PDF zoptymalizowany pod kątem sieci bezpośrednio do przeglądarki, bez zapisywania pliku tymczasowego:

: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

Przeglądarka otrzymuje zlinearyzowany plik PDF, który zaczyna wyświetlać pierwszą stronę, podczas gdy reszta jest przesyłana strumieniowo — a żaden plik pośredni nigdy nie trafia na dysk serwera.


Jak sprawdzić, czy plik PDF jest zlinearyzowany?

Oprócz sprawdzania właściwości dokumentu w przeglądarce plików PDF, takiej jak Adobe Acrobat, w celu ustalenia, czy plik PDF jest zlinearyzowany, IronPDF zapewnia również możliwość sprawdzenia tego programowo za pomocą metody IsLinearized. Przyjmuje parametr typu string dla ścieżki do pliku oraz opcjonalny drugi parametr typu string dla hasła, jeśli plik PDF jest zaszyfrowany. Ta funkcja weryfikacji ma zasadnicze znaczenie dla zapewnienia jakości i może zostać zintegrowana z procesami automatycznego testowania.

W tym przykładzie wykorzystamy pliki wyjściowe z trzech powyższych przykładów, aby sprawdzić, czy są one zlinearyzowane, oraz dołączymy czwarty, niezlinearyzowany plik PDF, aby zademonstrować działanie tej metody. Aby poznać bardziej zaawansowane techniki obróbki i weryfikacji plików PDF, zapoznaj się z kompleksowym zestawem funkcji IronPDF.

Jakie są wyniki?

Wynik debugowania pokazujący rezultaty linearyzacji pliku PDF: trzy wartości True i jedna wartość False

Jak widać, pierwsze trzy przykłady zwracają MemoryStream, podczas gdy ostatni plik PDF, który nie jest zlinearyzowany, zwraca IsLinearized.

Zwróć uwagęLinearyzacja jest strukturą na poziomie pliku, więc weryfikacja działa na zapisanych plikach poprzez IsLinearized. Aby wygenerować liniowy wynik w postaci bajtów lub strumienia bez zapisywania na dysku, należy użyć metod LinearizePdfToBytes i LinearizePdfToStream opisanych powyżej.

Najlepsze praktyki dotyczące plików PDF w formacie liniowym

Podczas pracy z plikami PDF w formacie zlinearyzowanym należy uwzględnić następujące najlepsze praktyki:

  1. Uwagi dotyczące rozmiaru pliku: Liniaryzacja może nieznacznie zwiększyć rozmiar pliku ze względu na zmianę struktury formatu. W razie potrzeby należy skorzystać z funkcji kompresji IronPDF w celu optymalizacji rozmiaru plików.

  2. Wdrażanie w sieci: Zlinearyzowane pliki PDF idealnie nadają się do aplikacji internetowych. Skonfiguruj serwer WWW tak, aby obsługiwał żądania zakresu bajtów, co pozwoli w pełni wykorzystać zalety linearyzacji.

  3. Testowanie wydajności: Zawsze testuj zlinearyzowane pliki PDF w swoim środowisku docelowym. Poprawa wydajności jest najbardziej zauważalna w przypadku dużych plików przesyłanych przez wolniejsze połączenia.

  4. Kompatybilność: Chociaż większość nowoczesnych przeglądarek plików PDF obsługuje pliki PDF w formacie zlinearyzowanym, należy zapewnić kompatybilność z przeglądarkami preferowanymi przez użytkowników.

Aby uzyskać informacje na temat dodatkowych strategii optymalizacji i zaawansowanych technik obsługi plików PDF, zapoznaj się z dokumentacją opcji renderowania IronPDF.

Często Zadawane Pytania

Czym jest zlinearyzowany plik PDF i dłączego warto go używać?

Zlinearyzowany plik PDF, znany również jako „Fast Web View” lub „PDF zoptymalizowany pod kątem sieci”, jest strukturalnie zreorganizowany pod kątem strumieniowania w Internecie. Funkcja linearyzacji IronPDF pozwala kompatybilnym przeglądarkom wyświetlać pierwszą stronę niemal natychmiast, podczas gdy reszta jest pobierana, co znacznie poprawia komfort użytkowania w przypadku dużych dokumentów, zwłaszcza w wolnych lub mobilnych sieciach.

Jak utworzyć zlinearyzowany plik PDF w języku C#?

Dzięki IronPDF można łatwo utworzyć zlinearyzowany plik PDF za pomocą metody SaveAsLinearized. Wystarczy załadować lub utworzyć dokument PDF, a następnie wywołać pdf.SaveAsLinearized(pdf.BinaryData, 'output.pdf'), aby zapisać go jako zlinearyzowany plik PDF zoptymalizowany do szybkiego przeglądania w sieci.

Czy mogę przekonwertować istniejące pliki PDF do formatu zlinearyzowanego?

Tak, IronPDF umożliwia konwersję istniejących plików PDF do formatu zlinearyzowanego. Można załadować dowolny plik PDF za pomocą PdfDocument.FromFile('input.pdf'), a następnie użyć metody SaveAsLinearized, aby zapisać go jako zlinearyzowany plik PDF w celu poprawy wydajności sieciowej.

Jak mogę sprawdzić, czy plik PDF jest już zlinearyzowany?

IronPDF udostępnia właściwość IsLinearized, która pozwala sprawdzić, czy plik PDF jest zlinearyzowany. Wystarczy załadować dokument PDF i sprawdzić właściwość boolowską IsLinearized, aby ustalić, czy dokument jest już zoptymalizowany do szybkiego przeglądania w sieci.

Jakie są główne zalety linearizacji plików PDF dla aplikacji internetowych?

Linearyzacja plików PDF za pomocą IronPDF zapewnia natychmiastowe wyświetlenie pierwszej strony, eliminuje frustrujące czasy ładowania dużych dokumentów, umożliwia szybsze podejmowanie decyzji w środowiskach profesjonalnych oraz znacznie poprawia komfort użytkowania, szczególnie w aplikacjach o znaczeniu krytycznym lub wymagających szybkiej reakcji.

Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podrę...

Czytaj więcej
Gotowy, aby rozpocząć?
Nuget Pliki do pobrania 18,926,724 | Wersja: 2026.5 just released
Still Scrolling Icon

Wciąż przewijasz?

Czy chcesz szybko dowodu? PM > Install-Package IronPdf
Uruchom przykład i zobacz, jak Twój kod HTML zamienia się w plik PDF.