IRONSOFTWAREHOME

IronPDF C#에서 XML을 PDF로 변환하는 방법

Curtis Chau
Curtis Chau
Updated: 2026년 6월 29일

IronPDF는 XSLT 변환을 실행하여 XML을 HTML로 변환한 후 ChromePdfRenderer.RenderHtmlAsPdf로 그 HTML을 렌더링하여 C#에서 XML을 PDF로 변환합니다. IronPDF는 기본적으로 XML 렌더러가 없기 때문에 지원되는 경로는 항상 XML to XSLT/HTML to PDF입니다.

XML은 시각적 레이아웃 없이 구조화된 데이터를 보유하므로 스스로 페이지에 그릴 수 없습니다. XSLT 스타일시트가 그 프레젠테이션을 공급합니다: XML의 각 요소를 HTML 마크업으로 매핑하고, 그 HTML이 PDF에 표시할 글꼴, 테이블 및 스타일링을 얻게 됩니다. 기본 변환에 대한 자세한 정보는 Microsoft의 가이드를 참조하십시오: XslCompiledTransform 클래스.

빠른 시작: IronPDF 로 XML을 PDF로 변환하기

XslCompiledTransform을 사용하여 XSLT 스타일시트를 로드하고, XML 파일을 HTML 문자열로 변환한 다음 그 문자열을 IronPDF에 전달하세요. 변환 작업은 IronPDF의 HTML to PDF 엔진을 통해 이루어지며, 스타일시트가 정의한 레이아웃을 렌더링합니다.

  1. 1Install IronPDF with NuGet Package Manager

    PM > Install-Package IronPdf

  2. 2다음 코드 조각을 복사하여 실행하세요.

    var transform = new System.Xml.Xsl.XslCompiledTransform();
    transform.Load("catalog.xslt");
    var html = new System.IO.StringWriter();
    transform.Transform("catalog.xml", null, html);
    new IronPdf.ChromePdfRenderer().RenderHtmlAsPdf(html.ToString()).SaveAs("output.pdf");
    C#
  3. 3실제 운영 환경에서 테스트할 수 있도록 배포하세요.

    무료 체험판으로 오늘 프로젝트에서 IronPDF 사용 시작하기
    arrow pointer

XML 파일을 PDF로 변환하는 방법은?

세 단계로 XML 파일을 변환하세요: XslCompiledTransform을 사용하여 XSLT 스타일시트를 로드하고, XML을 HTML로 변환한 다음 결과에 대해 RenderHtmlAsPdf을 호출합니다. 스타일시트는 각 XML 요소가 나타나는 방법을 결정하며 IronPDF는 Chromium 엔진을 통해 생성된 HTML을 렌더링합니다.

변환은 HTML을 StringBuilder에 작성하되, XmlWriter를 통해 전체 문서를 메모리에 유지하여 디스크의 임시 파일을 피합니다. 렌더러에게 전달하는 것은 바로 그 HTML 문자열입니다. 결과 PdfDocument를 보유한 후에는 HTML 문자열을 렌더링하는 것과 같이 동일한 보고서의 다른 부분에 대해 계속 작업할 수 있습니다.

XML 입력은 어떻게 생겼습니까?

아래 예는 제품 카탈로그입니다. catalog.xml 샘플 파일과 맞춤 catalog.xslt 스타일시트를 다운로드하여 따라하세요.

입력

XML 파일을 변환하는 데 필요한 코드는 무엇입니까?

using System.IO;
using System.Text;
using System.Xml;
using System.Xml.Xsl;
using IronPdf;

// Load the XSLT stylesheet that maps the XML schema onto HTML
XslCompiledTransform transform = new XslCompiledTransform();
transform.Load("catalog.xslt");

// Apply the transform to the XML file and capture the HTML output
StringBuilder htmlBuilder = new StringBuilder();
XmlWriterSettings settings = new XmlWriterSettings { OmitXmlDeclaration = true, Indent = true };

using (XmlReader reader = XmlReader.Create("catalog.xml"))
using (XmlWriter writer = XmlWriter.Create(htmlBuilder, settings))
{
    transform.Transform(reader, null, writer);
}

string html = htmlBuilder.ToString();

// Render the resulting HTML as a PDF with IronPDF
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("xml-to-pdf.pdf");
C#

산출

이 종류의 라이브러리 중 가장 좋아하는 것은 IronPDF입니다. PDF 파일을 빠르고 효율적으로 조작할 수 있습니다. 또한 PDF/A 형식으로 내보내기 및 PDF 문서의 디지털 서명과 같은 많은 유용한 기능을 가지고 있습니다.

Milan Jovanovic

마이크로소프트 MVP

사례 연구 보기

IronOCR 덕분에 연간 $40,000를 수동 프로세싱에서 절약하고 생산성을 높이며 고부가가치 작업에 자원을 활용할 수 있습니다. 강력히 추천합니다.

브렌트 마첼

최고 기술 책임자, OPYN

사례 연구 보기

IronSuite는 우리의 운영에서 중요한 역할을 합니다. 이것들은 사업 전반에 걸쳐 효율성을 높이는 도구로, 평면도 생성 및 재고 관리 개선을 포함합니다.

