IRONSOFTWAREHOME

如何使用 IronPDF 使用 C# 线性化 PDF.

Curtis Chau
Curtis Chau
Updated: 2026年6月4日

线性化 PDF 可在下载时立即显示首页,极大地改善了大型文档的用户体验。 IronPDF 提供了在 C# 中创建和验证这些文档的简便方法,可优化文档以实现快速的网页浏览。

线性化PDF,也被称为"快速网页查看"或"网页优化PDF",是为了互联网流媒体而结构重组的。 这使得兼容的查看器几乎可以立即显示文档的第一页,远在整个文件下载完成之前。

在任务关键或时间紧迫的应用中,此功能尤其有用。 它消除了大型文档的加载时间,尤其是在慢速或移动网络上,使用户可以立即与内容互动。 这促进了更快的决策,并提高了专业环境中的生产力。 结合 IronPDF 的性能优化功能,它们能提供卓越的阅读体验。

在本文中,我们将探讨 IronPDF 为开发人员提供的将文档导出为线性化 PDF 的选项。

快速入门:将 PDF 线性化以加快网页浏览速度

使用IronPDF开始轻松线性化您的PDF。 这个简单的代码示例展示了如何通过使用IronPDF的LinearizePdf方法优化PDF,以更快地加载到网络浏览器中。 通过允许页面在加载时显示,而不是等待整个文档下载,提高用户体验。 按照以下步骤简化您的PDF并提高其在线共享的效率。

  1. 1Install IronPDF with NuGet Package Manager

    PM > Install-Package IronPdf

  2. 2Copy and run this code snippet.

    var pdf = IronPdf.PdfDocument.FromFile("input.pdf");
    pdf.SaveAsLinearized(pdf.BinaryData, "linearized.pdf");
    C#
  3. 3Deploy to test on your live environment

    Start using IronPDF in your project today with a free trial
    arrow pointer

如何将 PDF 保存为线性化格式?

使用IronPDF将文档保存为线性化PDF是一个快速简便的过程。 在开始之前,请确保您已通过 NuGet 或其他可用的安装方法安装了 IronPDF。

在这个例子中,我们将使用RenderHtmlAsPdf将HTML字符串渲染为PDF。 对于更复杂的 HTML 文档,您可能需要了解 IronPDF 的 HTML 至 PDF 转换功能。 之后,我们将使用PdfDocument对象保存为线性化PDF,传递输出文件路径作为字符串参数。

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");

此过程会重构 PDF 的内部格式,将关键信息置于文件开头,从而支持渐进式下载和渲染。 在通过 Web 应用程序提供 PDF 文件时,该工具尤为实用。

输出结果是什么样的?

PDF 属性对话框,高亮显示快速网络视图设置,演示线性化 PDF 优化

如何将 PDF 字节保存为线性化格式?

除了直接保存PdfDocument对象外,IronPDF还允许用户将PDF字节数组转换为线性化PDF。 这种灵活性在处理数据库中存储的 PDF 或在内存密集型应用程序中处理 PDF 时特别有用。 有关在内存中处理 PDF 的更多信息,请参阅我们的从内存流中加载 PDF 指南。

在这个示例中,我们将演示将HTML字符串渲染为SaveAsLinearized重载将该数据保存为线性化PDF。

这是代码生成的文件:

如何将 MemoryStream 保存为线性化?

接受SaveAsLinearized重载仍将线性化输出写入到指定的输出路径文件。 当源 PDF 已处于流式状态(来自数据库、网络或内存缓冲区),且您希望将线性化结果持久化到磁盘时,此功能非常有用。

在这个例子中,我们将MemoryStream,然后保存流为线性化PDF文件以展示此功能。

如果您需要完全避免写入磁盘(例如出于 HIPAA、PCI-DSS 合规要求,或针对沙箱应用、使用只读文件系统的云函数),请参阅下一节中的内存内方法。

这是代码生成的文件:

如何在内存中完全线性化?

对于被沙箱的环境、云功能或合规敏感的工作流程(HIPAA,PCI-DSS),其中写入磁盘是受限或不想要的,IronPDF提供LinearizePdfToStream方法,它们直接返回线性化的PDF,没有临时文件或磁盘I/O。

这些方法既可作为Stream输入的静态方法使用。

获取线性化输出(字节数组)

当您需要LinearizePdfToBytes

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");

将线性化输出作为流获取

当将输出传输至另一个流(云存储上传、HTTP响应体、网络套接字)而不在内存中缓冲整个文件时请使用LinearizePdfToStream

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

控制线性化策略

所有六种方法都接受可选的LinearizationMode参数:

| 模式 | 行为 | 何时使用 | |---|---|---| |Automatic(默认)| 首先尝试基于文件的方法;若磁盘访问受限,则回退到内存中处理 | 推荐默认设置; 适用于大多数环境| | InMemory | 完全在内存中进行线性化处理,零磁盘 I/O | HIPAA / PCI-DSS 工作流、沙箱应用、只读文件系统、云函数 | | FileBased | 使用系统临时目录中的临时文件 | 当您明确需要临时文件行为且拥有写入权限时 |

using IronPdf;

// Force in-memory linearization (no disk I/O at all)
byte[] linearized = pdf.LinearizePdfToBytes(LinearizationMode.InMemory);
Please note: 当输入字节为null/空或输入流不可读时抛出ArgumentException。 当输入流为null时抛出ArgumentNullException

