HTML 파일에서 C#으로 PDF 생성
IronPDF는 HTML을 프로그래밍 방식으로 PDF 문서로 변환합니다.
PDF를 생성하는 방법 - HTML에서 PDF 예제
이 전체 기사의 소스 코드는 C#으로 C# HTML에서 PDF 프로젝트 소스 코드 다운로드로 제공됩니다.
다음 튜토리얼은 C# PDF 생성기로 IronPDF를 사용하는 과정을 안내합니다. 기본적인 내용뿐만 아니라 많은 고급 C# PDF 주제를 다룹니다.
- HTML을 PDF로 변환하는 C# 라이브러리 다운로드
- 코드에서 HTML 문자열로 PDF 생성
- 코드에서 HTML 파일로 PDF 생성
- URL을 PDF 문서로 손쉽게 변환
- 원하는 위치로 PDF 파일 내보내기
HTML에서 PDF로 워크스루
이 데모는 IronPdf를 사용하는 예제를 안내합니다. Iron Software로부터 추가 사용 사례 데모 요청.
데모는 Hello World, RenderHtmlAsPdf 및 RenderUrlAsPdf 예제로 구성되어 있습니다. 모든 예제는 IronPDF Demo 솔루션의 해당 프로젝트 아래에서 찾을 수 있습니다.
1단계: 설치
NuGet을 통해 IronPdf를 설치할 수 있습니다. The package name is IronPDF NuGet Package.
Or you can use the Direct Library Download.
2단계: Hello World
IronPDF를 설치하고 프로젝트에 참조한 후에는 몇 가지 문자열을 입력하여 바로 사용할 수 있습니다:
// Create a new instance of ChromePdfRenderer
var chromePdfRenderer = new ChromePdfRenderer();// Create a new instance of ChromePdfRenderer
var chromePdfRenderer = new ChromePdfRenderer();그리고 HTML을 PDF로 변환해야 하는 경우:
// Define HTML content to turn into PDF
var html = @"<h1>Hello World!</h1><br><p>This is IronPdf.</p>";
// Render the HTML string as a PDF
using var pdf = chromePdfRenderer.RenderHtmlAsPdf(html);
// Save the resulting PDF to a file
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "ChromePdfRenderer.Pdf"));// Define HTML content to turn into PDF
var html = @"<h1>Hello World!</h1><br><p>This is IronPdf.</p>";
// Render the HTML string as a PDF
using var pdf = chromePdfRenderer.RenderHtmlAsPdf(html);
// Save the resulting PDF to a file
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "ChromePdfRenderer.Pdf"));또는 웹 페이지를 PDF 파일로 변환하려는 경우:
// URI of the page to turn into PDF
var uri = new Uri("http://www.google.com/ncr");
// Render the webpage as a PDF
using var pdf = chromePdfRenderer.RenderUrlAsPdf(uri);
// Save the resulting PDF to a file
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "UrlToPdf.Pdf"));// URI of the page to turn into PDF
var uri = new Uri("http://www.google.com/ncr");
// Render the webpage as a PDF
using var pdf = chromePdfRenderer.RenderUrlAsPdf(uri);
// Save the resulting PDF to a file
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "UrlToPdf.Pdf"));그게 전부입니다! 해당 결과는 다음과 같습니다:
HTML을 PDF로 변환한 결과
웹 페이지를 PDF로 변환한 결과
IronPDFDemo.HelloWorld 프로젝트에서 코드 샘플을 찾으십시오.
3단계: RenderHtmlAsPdf
예제 1
더 실용적인 예제를 평가하기 위해, PDF로 전환해야 하는 HTML 인보이스를 상상해보세요. 이렇게 하는 방법에 대한 코드입니다.
참고: 인보이스 HTML은 IronPDFDemo.DemoWebSite 프로젝트(~/Static/TestInvoice1.html)에서 찾을 수 있습니다. 인보이스에는 '인쇄' 미디어 타입에 대한 사용자 정의 CSS가 있다는 점을 유의하십시오.
원본 인보이스는 브라우저에서 이렇게 보입니다:

이를 PDF 파일로 변환하기 위해, 위의 HelloWorld 예제와 유사한 코드가 사용되며, 차이점은 원본 HTML 파일입니다.
// Read HTML from file
var html = File.ReadAllText(Path.Combine(Directory.GetCurrentDirectory(), "TestInvoice1.html"));
var chromePdfRenderer = new ChromePdfRenderer();
using var pdf = chromePdfRenderer.RenderHtmlAsPdf(html);
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "ChromePdfRendererExample1.Pdf"));// Read HTML from file
var html = File.ReadAllText(Path.Combine(Directory.GetCurrentDirectory(), "TestInvoice1.html"));
var chromePdfRenderer = new ChromePdfRenderer();
using var pdf = chromePdfRenderer.RenderHtmlAsPdf(html);
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "ChromePdfRendererExample1.Pdf"));결과는 다음과 같습니다:
HTML에서 PDF 파일 생성
훌륭하게 보입니다! IronPDFDemo.RenderHtmlAdPdfDemo 프로젝트에서 코드 샘플을 찾으십시오.
IronPDF에서 Byte Arrays와 HTML 문서 또는 문자열 사용하는 방법 이 질문도 보십시오.
예제 2
이 섹션은 예제 1에서 생성된 PDF를 사용자 정의하는 데 도움이 됩니다. 예를 들어, 사용자 정의 마진, 문서 제목이 있는 헤더, 생성 날짜 및 페이지 번호가 있는 푸터, 표준 인보이스에 있는 '인쇄' 미디어 타입에 대한 사용자 정의 CSS를 추가합니다. 이를 위해 ChromePdfRenderOptions 인스턴스를 초기화하고 ChromePdfRenderer 생성자에 전달합니다.
// Configure rendering options with margins, headers, and footers
var pdfRenderingOptions = new ChromePdfRenderOptions()
{
MarginTop = 50,
MarginBottom = 50,
TextHeader = new TextHeaderFooter()
{
CenterText = "{pdf-title}",
DrawDividerLine = true,
FontSize = 16
},
TextFooter = new TextHeaderFooter()
{
LeftText = "{date} {time}",
RightText = "Page {page} of {total-pages}",
DrawDividerLine = true,
FontSize = 14
},
CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
};
var chromePdfRenderer = new ChromePdfRenderer(pdfRenderingOptions);// Configure rendering options with margins, headers, and footers
var pdfRenderingOptions = new ChromePdfRenderOptions()
{
MarginTop = 50,
MarginBottom = 50,
TextHeader = new TextHeaderFooter()
{
CenterText = "{pdf-title}",
DrawDividerLine = true,
FontSize = 16
},
TextFooter = new TextHeaderFooter()
{
LeftText = "{date} {time}",
RightText = "Page {page} of {total-pages}",
DrawDividerLine = true,
FontSize = 14
},
CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
};
var chromePdfRenderer = new ChromePdfRenderer(pdfRenderingOptions);팁: 생성자에서 매개변수로 옵션을 전달하는 대신, ChromePdfRenderer 인스턴스의 해당 필드를 설정할 수 있습니다:
var chromePdfRenderer = new ChromePdfRenderer();
chromePdfRenderer.RenderingOptions = pdfRenderingOptions;var chromePdfRenderer = new ChromePdfRenderer();
chromePdfRenderer.RenderingOptions = pdfRenderingOptions;참고: 헤더 및 푸터 기능은 병합 기능을 통합하며 모든 병합 필드({page}, {total-pages}, {url}, {date}, {time}, {html-title}, {pdf-title})가 해당 데이터로 채워질 수 있습니다.
나머지 코드는 예제 1과 동일합니다. 결과는:
헤더와 푸터로 인보이스 생성
사용자 정의 마진, 헤더, 푸터 및 '인쇄' 미디어 타입을 위한 CSS가 이제 설정되었습니다. IronPDFDemo.RenderHtmlAdPdfDemo 프로젝트에서 코드 샘플을 찾으십시오. IronPDF API 참조 에서 더 많은 설정을 찾을 수 있습니다.
4단계: RenderUrlAsPdf
설정
이 섹션의 샘플을 실행하려면 IronPDFDemo.DemoWebSite를 로컬에서 호스트해야 합니다. IIS Express에서 그렇게 하려면:
- DemoWebSite로 이동합니다
- 오른쪽 클릭 > 시작 프로젝트로 설정
- 디버그 없이 시작 (Ctrl+F5)
{baseurl}/Static/TestInvoice1.html으로 이동하여 작동하는지 확인합니다. 이것은 URLhttp://localhost:51169/Static/TestInvoice1.html입니다(프로젝트 설정을 변경하지 않으면 동일할 것입니다).
예제 1
이 섹션에서는 호스팅된 DemoWebSite 인보이스가 HelloWorld 예제와 동일한 코드로 PDF로 변환됩니다. 차이점은 호스트된 URL에 있습니다:
// URL of the hosted invoice webpage
var uri = new Uri("http://localhost:51169/Static/TestInvoice1.html");
var urlToPdf = new ChromePdfRenderer();
using var pdf = urlToPdf.RenderUrlAsPdf(uri);
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "UrlToPdfExample1.Pdf"));// URL of the hosted invoice webpage
var uri = new Uri("http://localhost:51169/Static/TestInvoice1.html");
var urlToPdf = new ChromePdfRenderer();
using var pdf = urlToPdf.RenderUrlAsPdf(uri);
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "UrlToPdfExample1.Pdf"));결과는 다음과 같습니다:
호스팅된 웹사이트를 PDF로 생성
훌륭하며 기대한 대로 보입니다. IronPDFDemo.RenderUrlAsPdfDemo 프로젝트 내에서 코드 샘플을 찾으십시오.
예제 2
많은 웹사이트는 종종 인증 방법으로 보호됩니다. 이 섹션에서는 PDF 파일을 렌더링하는 과정에서 제공된 사용자 이름과 비밀번호를 사용하여 일부 사용자 정의 작업: 사용자 정의 마진, 문서 제목이 있는 헤더, 생성 날짜 및 페이지가 있는 푸터, '인쇄' 미디어 타입을 위한 사용자 정의 CSS를 수행합니다. 인보이스의 URL은 http://localhost:51169/Invoice에 있습니다.
http://localhost:51169/Invoice에 접근하면 '인증 필요' 양식이 나타납니다:
인증이 필요한 양식
참고: 자격 증명은 "testUser"/"testPassword"입니다.
그렇다면 인증을 우회하는 방법은 무엇입니까? HttpLoginCredentials을 설정함으로써:
// URL of the protected invoice webpage
var uri = new Uri("http://localhost:51169/Invoice");
// Configure renderer with login credentials to bypass authentication
var urlToPdf = new ChromePdfRenderer
{
RenderingOptions = new ChromePdfRenderOptions()
{
MarginTop = 50,
MarginBottom = 50,
TextHeader = new TextHeaderFooter()
{
CenterText = "{pdf-title}",
DrawDividerLine = true,
FontSize = 16
},
TextFooter = new TextHeaderFooter()
{
LeftText = "{date} {time}",
RightText = "Page {page} of {total-pages}",
DrawDividerLine = true,
FontSize = 14
},
CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
},
// Set login credentials to bypass basic authentication
LoginCredentials = new HttpLoginCredentials()
{
NetworkUsername = "testUser",
NetworkPassword = "testPassword"
}
};
using var pdf = urlToPdf.RenderUrlAsPdf(uri);
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "UrlToPdfExample2.Pdf"));// URL of the protected invoice webpage
var uri = new Uri("http://localhost:51169/Invoice");
// Configure renderer with login credentials to bypass authentication
var urlToPdf = new ChromePdfRenderer
{
RenderingOptions = new ChromePdfRenderOptions()
{
MarginTop = 50,
MarginBottom = 50,
TextHeader = new TextHeaderFooter()
{
CenterText = "{pdf-title}",
DrawDividerLine = true,
FontSize = 16
},
TextFooter = new TextHeaderFooter()
{
LeftText = "{date} {time}",
RightText = "Page {page} of {total-pages}",
DrawDividerLine = true,
FontSize = 14
},
CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
},
// Set login credentials to bypass basic authentication
LoginCredentials = new HttpLoginCredentials()
{
NetworkUsername = "testUser",
NetworkPassword = "testPassword"
}
};
using var pdf = urlToPdf.RenderUrlAsPdf(uri);
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "UrlToPdfExample2.Pdf"));참고: ChromePdfRenderer Example2와 동일한 맞춤 설정이 사용됩니다.
결과는 다음과 같습니다:
자격 증명이 포함된 HTML 사이트를 PDF 파일로 생성
모든 것이 준비되었습니다. IronPDFDemo.RenderUrlAsPdfDemo 프로젝트에서 코드 샘플을 찾아보세요. HttpLoginCredentials 없이 결과가 어떻게 보일지 궁금하시다면, 여기 있습니다:
자격 증명 없이 비어 있는 PDF 파일 생성
또한 Jean의 .NET HTML to PDF 튜토리얼을 참조하세요
또한, IronPDF는 PDF와 상호 작용할 수 있는 다양한 방법을 제공합니다:
- OCR을 사용하여 PDF에서 이미지 및 텍스트 추출
- 변환한 웹의 HTML 콘텐츠 편집
- PDF 파일의 전경 및 배경 설정 향상
- PDF에 디지털 서명 추가
- IronPDF 도구를 사용하여 PDF 양식을 자동으로 채우기
