IronPDF를 사용하여 C#으로 PDF를 선형화하는 방법

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

선형화된 PDF는 다운로드 중에도 첫 페이지를 즉시 표시할 수 있어, 대용량 문서의 사용자 경험을 획기적으로 개선합니다. IronPDF는 C#에서 문서를 생성하고 검증할 수 있는 간편한 방법을 제공하여, 웹에서 빠르게 볼 수 있도록 문서를 최적화합니다.

"Fast Web View" 또는 "웹 최적화 PDF"라고도 하는 선형화 PDF는 인터넷 스트리밍에 적합하도록 구조가 재구성된 PDF입니다. 이를 통해 호환되는 뷰어는 전체 파일 다운로드가 완료되기 훨씬 전에 문서의 첫 페이지를 거의 즉시 표시할 수 있습니다.

이 기능은 미션 크리티컬하거나 시간에 민감한 애플리케이션에서 특히 유용합니다. 특히 느린 네트워크나 모바일 환경에서 대용량 문서를 불러오는 데 걸리는 지루한 로딩 시간을 없애주어, 사용자가 콘텐츠와 즉시 상호작용할 수 있게 해줍니다. 이를 통해 Professional 환경에서 의사 결정 속도를 높이고 생산성을 향상시킬 수 있습니다. IronPDF의 성능 최적화 기능과 결합하면 탁월한 문서 열람 경험을 제공합니다.

이 사용법 기사에서는 IronPDF가 개발자에게 제공하는, 문서를 선형화된 PDF로 내보내는 다양한 옵션을 살펴보겠습니다.

빠른 시작: 웹에서 더 빠르게 PDF를 보려면 PDF를 선형화하세요

IronPDF를 사용하여 손쉽게 PDF를 텍스트 파일로 변환해 보세요. 이 간단한 코드 예제는 IronPDF의 LinearizePdf 메서드를 사용하여 웹 브라우저에서 PDF가 더 빠르게 로드되도록 최적화하는 방법을 보여줍니다. 문서 전체가 다운로드될 때까지 기다리지 않고 페이지가 로드되는 대로 표시되도록 하여 사용자 경험을 향상시킵니다. 아래 단계를 따라 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를 Linearized 형식으로 저장하려면 어떻게 해야 하나요?

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를 제공할 때 특히 유용합니다.

번역 결과물은 어떻게 보이나요?

'Fast Web View' 설정이 강조 표시된 PDF 속성 대화 상자. 선형화된 PDF 최적화 기능을 보여줍니다.

PDF 바이트를 선형화된 형식으로 저장하려면 어떻게 해야 하나요?

PdfDocument 객체를 직접 저장하는 것 외에도, IronPDF를 사용하면 PDF 바이트 배열을 선형화된 PDF로 변환할 수 있습니다. 이러한 유연성은 데이터베이스에 저장된 PDF를 다루거나 메모리 집약적인 애플리케이션에서 PDF를 처리할 때 특히 유용합니다. 메모리 내 PDF 작업에 대한 자세한 내용은 메모리 스트림에서 PDF를 로드하는 방법에 대한 가이드를 참조하십시오.

이 예제에서는 HTML 문자열을 PdfDocument 객체로 렌더링하고, 해당 바이트 배열을 얻은 다음, SaveAsLinearized 입력, 출력 경로 및 선택적 암호를 받는 byte[] 오버로드를 사용하여 해당 데이터를 선형화된 PDF로 저장하는 방법을 보여드리겠습니다.

번역 결과물은 어떻게 보이나요?

다음은 코드가 생성한 파일입니다:

MemoryStream을 선형화된(Linearized) 형식으로 저장하려면 어떻게 해야 하나요?

SaveAsLinearized 입력을 받는 Stream 오버로드는 여전히 선형화된 출력을 지정된 출력 경로의 파일에 기록합니다. 이 기능은 원본 PDF가 이미 스트림 형태(데이터베이스, 네트워크 또는 메모리 내 버퍼에서 가져온)로 제공되며, 선형화된 결과를 디스크에 영구 저장하고자 할 때 유용합니다.

