C#을 사용하여 XML을 PDF로 변환하는 방법

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

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

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. NuGet 패키지 관리자를 사용하여 https://www.nuget.org/packages/IronPdf 설치하기

    PM > Install-Package IronPdf
  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");
  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 파일을 변환하는 데 필요한 코드는 무엇입니까?

:path=/static-assets/pdf/content-code-examples/how-to/xml-to-pdf-from-file.cs
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");
Imports System.IO
Imports System.Text
Imports System.Xml
Imports System.Xml.Xsl
Imports IronPdf

' Load the XSLT stylesheet that maps the XML schema onto HTML
Dim transform As New XslCompiledTransform()
transform.Load("catalog.xslt")

' Apply the transform to the XML file and capture the HTML output
Dim htmlBuilder As New StringBuilder()
Dim settings As New XmlWriterSettings With {.OmitXmlDeclaration = True, .Indent = True}

Using reader As XmlReader = XmlReader.Create("catalog.xml")
    Using writer As XmlWriter = XmlWriter.Create(htmlBuilder, settings)
        transform.Transform(reader, Nothing, writer)
    End Using
End Using

Dim html As String = htmlBuilder.ToString()

' Render the resulting HTML as a PDF with IronPDF
Dim renderer As New ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("xml-to-pdf.pdf")
$vbLabelText   $csharpLabel

산출

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

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

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

:path=/static-assets/pdf/content-code-examples/how-to/xml-to-pdf-advanced.cs
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");
Imports System.IO
Imports System.Text
Imports System.Xml
Imports System.Xml.Xsl
Imports IronPdf
Imports IronPdf.Rendering

' Transform the XML into HTML using the XSLT stylesheet
Dim transform As New XslCompiledTransform()
transform.Load("catalog.xslt")

Dim htmlBuilder As New StringBuilder()
Using reader As XmlReader = XmlReader.Create("catalog.xml")
    Using writer As XmlWriter = XmlWriter.Create(htmlBuilder, New XmlWriterSettings With {.OmitXmlDeclaration = True})
        transform.Transform(reader, Nothing, writer)
    End Using
End Using

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

Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(htmlBuilder.ToString())
pdf.SaveAs("xml-to-pdf-advanced.pdf")
$vbLabelText   $csharpLabel

산출

Icon Quote related to 산출

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

Milan Jovanovic related to 산출

Milan Jovanovic

마이크로소프트 MVP

사례 연구 보기
Icon Quote related to 산출

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

Brent Matzelle related to 산출

브렌트 마첼

최고 기술 책임자, OPYN

사례 연구 보기
Icon Quote related to 산출

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

David Jones related to 산출

데이비드 존스

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

사례 연구 보기

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

XML 스키마가 조건부 서식이나 문서 외부에 존재하는 데이터를 필요로 할 때, XsltArgumentList을 사용하여 스타일시트에 런타임 값을 전달합니다. 스타일시트는 `


인포그래픽

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가 됩니다.

Curtis Chau
기술 문서 작성자

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

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

검토자:
제프 프리츠
제프리 T. 프리츠
.NET 커뮤니티 팀의 수석 프로그램 관리자
제프는 .NET 및 Visual Studio 팀의 수석 프로그램 관리자이기도 합니다. 그는 .NET Conf 가상 컨퍼런스 시리즈의 총괄 프로듀서이며, 개발자를 위한 라이브 스트림 'Fritz and Friends'를 주 2회 진행하며 시청자들과 함께 기술에 대해 이야기하고 코드를 작성합니다. 제프는 Microsoft Build, Microsoft Ignite, .NET Conf, Microsoft MVP Summit 등 주요 Microsoft 개발자 행사를 위한 워크숍, 프레젠테이션 및 콘텐츠 기획을 담당합니다.
시작할 준비 되셨나요?
Nuget 다운로드 19,936,792 | 버전: 2026.7 방금 출시
Still Scrolling Icon

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

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