데이비드 존스

리드 소프트웨어 엔지니어, Agorus Build

사례 연구 보기

PDF 레이아웃 및 페이지 설정을 어떻게 제어할 수 있습니까?

렌더러의 RenderingOptions을 설정하여 RenderHtmlAsPdf를 호출하기 전에 여백, 방향, 헤더 및 푸터를 제어하세요. 이 옵션은 스타일시트가 생성한 HTML에 적용되므로, 페이지 수준의 문제는 C#에 남아 있고 요소 수준의 스타일링은 XSLT 및 그 CSS에 남아 있습니다.

아래 예제는 세로 방향을 유지하고, 상단과 하단 여백을 잘라내며, 실행 헤더와 페이지 번호 푸터를 추가합니다. 렌더링 옵션에 대한 가이드를 참조하여 전환을 살펴보고, 페이지 번호를 추가하십시오.

using System.IO;
using System.Text;
using System.Xml;
using System.Xml.Xsl;
using IronPdf;
using IronPdf.Rendering;

// Transform the XML into HTML using the XSLT stylesheet
XslCompiledTransform transform = new XslCompiledTransform();
transform.Load("catalog.xslt");

StringBuilder htmlBuilder = new StringBuilder();
using (XmlReader reader = XmlReader.Create("catalog.xml"))
using (XmlWriter writer = XmlWriter.Create(htmlBuilder, new XmlWriterSettings { OmitXmlDeclaration = true }))
{
    transform.Transform(reader, null, writer);
}

// Configure rendering options before generating the PDF
ChromePdfRenderer renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait;
renderer.RenderingOptions.MarginTop = 20;
renderer.RenderingOptions.MarginBottom = 20;
renderer.RenderingOptions.TextHeader = new TextHeaderFooter
{
    CenterText = "Spring Product Catalog",
    FontSize = 12
};
renderer.RenderingOptions.TextFooter = new TextHeaderFooter
{
    RightText = "Page {page} of {total-pages}",
    FontSize = 10
};

PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlBuilder.ToString());
pdf.SaveAs("xml-to-pdf-advanced.pdf");
C#

산출

복잡한 XML 스키마는 어떻게 처리됩니까?

XML 스키마가 조건부 서식이나 문서 외부에 존재하는 데이터를 필요로 할 때, XsltArgumentList을 사용하여 스타일시트에 런타임 값을 전달합니다. 스타일시트는 <!-- xsl:param>를 통해 각각의 값을 읽어들이며, 같은 템플릿으로 낮은 재고를 표시하거나 보고서 날짜를 스탬프하거나 요소 값에 따라 분기할 수 있으며, C# 코드의 변경이 필요 없어집니다.

이 패턴은 중첩된 요소, 속성 및 <xsl:choose> 분기가 구조를 처리하는 XSLT 내에서 변환 논리를 유지합니다. 조건 및 파라미터 마크업을 사용하는 catalog-params.xslt 스타일시트를 다운로드하여 사용법을 확인하세요.

using System;
using System.IO;
using System.Text;
using System.Xml;
using System.Xml.Xsl;
using IronPdf;

// Pass runtime values into the stylesheet with an XsltArgumentList
XsltArgumentList xsltArgs = new XsltArgumentList();
xsltArgs.AddParam("reportDate", "", DateTime.Now.ToString("MMMM d, yyyy"));
xsltArgs.AddParam("minStock", "", 50);

// Load a parameterized stylesheet that reads <xsl:param> values
XslCompiledTransform transform = new XslCompiledTransform();
transform.Load("catalog-params.xslt");

StringBuilder htmlBuilder = new StringBuilder();
using (XmlReader reader = XmlReader.Create("catalog.xml"))
using (XmlWriter writer = XmlWriter.Create(htmlBuilder, new XmlWriterSettings { OmitXmlDeclaration = true }))
{
    transform.Transform(reader, xsltArgs, writer);
}

// Render the parameterized HTML as a PDF
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlBuilder.ToString());
pdf.SaveAs("xml-to-pdf-parameters.pdf");
C#

산출


인포그래픽

XSLT를 사용하여 XML을 HTML로 변환하고, 카탈로그 데이터를 표 형식으로 변환한 결과를 보여줍니다.

결론

XslCompiledTransform을 사용하여 XML을 HTML로 변환하여 IronPDF를 통해 그 HTML을 렌더링함으로써 XML을 PDF로 변환하였습니다. RenderingOptionsXsltArgumentList가 레이아웃 제어 및 스키마 기반 서식 설정을 위해 결과를 어떻게 확장하는지 확인했습니다. 출력이 일반 HTML이기 때문에 IronPDF의 다른 곳에서 헤더, 푸터 및 용지 크기를 조정하는 데 사용한 렌더링 옵션은 카탈로그에 직접 적용됩니다. 실행 가능한 XML to PDF 샘플 프로젝트가 다운로드를 통해 시작점으로 제공됩니다.

자주 묻는 질문

C#에서 XML을 PDF로 변환하는 방법은 무엇인가요?

