如何使用IronPDF和 C# 將 PDF 線性化

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

線性化 PDF 能夠在下載過程中立即顯示第一頁,從而顯著改善大型文件的使用者體驗。 IronPDF提供在 C# 中建立和驗證線性化 PDF 的簡單方法,最佳化文件以實現快速的 Web 檢視。

線性化 PDF,也稱為"快速 Web 檢視"或"Web 優化 PDF",其結構經過重新組織,以適應互聯網串流播放。 這樣一來,相容的檢視器幾乎可以立即顯示文件的第一頁,遠早於整個文件下載完成的時間。

在任務關鍵型或時間敏感型應用中,此功能尤其有用。 它消除了大型文件令人沮喪的載入時間,尤其是在網路速度慢或行動網路的情況下,使用戶能夠立即與內容互動。 這有助於加快決策速度,並提高專業環境中的生產力。 結合IronPDF 的效能最佳化功能,線性化的 PDF 可提供卓越的檢視體驗。

在本操作指南文章中,我們將探討IronPDF為開發人員提供的將文件匯出為線性化 PDF 的選項。

快速入門:將 PDF 線性化以加速網頁瀏覽速度

立即開始使用IronPDF ,輕鬆實現 PDF 線性化。 這個簡單的程式碼範例展示如何使用 IronPDF 的 LinearizePdf 方法最佳化 PDF,使其在 Web 瀏覽器中載入速度更快。 透過允許頁面在載入時顯示,而不是等待整個文件下載完畢,來提升使用者體驗。 請按照以下步驟簡化您的 PDF 文件,使其更適合線上分享。

  1. 使用NuGet套件管理器安裝https://www.nuget.org/packages/IronPdf

    PM > Install-Package IronPdf
  2. 複製並運行這段程式碼。

    var pdf = IronPdf.PdfDocument.FromFile("input.pdf");
    pdf.SaveAsLinearized(pdf.BinaryData, "linearized.pdf");
  3. 部署到您的生產環境進行測試

    今天就在您的專案中開始使用免費試用IronPDF

    arrow pointer


如何將PDF另存為線性化格式?

使用IronPDF將文件儲存為線性化 PDF 是一個快速簡單的過程。 在開始之前,請確保您已透過NuGet或其他可用的安裝方法之一安裝了IronPDF

在這個範例中,我們將使用 RenderHtmlAsPdf 將 HTML 字串渲染成 PDF。 對於更複雜的 HTML 文件,您可能需要了解IronPDF 的 HTML 轉 PDF 功能。 之後,我們將使用 PdfDocument 實例方法將 SaveAsLinearized 物件儲存為線性化 PDF。 此方法接受一個字串參數,用於指定輸出檔案路徑。

: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

線性化過程會重構 PDF 的內部格式,將關鍵資訊置於文件開頭。這使得 PDF 可以實現漸進式下載和渲染,這在透過 Web 應用程式提供 PDF 檔案時尤其有利。

輸出結果是什麼樣子的?

PDF 屬性對話方塊突顯了

如何將 PDF 位元組儲存為線性化格式?

除了直接儲存 PdfDocument 物件外, IronPDF還允許使用者將 PDF 位元組陣列轉換為線性化的 PDF。 這種靈活性在處理儲存在資料庫中的 PDF 文件或在記憶體密集型應用程式中處理 PDF 文件時尤其有用。 有關在內存中處理 PDF 的更多信息,請參閱我們關於從內存流加載 PDF 的指南。

在這個例子中,我們將示範如何將 HTML 字串渲染成 PdfDocument 對象,取得其位元組數組,然後將該資料儲存為線性化的 PDF。 如果來源文件已加密,此 SaveAsLinearized 方法也接受一個可選的第三個字串參數,用於指定密碼。

: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

輸出結果是什麼樣子的?

這是程式碼產生的檔案:

如何將 MemoryStream 儲存為線性化格式?

SaveAsLinearized 方法也可以接受 Stream 物件作為輸入,為各種應用程式架構提供最大的靈活性。 在與雲端服務整合或處理臨時文件時,此功能至關重要。 了解更多關於將 PDF 文件匯出到記憶體以用於高級場景的資訊。

在這個例子中,我們將把一個 PdfDocument 物件轉換為位元組數組,將其寫入一個 MemoryStream,然後將該流保存為線性化的 PDF 來演示此功能。

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

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

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

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

// Transform PDF bytes to a MemoryStream
MemoryStream memoryStream = new MemoryStream(pdfBytes);

// Save the MemoryStream as a linearized PDF
PdfDocument.SaveAsLinearized(memoryStream, "linearize-stream.pdf");
Imports IronPdf
Imports System.IO

' Instantiate Renderer
Dim renderer As New ChromePdfRenderer()

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

' Get the PDF binary data
Dim pdfBytes As Byte() = pdf.BinaryData

' Transform PDF bytes to a MemoryStream
Dim memoryStream As New MemoryStream(pdfBytes)

' Save the MemoryStream as a linearized PDF
PdfDocument.SaveAsLinearized(memoryStream, "linearize-stream.pdf")
$vbLabelText   $csharpLabel

這種方法在處理臨時文件或需要在不將中間文件寫入磁碟的情況下處理 PDF 時特別有用,可以提高效能和安全性。

