IronPDF C#에서 XML을 PDF로 변환하는 방법
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 엔진을 통해 이루어지며, 스타일시트가 정의한 레이아웃을 렌더링합니다.
-
NuGet 패키지 관리자를 사용하여 https://www.nuget.org/packages/IronPdf 설치하기
-
다음 코드 조각을 복사하여 실행하세요.
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"); -
실제 운영 환경에서 테스트할 수 있도록 배포하세요.
무료 체험판으로 오늘 프로젝트에서 IronPDF 사용 시작하기
최소 워크플로우(5단계)
- XML을 PDF로 변환하는 C# 라이브러리 다운로드
Load메소드를 사용하여 XSLT 스타일시트를 가져오십시오.Transform메소드를 사용하여 XML을 HTML 문자열로 변환하십시오.RenderHtmlAsPdf로 HTML을 PDF로 렌더링하십시오.- PDF 문서를 원하는 위치에 저장하세요.
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")
산출
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")
산출
복잡한 XML 스키마는 어떻게 처리됩니까?
XML 스키마가 조건부 서식이나 문서 외부에 존재하는 데이터를 필요로 할 때, XsltArgumentList을 사용하여 스타일시트에 런타임 값을 전달합니다. 스타일시트는 `
인포그래픽
결론
XslCompiledTransform을 사용하여 XML을 HTML로 변환하여 IronPDF를 통해 그 HTML을 렌더링함으로써 XML을 PDF로 변환하였습니다. RenderingOptions 및 XsltArgumentList가 레이아웃 제어 및 스키마 기반 서식 설정을 위해 결과를 어떻게 확장하는지 확인했습니다. 출력이 일반 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가 됩니다.