如何将线性化 PDF 流式传输到 HTTP 响应中?

结合FileStreamResult直接将网页优化PDF服务至浏览器,而不写入临时文件:

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"
        };
    }
}

浏览器接收的是经过线性化的 PDF 文件,它会先显示第一页,其余内容则在加载过程中流式传输——且没有任何中间文件会触及服务器的磁盘。


我最喜欢的这种库是 IronPDF。它允许快速高效地操作 PDF 文件。它还具有许多有价值的功能,比如导出为 PDF/A 格式和数字签名 PDF 文档。

Milan Jovanovic

微软MVP

查看案例研究

IronOCR 意味着我们每年可以节省 $40,000 的人工处理成本,同时提高生产力,并释放资源用于高影响任务。我强烈推荐它。

Brent Matzelle

首席技术官,OPYN

查看案例研究

Iron Suite 在我们的运营中起着至关重要的作用。这些工具提高了业务各方面的效率,包括创建平面图和改善库存管理。

David Jones

首席软件工程师,Agorus Build

查看案例研究

如何验证 PDF 是否已线性化?

除了在PDF查看器(如Adobe Acrobat)中查看文档属性以查看PDF是否已线性化,IronPDF还提供一种方法可通过IsLinearized方法以编程方式检查这一点。 它接受一个字符串参数作为文件路径,如果 PDF 文件已加密,则可选地接受第二个字符串参数作为密码。 这种验证能力对于质量保证至关重要,可以集成到自动测试工作流程中。

在本示例中,我们将使用上述三个示例的输出文件来测试它们是否线性化,并包含第四个非线性化 PDF 来展示该方法的行为。 有关更高级的 PDF 操作和验证技术,请探索 IronPDF 的全面功能集

结果如何?

调试输出显示 PDF 线性化结果:三个真值和一个假值

如您所见,前三个示例返回IsLinearized

Please note: 线性化是文件级结构,因此验证通过IsLinearized在保存的文件上工作。 要以字节或流的形式生成线性输出而不写入磁盘,请使用上面描述的LinearizePdfToStream方法。

线性化 PDF 的最佳实践

在处理线性化 PDF 时,请考虑以下最佳实践:

1.文件大小注意事项:由于格式重组,线性化可能会略微增加文件大小。 必要时使用 IronPDF 的压缩功能来优化文件大小。

2.网络部署:线性化 PDF 是网络应用的理想选择。 配置您的网络服务器以支持字节范围请求,从而最大限度地发挥线性化的优势。

3.性能测试:始终在目标环境中测试线性化 PDF。 在连接速度较慢的情况下,大文件的性能提升最为明显。

4.兼容性:虽然大多数现代 PDF 阅读器都支持线性化 PDF,但仍要确保与用户首选阅读器的兼容性。

有关其他优化策略和高级 PDF 处理技术,请参阅 IronPDF 的渲染选项文档

Frequently Asked Questions

什么是线性化 PDF,为什么要使用它?

线性化 PDF 也称为 "快速网络视图 "或 "网络优化 PDF",是为网络流媒体而重新组织的结构。IronPDF 的线性化功能允许兼容的阅览器在下载其余部分时几乎立即显示第一页,极大地改善了大型文档的用户体验,尤其是在慢速网络或移动网络上。

如何用 C# 创建线性化 PDF?

using 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 的主要好处是什么?

using IronPDF 对 PDF 进行线性化处理,可立即显示第一页,消除大型文档令人沮丧的加载时间,在专业环境中实现更快的决策,并显著改善用户体验,尤其是在关键任务或时间敏感型应用中。

Curtis Chau
Technical Writer

Curtis Chau holds a Bachelor’s degree in Computer Science (Carleton University) and specializes in front-end development with expertise in Node.js, TypeScript, JavaScript, and React. Passionate about crafting intuitive and aesthetically pleasing user interfaces, Curtis enjoys working with modern frameworks and creating well-structured, visually appealing manuals.

...
Read More

准备开始了吗?

Nuget Downloads 20,389,208版本:2026.7刚刚发布

立即获取您的免费30 天试用密钥
无需信用卡或创建账户

免费试用 IronPDF

5 分钟内设置完成

C# PDF DLL

下载 DLL

立即下载

或在此处下载 Windows 安装程序。

  1. 下载并解压 IronPDF 到您的解决方案目录中的 ~/Libs 之类的位置
  2. 在 Visual Studio 解决方案资源管理器中,右键点击引用。选择浏览,“IronPDF.dll”
C# 用于 PDF 的 NuGet 库

通过 NuGet 安装

                  Install-Package IronPdf
                
nuget.org/packages/IronPdf/
  1. 在解决方案资源管理器中,右键点击引用,管理 NuGet 包
  2. 选择浏览并搜索 “IronPDF”
  3. 选择包并安装
Key in blue circle

立即获取免费的 30 天试用版密钥

bullet_checked无需信用卡或创建账户
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
预约您的免费现场演示
Booking Badge related to IronPDF Product Demo

深受全球数百万工程师信赖

Iron Software 的客户徽标
获取您的无义务咨询
填写下面的表格或通过sales@ironsoftware.com
您的资料将始终保密。
深受全球数百万工程师信赖
Iron Software 的客户徽标
立即获取您的免费30 天试用密钥
无需信用卡或创建账户