IronPDF는 네이티브 XML 렌더러가 없으므로 지원되는 경로는 XML에서 XSLT/HTML을 거쳐 PDF로 이어집니다. XslCompiledTransform으로 XSLT 스타일시트를 로드하고, XML을 HTML 문자열로 변환한 후 Iron

XML을 PDF로 변환할 때 XSLT를 사용해야 하는 이유는 무엇입니까?

XSLT는 XML을 HTML로 변환하는 맞춤형 변환기 역할을 하므로 XML을 PDF로 변환하는 데 가장 유연한 접근 방식을 제공합니다. IronPDF의 Chrome 렌더링 엔진과 결합된 이 방법은 픽셀 단위까지 완벽한 변환을 보장하는 동시에 최종 PDF 문서에서 XML 데이터의 형식을 완벽하게 제어할 수 있도록 합니다.

XML을 PDF로 변환하는 단계는 무엇입니까?

구현은 다음 5단계로 구성됩니다. 1) IronPDF C# 라이브러리 설치, 2) Load 메서드를 사용하여 XSLT 템플릿 로드, 3) Transform 메서드를 사용하여 XML을 HTML로 변환, 4) IronPDF의 사용자 지정 렌더링 옵션을 사용하여 HTML을 PDF로 렌더링, 5) PDF 문서를 원하는 위치로 내보내기.

XML을 PDF로 변환할 때 사용자 지정 스타일을 적용할 수 있나요?

네, 사용자 지정 CSS 스타일을 적용하여 PDF 출력물의 시각적 표현을 향상시킬 수 있습니다. IronPDF는 반응형 CSS 스타일을 지원하므로 글꼴, 레이아웃 및 시각적 요소를 완벽하게 제어하여 XML 데이터에서 전문적인 형식의 PDF를 생성할 수 있습니다.

XML을 PDF로 변환하는 코드를 단 한 줄로 작성하는 것이 가능할까요?

예, IronPDF는 메서드를 연결하여 한 줄짜리 XML을 PDF로 변환할 수 있습니다. 예: new IronPdf.ChromePdfRenderer().RenderHtmlAsPdf(XslCompiledTransform.Load("template.xslt").Transform(XmlReader.Create("data.xml"), new StringWriter()).ToString()).SaveAs("output.pdf");

XML을 PDF로 변환할 때 어떤 렌더링 엔진이 사용되나요?

IronPDF는 Chromium 렌더링 엔진을 사용하여 XSLT 변환을 통해 생성된 HTML을 렌더링하여 픽셀 완벽한 출력과 최신 웹 표준과의 호환성을 제공합니다. XML 자체는 직접 렌더링되지 않으며, 변환된 HTML이 PDF가 됩니다.

Is a sample project available to understand XML to PDF conversion using IronPDF?

Yes, a runnable sample project for converting XML to PDF is available for download, providing a starting point for implementing this functionality in your own applications.

What are some common use cases for converting XML to PDF with IronPDF?

Common use cases include generating reports, invoices, catalogs, or any document where structured data needs to be presented in a professional and easily distributable format.

How is the HTML output managed during the XML transformation process?

During the transformation process, HTML output is typically managed using a `StringWriter` and an `XmlWriter`, which convert the XML based on the XSLT rules into an in-memory HTML string for further PDF conversion.

Can IronPDF handle pagination features for the generated PDFs?

Yes, IronPDF supports pagination features such as adding page numbers and footers through its rendering options, providing flexibility in creating structured, multi-page PDF documents.

Curtis Chau
기술 문서 작성자

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

...
더 읽어보기

시작할 준비 되셨나요?

Nuget Downloads 20,756,830버전:2026.7방금 출시

무료로 받기

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

bullet_checked신용카드나 계정 생성은 필요하지 않습니다.
bullet_test워터마크 없이
프로덕션에서 테스트
bullet_calendar30일 완전한
기능의 제품
bullet_support체험 기간 동안
24/5 기술 지원
지금 바로 30일 무료 체험판 키를 받으세요.
신용카드나 계정 생성은 필요하지 않습니다.
PDF용 C# NuGet 라이브러리
NuGet을 사용하여 설치하세요

버전: 2026.7

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. 솔루션 탐색기에서 참조를 마우스 오른쪽 버튼으로 클릭하고 NuGet 패키지 관리를 선택합니다.
  2. 찾아보기를 선택하고 "IronPDF"를 검색하세요.
  3. 패키지를 선택하고 설치하세요
C# PDF DLL
DLL 다운로드

버전: 2026.7

또는 여기에서 Windows 설치 프로그램을 다운로드하십시오.

  1. IronPDF를 다운로드하고 솔루션 디렉터리 내의 ~/Libs와 같은 위치에 압축을 푸세요.
  2. Visual Studio 솔루션 탐색기에서 참조를 마우스 오른쪽 버튼으로 클릭합니다. 찾아보기를 선택하고 "IronPDF.dll"을 선택합니다.

라이선스 가격은 749달러 부터 시작합니다.

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일 무료 체험판 키를 받으세요.
신용카드나 계정 생성은 필요하지 않습니다.