IRONSOFTWAREHOME
PDF 도구

어도비 프로 없이 PDF 편집하는 방법 (초보자 튜토리얼)

Curtis Chau
Curtis Chau
Updated: 2026년 7월 19일

질문: iText로 ASP.NET에서 PDF를 만들 수 있습니까? 그리고 더 나은 대안이 있습니까? 예 -- iText는 오랜 .NET PDF 라이브러리지만 ChromePdfRenderer는 낮은 수준의 PDF 문서 구조를 배울 필요가 없는 현대적인 HTML-to-PDF 접근 방식을 제공합니다. 이 가이드는 두 라이브러리를 작동 코드 예제와 함께 비교하여 프로젝트에 적합한 도구를 선택할 수 있도록 합니다.

iText와 ChromePdfRenderer의 주요 차이점은 무엇인가요?

iText는 Java iText 라이브러리의 .NET 포트로 문서 클래스와 저수준의 PDF 콘텐츠 조작을 통해 프로그래밍적으로 PDF를 생성합니다. 강력하지만, iText를 사용하려면 PDF 문서 구조 이해, 문서 객체 작업, 좌표 및 페이지 크기 사양을 사용한 요소 수동 배치가 필요합니다. API는 본질적으로 장황하며, 라이브러리는 PDF 명세의 모든 복잡성을 노출하므로 다듬어진 출력을 생성하기 전에 배울 것이 많습니다.

ChromePdfRenderer는 Chrome 렌더링 엔진을 사용하여 HTML-to-PDF 변환에 중점을 둔 다른 접근법을 취합니다. 개발자는 친숙한 HTML 및 CSS를 사용하여 PDF 파일을 생성할 수 있어 PDF 생성을 웹 페이지 설계만큼 쉽게 만들 수 있습니다. ChromePdfRenderer는 PDF 생성 로직을 백그라운드에서 처리하여 현대적인 스타일링과 JavaScript 지원을 포함한 문서를 생성할 수 있습니다. 렌더링 파이프라인이 Chromium에 의해 구동되므로, 최신 브라우저에서 작동하는 모든 레이아웃이 PDF 출력에 충실하게 번역됩니다 -- 플렉스박스, 그리드, 웹 글꼴, JavaScript로 생성된 콘텐츠를 포함하여.

이 구조적 차이에 따른 실질적 결과는 iText는 PDF 파일의 모든 바이트에 대한 미세한 조정 가능한 제어를 원하던 개발자를 보상하며, ChromePdfRenderer는 이미 가지고 있는 기술로 시각적으로 정제된 문서를 빠르게 만들고자 하는 개발자를 보상합니다. 대부분의 웹 애플리케이션 시나리오 -- 송장, 보고서, 주문 확인서 및 데이터 내보내기 -- 에서는 HTML 접근법이 더 빠르게 빌드되고 유지 관리가 용이합니다.

iText 대 ChromePdfRenderer: 기능 비교
특징iTextChromePdfRenderer
HTML을 PDF로 변환제한적 (XMLWorker 부가 기능 통해)전체 Chrome 엔진 렌더링
CSS 지원부분적전체 CSS3 지원
JavaScript 지원None예 (Chrome 엔진 통해)
라이선스AGPL (상업적 라이선스 필요)상업적, 로열티 없음
학습 곡선높음 (PDF API 지식 필요)낮음 (HTML/CSS로 충분)
NuGet 설치Install-Package iTextSharpInstall-Package IronPdf
.NET 호환성.NET Framework, .NET Core.NET 8, .NET 9, .NET 10, Framework

.NET 프로젝트에 이러한 라이브러리를 어떻게 설치하나요?

어느 라이브러리든 설치는 NuGet 패키지 관리자에서 시작합니다. iText의 경우, 최신 iText 버전은 AGPL 라이선스 하에 운영되며, 애플리케이션을 오픈소스로 하거나 상업용 라이선스를 구매해야 합니다:

# Install iTextSharp via Package Manager Console
Install-Package iTextSharp
SHELL

ChromePdfRenderer는 NuGet 패키지 관리자 콘솔, .NET CLI 또는 Visual Studio의 NuGet UI에서 직접 검색을 통해 설치할 수 있습니다:

PM > Install-Package IronPdf

설치 후, ChromePdfRenderer는 단일 using 문으로 사용할 준비가 됩니다. 기본 PDF 생성을 위한 추가 구성이 필요하지 않습니다. 고급 시나리오 -- 예를 들어 라이선스 키 설정, 렌더링 옵션 구성, 클라우드 환경에서 PDF 생성과 관련된 경우 -- 에 대해서는 ChromePdfRenderer 문서를 참조하세요. ChromePdfRenderer는 Linux, macOS, 그리고 컨테이너화된 환경에서 Docker 또는 Kubernetes를 실행하는 Windows 배포를 지원하므로 현대적인 클라우드 네이티브 ASP.NET 애플리케이션에 적합합니다.