이 예제에서는 PdfDocument 객체를 바이트 배열로 변환하고, 이를 MemoryStream에 기록한 다음, 스트림을 선형화된 PDF 파일로 저장하여 이 기능을 시연해 보겠습니다.

디스크에 전혀 기록하지 않아야 하는 경우(HIPAA, PCI-DSS, 샌드박스 앱 또는 읽기 전용 파일 시스템을 사용하는 클라우드 함수 등), 다음 섹션의 메모리 내 메서드를 참조하십시오.

다음은 코드가 생성한 파일입니다:

메모리 내에서 완전히 선형화하는 방법은 무엇입니까?

디스크 쓰기가 제한되거나 바람직하지 않은 샌드박스 환경, 클라우드 함수 또는 규정 준수(HIPAA, PCI-DSS)가 중요한 워크플로에서 IronPDF는 임시 파일이나 디스크 I/O 없이 선형화된 PDF를 직접 반환하는 LinearizePdfToBytesLinearizePdfToStream 메서드를 제공합니다.

이 메서드들은 PdfDocument의 인스턴스 메서드이자, byte[] 또는 Stream 입력을 받는 정적 메서드로 모두 사용할 수 있습니다.

바이트 단위의 선형화 출력값 가져오기

HTTP 응답, 데이터베이스 byte[] 열 또는 고정 크기 버퍼에 varbinary가 필요한 경우 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");
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

스트림으로 선형화된 출력 받기

전체 파일을 메모리에 버퍼링하지 않고 다른 스트림(클라우드 BLOB 업로드, 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);
// 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

선형화 전략 제어

여섯 가지 메서드 모두 선택적 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);
Imports IronPdf

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

참고해 주세요ArgumentException는 입력 바이트가 null이거나 비어 있거나, 입력 스트림을 읽을 수 없을 때 발생합니다. ArgumentNullException은 입력 스트림이 null일 때 발생합니다.

선형화된 PDF를 HTTP 응답으로 스트리밍하려면 어떻게 해야 합니까?

LinearizePdfToStream를 ASP.NET의 FileStreamResult와 결합하여 임시 파일을 생성하지 않고 브라우저에 직접 웹 최적화 PDF/A를 제공할 수 있습니다:

: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

브라우저는 선형화된 PDF를 수신하여 첫 페이지를 표시하기 시작하고 나머지 페이지는 스트리밍으로 전송되며, 중간 파일이 서버 디스크에 저장되는 일은 전혀 없습니다.


PDF가 선형화되었는지 어떻게 확인할 수 있나요?

IronPDF는 Adobe Acrobat과 같은 PDF 뷰어에서 문서 속성을 확인하여 PDF가 선형화되었는지 확인하는 것 외에도, IsLinearized 메서드를 사용하여 프로그래밍 방식으로 이를 확인할 수 있는 방법을 제공합니다. 파일 경로를 지정하는 문자열 매개변수를 받으며, PDF 파일이 암호화된 경우 비밀번호를 지정하는 선택적 두 번째 문자열 매개변수를 받습니다. 이 검증 기능은 품질 보증에 필수적이며, 자동화된 테스트 워크플로에 통합될 수 있습니다.

이 예제에서는 위의 세 가지 예제에서 생성된 출력 파일을 사용하여 파일이 선형화되었는지 테스트하고, 이 방법의 동작을 보여주기 위해 선형화되지 않은 네 번째 PDF 파일을 포함할 것입니다. 보다 고급 PDF 조작 및 검증 기법을 원하신다면, IronPDF의 포괄적인 기능 세트를 확인해 보십시오.

결과는 어떻게 되나요?

PDF 선형화 결과를 보여주는 디버그 출력: True 값 3개와 False 값 1개

