using IronPdf;// Instantiate Renderervar renderer = new ChromePdfRenderer();// Create a PDF from an HTML string using C#var pdf = renderer.RenderHtmlAsPdf("<h1>Pdf Bytes</h1>");// Get the PDF binary datavar pdfBytes = pdf.BinaryData;// Save the PDF binary data as a linearized PDF filePdfDocument.SaveAsLinearized(pdfBytes, "linearize-from-bytes.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");
ImportsIronPdf' Instantiate RendererDim renderer As New ChromePdfRenderer()' Create a PDF from an HTML string using VB.NETDim pdf = renderer.RenderHtmlAsPdf("<h1>Pdf Bytes</h1>")' Get the PDF binary dataDim pdfBytes = pdf.BinaryData' Save the PDF binary data as a linearized PDF filePdfDocument.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")
using IronPdf;// Instance method: linearize the current document, get bytes backvar pdf = PdfDocument.FromFile("input.pdf");byte[] linearizedBytes = pdf.LinearizePdfToBytes();// Static method: linearize from a byte array without instantiating PdfDocumentbyte[] inputBytes = File.ReadAllBytes("input.pdf");byte[] result = PdfDocument.LinearizePdfToBytes(inputBytes);// Password-protected PDFsbyte[] 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");
ImportsIronPdf' Instance method: linearize the current document, get bytes backDim pdf = PdfDocument.FromFile("input.pdf")Dim linearizedBytes AsByte() = pdf.LinearizePdfToBytes()' Static method: linearize from a byte array without instantiating PdfDocumentDim inputBytes AsByte() = File.ReadAllBytes("input.pdf")Dim result AsByte() = PdfDocument.LinearizePdfToBytes(inputBytes)' Password-protected PDFsDim decrypted AsByte() = 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")
// Instance method: return a StreamStream linearizedStream = pdf.LinearizePdfToStream();// Static method: linearize from a streamusing 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);
ImportsSystem.IO' Instance method: return a StreamDim linearizedStream AsStream = pdf.LinearizePdfToStream()' Static method: linearize from a streamUsing inputStream AsFileStream = File.OpenRead("input.pdf") Dim resultStream AsStream = PdfDocument.LinearizePdfToStream(inputStream)EndUsing
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
控制線性化策略
所有六種方法都接受可選的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);
using IronPdf;
// Force in-memory linearization (no disk I/O at all)
byte[] linearized = pdf.LinearizePdfToBytes(LinearizationMode.InMemory);
ImportsIronPdf' Force in-memory linearization (no disk I/O at all)Dim linearized AsByte() = pdf.LinearizePdfToBytes(LinearizationMode.InMemory)
Imports IronPdf
' Force in-memory linearization (no disk I/O at all)
Dim linearized As Byte() = pdf.LinearizePdfToBytes(LinearizationMode.InMemory)
using IronPdf;using Microsoft.AspNetCore.Mvc;public class ReportController : Controller{ public IActionResultDownloadReport() { var pdf = PdfDocument.FromFile("quarterly-report.pdf"); Stream linearized = pdf.LinearizePdfToStream(LinearizationMode.InMemory); return new FileStreamResult(linearized, "application/pdf") {FileDownloadName = "quarterly-report.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"
};
}
}
ImportsIronPdfImportsMicrosoft.AspNetCore.MvcImportsSystem.IOPublic Class ReportControllerInheritsController Public Function DownloadReport() AsIActionResult Dim pdf = PdfDocument.FromFile("quarterly-report.pdf") Dim linearized AsStream = pdf.LinearizePdfToStream(LinearizationMode.InMemory) Return New FileStreamResult(linearized, "application/pdf") With { .FileDownloadName = "quarterly-report.pdf" } End FunctionEnd Class
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
How can I verify if a PDF is linearized using IronPDF?
IronPDF offers the `IsLinearized` method to programmatically check if a PDF is linearized. This can be integrated into automated testing workflows for quality assurance.
What are the benefits of using IronPDF's `LinearizationMode`?
The `LinearizationMode` in IronPDF allows you to control how linearization is performed, offering options like `Automatic`, `InMemory`, and `FileBased`. These modes provide flexibility depending on the environment and requirements.
What are best practices for using linearized PDFs?
Best practices for linearized PDFs include considering file size, using web deployment strategies that support byte-range requests, performing performance testing in target environments, and ensuring viewer compatibility.
Can IronPDF linearize a PDF directly from a stream?
Yes, IronPDF can linearize a PDF directly from a stream using the `LinearizePdfToStream` method. This is useful for cloud uploads, network sockets, or HTTP response bodies.
How does linearization impact PDF file size?
Linearization may slightly increase PDF file size due to its restructured format. To manage file size, consider using IronPDF's compression features to optimize your documents.