각 라이브러리로 기본 PDF 문서를 어떻게 생성하나요?

API 차이를 명확하게 이해하는 가장 좋은 방법은 두 라이브러리를 나란히 사용하여 간단한 'Hello World' PDF를 생성하는 것입니다.

iText로 PDF 생성

iText로는 직접 Document 클래스와 PdfWriter 작업을 합니다:

using iTextSharp.text;
using iTextSharp.text.pdf;

var memoryStream = new MemoryStream();
Document pdfDoc = new Document(PageSize.A4, 25, 25, 25, 15);
PdfWriter writer = PdfWriter.GetInstance(pdfDoc, memoryStream);
pdfDoc.Open();

var paragraph = new Paragraph("Hello World - PDF Document");
paragraph.Font = FontFactory.GetFont(FontFactory.HELVETICA, 16);
pdfDoc.Add(paragraph);
pdfDoc.Add(new Paragraph("Creating PDF documents with iTextSharp"));

pdfDoc.Close();

// Return as a downloadable file
var pdfBytes = memoryStream.ToArray();

이는 Document, PdfWriter, Paragraph, FontFactory 상호작용 방법을 알아야 합니다 -- PDF 생성에 익숙하지 않은 개발자들에게는 비선형적인 학습 투자입니다.

ChromePdfRenderer로 PDF 생성

ChromePdfRenderer를 활용하면, 동등한 작업이 친숙한 HTML을 사용해 수행됩니다:

using IronPdf;

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(@"
    <h1>Hello World - PDF Document</h1>
    <p>Creating PDFs with ChromePdfRenderer is straightforward!</p>
");

var pdfBytes = pdf.BinaryData;
C#

ChromePdfRenderer의 접근 방식은 저수준 PDF 요소와 작업할 필요를 제거하여 직접 HTML을 작성할 수 있게 합니다. ChromePdfRenderer 클래스는 Chromium 기반 엔진을 사용하여 모든 렌더링을 내부적으로 처리하여 픽셀 정확한 출력을 보장합니다.

이미지와 CSS로 스타일이 적용된 PDF를 어떻게 생성하나요?

스타일이 적용된 문서는 두 라이브러리 간의 가장 큰 차이를 드러냅니다. 송장, 보고서, 브랜드 문서 생성 시, ChromePdfRenderer의 CSS 기반 스타일링은 요구되는 코드의 양을 크게 줄입니다.

ChromePdfRenderer로 송장 생성

using IronPdf;

var html = @"
    <style>
        body { font-family: Arial, sans-serif; margin: 0; }
        .invoice-header { background: #4CAF50; color: white; padding: 20px; }
        .invoice-table { width: 100%; border-collapse: collapse; margin-top: 20px; }
        .invoice-table th, .invoice-table td {
            border: 1px solid #ddd; padding: 8px; text-align: left;
        }
        .invoice-table th { background-color: #f2f2f2; }
        .total { font-size: 18px; font-weight: bold; margin-top: 16px; }
    </style>
    <div class='invoice-header'>
        <h1>Invoice #2024-001</h1>
        <p>Due: March 15, 2024</p>
    </div>
    <table class='invoice-table'>
        <tr><th>Item</th><th>Quantity</th><th>Unit Price</th><th>Total</th></tr>
        <tr><td>PDF License</td><td>1</td><td>$599</td><td>$599</td></tr>
        <tr><td>Support Package</td><td>1</td><td>$199</td><td>$199</td></tr>
    </table>
    <p class='total'>Grand Total: $798</p>
";

var renderer = new ChromePdfRenderer();
var pdfDocument = renderer.RenderHtmlAsPdf(html);
var pdfBytes = pdfDocument.BinaryData;

iText를 사용한 청구서 생성

iText로 유사한 출력을 얻으려면 시각적 요소를 프로그래밍적으로 구성해야 합니다:

using iTextSharp.text;
using iTextSharp.text.pdf;

var output = new MemoryStream();
var document = new Document(PageSize.A4);
PdfWriter.GetInstance(document, output);
document.Open();

// Header -- manual font and color setup
var titleFont = FontFactory.GetFont(FontFactory.HELVETICA_BOLD, 20,
    new BaseColor(255, 255, 255));
var headerParagraph = new Paragraph("Invoice #2024-001", titleFont);
document.Add(headerParagraph);

// Table -- each cell must be created individually
PdfPTable table = new PdfPTable(4);
table.WidthPercentage = 100;

string[] headers = { "Item", "Quantity", "Unit Price", "Total" };
foreach (var h in headers)
{
    var cell = new PdfPCell(new Phrase(h,
        FontFactory.GetFont(FontFactory.HELVETICA_BOLD, 10)));
    cell.BackgroundColor = new BaseColor(242, 242, 242);
    table.AddCell(cell);
}

table.AddCell("PDF License");
table.AddCell("1");
table.AddCell("$599");
table.AddCell("$599");
document.Add(table);

var totalFont = FontFactory.GetFont(FontFactory.HELVETICA_BOLD, 14);
document.Add(new Paragraph("Grand Total: $798", totalFont));
document.Close();

차이는 명확합니다: ChromePdfRenderer는 CSS, 최신 HTML, JavaScript를 다루는 반면, iText는 각 요소의 수동 생성, 글꼴 지정, 셀 별 테이블 구성이 필요합니다. 수십 개의 서로 다른 템플릿을 생성하는 문서 중심 애플리케이션의 경우 이러한 코드 양의 차이는 시간이 지남에 따라 상당히 증가합니다.

ASP.NET에서 서버 측 PDF 생성을 어떻게 처리합니까?

두 라이브러리 모두 ASP.NET 애플리케이션의 서버 측 PDF 생성을 지원합니다. 바이트를 생성하는 라이브러리에 상관없이 PDF를 다운로드 가능한 파일 응답으로 반환하는 패턴은 유사합니다. 생산 사용을 위한 주요 고려 사항은 메모리 관리, 스레드 안전성 및 응답 구성입니다. 두 라이브러리 모두 메모리 내 스트림을 사용하므로 대용량 PDF를 필요 이상으로 메모리에 보관하지 않도록 해야 합니다. ChromePdfRenderer의 ChromePdfRenderer은 요청당 인스턴스화되도록 설계되었으며, 동시 요청 간의 공유 상태를 걱정할 필요가 없습니다.

ChromePdfRenderer를 사용한 ASP.NET Core 컨트롤러 작업

using IronPdf;
using Microsoft.AspNetCore.Mvc;

[ApiController]
[Route("api/[controller]")]
public class PdfController : ControllerBase
{
    [HttpGet("invoice/{id}")]
    public IActionResult GenerateInvoice(int id)
    {
        var html = BuildInvoiceHtml(id); // your HTML template

        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
        renderer.RenderingOptions.MarginTop = 20;
        renderer.RenderingOptions.MarginBottom = 20;

        var pdf = renderer.RenderHtmlAsPdf(html);

        return File(pdf.BinaryData, "application/pdf", $"invoice-{id}.pdf");
    }

    private static string BuildInvoiceHtml(int id)
    {
        return $"<h1>Invoice #{id}</h1><p>Generated on {DateTime.UtcNow:yyyy-MM-dd}</p>";
    }
}

ASP.NET MVC(비-Core) 프로젝트의 경우 같은 방식으로 FileResult을 반환하세요. ChromePdfRenderer는 또한 URL에서 PDF 생성을 지원하여 HTML 문자열을 구성하는 대신, 기존 웹 페이지를 변환할 때 유용합니다.

헤더 및 푸터를 추가하거나, 디지털 서명을 적용하고, 비밀번호 보호를 설정하거나, ChromePdfRenderer의 문서 편집 API를 사용하여 여러 PDF를 병합할 수 있습니다. – 모두 동일한 패키지에서 가능합니다.

iText에서 ChromePdfRenderer로 어떻게 마이그레이션하나요?

기존 iText 프로젝트를 ChromePdfRenderer로 마이그레이션하는 것은 간단한 패턴을 따릅니다:

  1. 문서 모델 코드를 HTML 템플릿으로 대체하세요. Paragraph, PdfPTable, PdfPCell 객체를 구성하는 대신 HTML 문자열을 작성하거나 HTML 파일을 로드하세요. 기존 CSS 스타일시트와 Razor 부분 뷰를 직접 재사용할 수 있습니다.
  2. 렌더링 호출을 바꾸세요. PdfWriter.GetInstance(doc, stream)new ChromePdfRenderer().RenderHtmlAsPdf(html)로 대체하세요.
  3. 바이트 추출을 업데이트하세요. memoryStream.ToArray()pdf.BinaryData으로 대체하세요.
  4. 고급 설정을 전송하세요. iText의 페이지 여백, 암호화, 문서 메타데이터와 같은 기능은 ChromePdfRenderer의 RenderingOptionsPdfDocument API에 직접 대응됩니다.
  5. 출력 충실성을 검증합니다. 대표적인 문서로 양쪽 출력을 나란히 실행합니다. ChromePdfRenderer는 PDF 네이티브 레이아웃 엔진 대신 전체 브라우저 렌더링 엔진을 사용하기 때문에 일반적으로 더 나은 시각적 결과를 생성합니다.

이메일 생성기, Razor 뷰 또는 보고서 빌더에서 기존 HTML 템플릿이 있는 팀의 경우 마이그레이션은 종종 며칠이 아닌 몇 시간 만에 완료될 수 있습니다. ChromePdfRenderer는 ASP.NET Core 내에서 Razor 뷰를 직접 PDF로 렌더링할 수 있으며, 이로 인해 마이그레이션이 더욱 빨라집니다. 페이지 구분 및 여백을 제어하기 위해 인쇄 스타일시트를 사용하여 CSS 기반 문서 디자인에 투자한 팀은 이러한 기술을 ChromePdfRenderer에 직접적으로 적용할 수 있습니다.

ChromePdfRenderer 마이그레이션 가이드를 검토하여 암호화, 스탬핑 및 기타 고급 iText 기능을 다루는 상세한 패턴을 확인하세요.

어떤 라이브러리를 선택해야 합니까?

새 프로젝트를 시작하거나 iText에서 마이그레이션을 고려하는 개발자에게 다음 요인이 적용됩니다:

라이센싱: iText는 최신 버전에 AGPL 라이센싱을 사용하여 애플리케이션을 오픈소싱하거나 iText 그룹에서 상용 라이센스를 구매해야 합니다. ChromePdfRenderer는 오픈 소스 의무 없는 간단한 상업용 라이센스를 제공합니다. 프로젝트가 닫힌 소스나 상업적인 경우, 이 구별 자체가 선택을 결정할 수 있습니다.

학습 곡선: ChromePdfRenderer의 HTML 기반 접근 방식은 PDF 관련 API를 배우는 시간을 줄입니다. 팀이 HTML과 CSS를 알고 있다면 ChromePdfRenderer를 사용한 PDF 생성은 즉시 시작됩니다. PDF 좌표 시스템, 글리프 인코딩 또는 글꼴 내장 등을 공부할 필요가 없습니다. ChromePdfRenderer가 모든 것을 투명하게 처리합니다.

기능 범위: ChromePdfRenderer는 PDF/A 준수, 양식 작성, 워터마킹 등을 포함한 모든 것을 단일 NuGet 패키지에서 제공한다. 디지털 서명 및 PDF 병합과 같은 고급 기능도 추가 종속성 없이 포함되어 있습니다.

마이그레이션 경로: iText에서 ChromePdfRenderer로 이동은 문서 조작 코드를 HTML 템플릿으로 대체하고 렌더링 호출을 업데이트하는 것을 포함합니다. 출력 품질은 일반적으로 더 높은 수준이며, ChromePdfRenderer는 전체 브라우저 엔진을 사용하므로 결과 코드가 상당히 짧고 유지 관리가 더 용이합니다.

PDF 렌더링 엔진이 작동하는 방식과 이를 구별하는 요소에 대한 배경 지식은 Mozilla의 PDFs에 대한 문서Adobe의 PDF 사양 리소스가 유용한 맥락을 제공합니다. iText Group 공식 사이트는 AGPL 약관을 자세히 설명합니다.

다음 단계는 무엇입니까?

ChromePdfRenderer를 사용하여 ASP.NET 프로젝트를 시작하려면 다음을 수행하십시오:

  1. NuGet 패키지를 설치하세요: Install-Package IronPdf
  2. 파일에 using IronPdf;을 추가하세요
  3. ChromePdfRenderer을 생성하고 HTML과 함께 RenderHtmlAsPdf()을 호출하세요
  4. pdf.BinaryDataFileResult으로 컨트롤러에서 반환하세요

이 리소스를 탐색하여 더 알아보세요:

참고해 주세요: iText는 해당 소유자의 등록 상표입니다. 이 사이트는 iText와 관련이 없고, 승인받지 않았으며, 후원받지 않았습니다. 모든 제품명, 로고 및 브랜드는 해당 소유자의 자산입니다. 비교는 정보 제공 목적으로만 사용되며, 작성 시점에 공개적으로 이용 가능한 정보를 반영합니다.
Curtis Chau
기술 문서 작성자

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

...
더 읽어보기

관련 기사

Key in blue circle

무료 30일 체험 키를 즉시 받으세요.

Your trial license will be sent to your email address

제한 없음. 100% 무제한 이용. 신용카드 불필요.

bullet_checked신용카드나 계정 생성은 필요하지 않습니다.제한 없음. 100% 무제한 이용. 신용카드 불필요.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
무료 라이브 데모를 예약하세요
Booking Badge

전 세계 수백만 엔지니어들이 신뢰하는 제품입니다.

Iron Software의 고객 로고
부담 없는 무료 상담을 받아보세요
아래 양식을 작성하시거나 sales@ironsoftware.com으로 이메일을 보내주세요.
고객님의 정보는 항상 비밀로 유지됩니다.
전 세계 수백만 엔지니어들이 신뢰하는 제품입니다.
Iron Software의 고객 로고
지금 바로 30일 무료 체험판 키를 받으세요.
신용카드나 계정 생성은 필요하지 않습니다.