보시다시피, 처음 세 가지 예시는 MemoryStream를 반환하는 반면, 선형화되지 않은 마지막 PDF는 IsLinearized를 반환합니다.

참고해 주세요선형화는 파일 수준 구조이므로, IsLinearized을 통해 저장된 파일에서 검증이 수행됩니다. 디스크에 기록하지 않고 바이트 또는 스트림 형태의 선형화된 출력을 생성하려면 위에서 설명한 LinearizePdfToBytesLinearizePdfToStream 메서드를 사용하십시오.

선형화된 PDF를 위한 모범 사례

선형화된 PDF를 다룰 때는 다음 모범 사례를 고려하십시오:

  1. 파일 크기 고려 사항: 형식 재구성으로 인해 선형화(Linearization) 시 파일 크기가 약간 증가할 수 있습니다. 필요할 경우 IronPDF의 압축 기능을 사용하여 파일 크기를 최적화하십시오.

  2. 웹 배포: 선형화된 PDF는 웹 애플리케이션에 이상적입니다. 선형화의 이점을 극대화하려면 웹 서버를 구성하여 바이트 범위 요청을 지원하도록 하십시오.

  3. 성능 테스트: 항상 대상 환경에서 선형화된 PDF를 테스트하십시오. 성능 개선 효과는 느린 연결 환경에서 대용량 파일을 다룰 때 가장 두드러집니다.

  4. 호환성: 대부분의 최신 PDF 뷰어는 선형화된 PDF를 지원하지만, 사용자가 선호하는 뷰어와의 호환성을 반드시 확인하십시오.

추가적인 최적화 전략 및 고급 PDF 처리 기법에 대해서는 IronPDF의 렌더링 옵션 문서를 참조하십시오.

자주 묻는 질문

선형화된 PDF란 무엇이며 왜 사용해야 할까요?

선형화된 PDF는 '빠른 웹 보기' 또는 '웹 최적화 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는 PDF가 선형화되었는지 확인하는 IsLinearized 속성을 제공합니다. PDF 문서를 불러온 후 IsLinearized 부울 속성을 확인하여 문서가 웹에서 빠르게 볼 수 있도록 최적화되었는지 여부를 확인할 수 있습니다.

웹 애플리케이션에서 PDF를 선형화할 때 얻을 수 있는 주요 이점은 무엇입니까?

IronPDF를 사용하여 PDF를 선형화하면 첫 페이지가 즉시 표시되고, 대용량 문서의 로딩 시간 지연 문제가 해결되며, 업무 환경에서 더 빠른 의사 결정을 지원하고, 특히 중요하거나 시간 제약이 있는 애플리케이션에서 사용자 경험을 크게 향상시킬 수 있습니다.

커티스 차우
기술 문서 작성자

커티스 차우는 칼턴 대학교에서 컴퓨터 과학 학사 학위를 취득했으며, Node.js, TypeScript, JavaScript, React를 전문으로 하는 프론트엔드 개발자입니다. 직관적이고 미적으로 뛰어난 사용자 인터페이스를 만드는 데 열정을 가진 그는 최신 프레임워크를 활용하고, 잘 구성되고 시각적으로 매력적인 매뉴얼을 제작하는 것을 즐깁니다.

커티스는 개발 분야 외에도 사물 인터넷(IoT)에 깊은 관심을 가지고 있으며, 하드웨어와 소프트웨어를 통합하는 혁신적인 방법을 연구합니다. 여가 시간에는 게임을 즐기거나 디스코드 봇을 만들면서 기술에 대한 애정과 창의성을 결합합니다.

시작할 준비 되셨나요?
Nuget 다운로드 19,014,616 | 버전: 2026.5 just released
Still Scrolling Icon

아직도 스크롤하고 계신가요?

빠른 증거를 원하시나요? PM > Install-Package IronPdf
샘플을 실행하세요 HTML이 PDF로 변환되는 것을 지켜보세요.