這是程式碼產生的檔案:


如何驗證 PDF 是否已線性化?

除了在 PDF 檢視器(如 Adob​​e Acrobat)中檢查文件屬性以查看 PDF 是否線性化之外, IronPDF還提供了一種使用 IsLinearized 方法以程式設計方式檢查此問題的方法。 此方法接受一個字串參數作為檔案路徑,如果 PDF 檔案已加​​密,則也可以接受一個可選的第二個字串參數作為密碼。 這種驗證能力對於品質保證至關重要,並且可以整合到自動化測試工作流程中。

在這個例子中,我們將使用上面三個例子的輸出檔案來測試它們是否線性化,並包含第四個非線性化的 PDF 來展示方法的行為。 如需更進階的 PDF 操作和驗證技術,請探索IronPDF 的全面功能集

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

// First example Linearized PDF
Console.WriteLine(PdfDocument.IsLinearized("linearize.pdf"));

// Second example Linearized PDF
Console.WriteLine(PdfDocument.IsLinearized("linearize-from-bytes.pdf"));

// Third example Linearized PDF
Console.WriteLine(PdfDocument.IsLinearized("linearize-stream.pdf"));

// Fourth example Non-Linearized PDF
Console.WriteLine(PdfDocument.IsLinearized("sample.pdf"));
Imports IronPdf
Imports System

' First example Linearized PDF
Console.WriteLine(PdfDocument.IsLinearized("linearize.pdf"))

' Second example Linearized PDF
Console.WriteLine(PdfDocument.IsLinearized("linearize-from-bytes.pdf"))

' Third example Linearized PDF
Console.WriteLine(PdfDocument.IsLinearized("linearize-stream.pdf"))

' Fourth example Non-Linearized PDF
Console.WriteLine(PdfDocument.IsLinearized("sample.pdf"))
$vbLabelText   $csharpLabel

結果如何?

偵錯輸出顯示 PDF 線性化結果:三個真值和一個假值

如您所見,前三個範例返回 true,而最後一個 PDF(未線性化)返回 false

請注意沒有方法可以檢查 PdfDocument 物件本身是否線性化。 這是因為當 PDF 檔案被開啟並載入到物件中時,其特殊的線性化結構會遺失。因此,目前沒有方法可以將線性化的 PDF 檔案作為位元組數組傳回。 此線性化特徵僅以儲存檔案的形式存在於磁碟上。 )

線性化PDF的最佳實踐

處理線性化 PDF 時,請遵循以下最佳實務:

1.檔案大小注意事項:由於格式重組,線性化可能會略微增加檔案大小。 需要時,可使用IronPDF 的壓縮功能來最佳化檔案大小。

  1. Web部署:線性化PDF非常適合Web應用程式。 配置您的 Web 伺服器以支援位元組範圍請求,從而最大限度地發揮線性化的優勢。

3.效能測試:始終在目標環境中測試線性化 PDF。 在連線速度較慢的情況下處理大檔案時,效能提升最為明顯。

4.相容性:雖然大多數現代 PDF 檢視器都支援線性化 PDF,但請確保與使用者首選的檢視器相容。

如需更多最佳化策略和進階 PDF 處理技術,請參閱IronPDF 的渲染選項文件

常見問題解答

什麼是線性化 PDF,為什麼要使用它?

線性化 PDF 也稱為「Fast Web View」或「Web-optimized PDF」,是針對網際網路串流而重新組織的結構。IronPDF 的線性化功能允許相容的瀏覽器在下載其餘頁面時幾乎立即顯示第一頁,顯著改善了大型文件的用戶體驗,特別是在緩慢或移動網路上。

如何在 C# 中建立線性化 PDF?

使用 IronPDF,您可以使用 SaveAsLinearized 方法輕鬆建立線性化 PDF。只需載入或建立您的 PDF 文件,然後調用 pdf.SaveAsLinearized(pdf.BinaryData, 'output.pdf') 將其儲存為線性化 PDF,並針對快速網頁檢視進行最佳化。

我可以將現有的 PDF 轉換成線性化格式嗎?

是的,IronPDF 允許您將現有的 PDF 轉換為線性化格式。您可以使用 PdfDocument.FromFile('input.pdf') 載入任何 PDF,然後再使用 SaveAsLinearized 方法將其儲存為線性化 PDF,以改善網頁效能。

如何驗證 PDF 是否已經線性化?

IronPDF 提供 IsLinearized 屬性來檢查 PDF 是否線性化。只需載入 PDF 文件並檢查 IsLinearized 布林屬性,即可判斷該文件是否已針對快速網頁檢視進行最佳化。

將 PDF 線性化用於 Web 應用程式的主要優點是什麼?

使用 IronPDF 對 PDF 進行線性化處理,可立即顯示第一頁,消除大型文件令人沮喪的載入時間,在專業環境中能夠更快地做出決策,並顯著改善使用者體驗,特別是在關鍵任務或時間敏感的應用程式中。

Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。

準備好開始了嗎?
Nuget 下載 18,120,209 | 版本: 2026.4 剛剛發布
Still Scrolling Icon

還在捲動嗎?

想要快速證明? PM > Install-Package IronPdf
執行範例 觀看您的 HTML 變成 PDF。