C# PDF 생성 7개 라이브러리 비교 (무료 & 유료 도구)
C# PDF 생성 기능은 보고서 생성에서 청구 시스템에 이르기까지 많은 현대 애플리케이션에 필수적입니다. 이 기사에서는 C#을 사용하여 PDF 파일을 생성할 수 있는 여섯 가지 인기 있는 방법을 살펴보고, IronPDF와 같은 라이브러리뿐만 아니라 온라인 API와 도구도 강조합니다. 웹 앱에서 동적으로 PDF 파일을 생성해야 하든 기존 문서에서 PDF 파일을 만들고 싶든, 이 도구들이 이러한 요구를 충족시킵니다.
1. IronPDF
IronPDF는 높은 품질의 HTML을 PDF 파일로 변환해야 하는 개발자를 위한 프리미엄 .NET PDF 라이브러리입니다. IronPDF는 Chromium 기반의 렌더링 엔진을 사용하여 정확한 변환을 보장하며, HTML 페이지나 웹 기반 보고서를 PDF 파일로 변환하려는 웹 애플리케이션에 최적의 선택입니다. 이 도구는 기존 PDF 문서를 강력하게 처리하는 것으로 유명하며, PDF를 편집, 병합 또는 분할하는 기능을 제공합니다.
IronPDF는 NuGet 패키지 관리자를 통해 쉽게 C# 프로젝트에 통합되어, 코드 몇 줄로 PDF 문서를 생성할 수 있습니다. 동적 HTML 콘텐츠와 서버 생성 PDF 파일 출력 모두에 적합한 다목적 도구입니다.
주요 특징
- HTML을 PDF로 변환: IronPDF는 JavaScript 실행 및 최신 CSS를 포함한 복잡한 HTML 페이지를 직접 PDF로 변환하는 데 탁월합니다. Chromium 기반의 렌더링 엔진을 사용하여 웹 브라우저에서 보는 것과 동일하게 출력되도록 보장합니다.
- PDF 조작: IronPDF는 기존 PDF 문서를 쉽게 병합, 분할, 수정할 수 있습니다.
- 고급 스타일 옵션: IronPDF는 외부 스타일시트, 사용자 지정 글꼴 및 JavaScript를 지원하여 고급 스타일의 문서를 제작할 수 있습니다. 청구서, 보고서 및 웹 기반 콘텐츠에 완벽합니다.
- 보안 기능: IronPDF는 암호 보호 추가, 디지털 서명 및 PDF 인쇄, 복사 또는 편집과 같은 작업을 제한하는 권한 설정 기능을 제공합니다.
- 폼 처리: IronPDF는 개발자가 프로그래밍 방식으로 PDF 양식을 생성, 채우고 읽을 수 있게 하여 PDF 형식의 사용자 입력이 필요한 애플리케이션에 적합합니다.
- NuGet 패키지 관리자: Visual Studio의 패키지 관리 콘솔을 통해 쉽게 설치 및 관리할 수 있습니다.
코드 예제
using IronPdf;
class Program
{
static void Main()
{
string html = "<h1>Hello, World!</h1><p>This PDF is generated from HTML.</p>";
// Create an instance of ChromePdfRenderer
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Render the HTML as a PDF document
PdfDocument pdf = renderer.RenderHtmlAsPdf(html);
// Save the PDF to a specified file
pdf.SaveAs("Generated.pdf");
}
}
using IronPdf;
class Program
{
static void Main()
{
string html = "<h1>Hello, World!</h1><p>This PDF is generated from HTML.</p>";
// Create an instance of ChromePdfRenderer
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Render the HTML as a PDF document
PdfDocument pdf = renderer.RenderHtmlAsPdf(html);
// Save the PDF to a specified file
pdf.SaveAs("Generated.pdf");
}
}
Imports IronPdf
Friend Class Program
Shared Sub Main()
Dim html As String = "<h1>Hello, World!</h1><p>This PDF is generated from HTML.</p>"
' Create an instance of ChromePdfRenderer
Dim renderer As New ChromePdfRenderer()
' Render the HTML as a PDF document
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(html)
' Save the PDF to a specified file
pdf.SaveAs("Generated.pdf")
End Sub
End Class
- 네임스페이스 가져오기:
using IronPdf;는 IronPDF 라이브러리를 가져와 그 클래스와 메서드에 접근합니다. - HTML 문자열: 변수 'html'은 PDF로 변환하려는 HTML 콘텐츠를 포함합니다.
- 렌더러 인스턴스:
new ChromePdfRenderer();는 ChromePdfRenderer 클래스의 인스턴스를 생성하여 HTML 콘텐츠를 PDF 형식으로 렌더링하는 메서드를 제공합니다. - PDF 렌더링:
PdfDocument pdf = renderer.RenderHtmlAsPdf(html);는 HTML 문자열을 PDF 문서로 변환합니다. - PDF 저장:
pdf.SaveAs("Generated.pdf");는 생성된 PDF를 지정된 파일 경로에 저장합니다.
장점
- 웹 콘텐츠에 대한 우수한 렌더링 품질.
- 폼, 하이퍼링크, 북마크에 대한 강력한 지원.
단점
- 더 큰 프로젝트의 경우 라이센스 비용이 고려 사항이 될 수 있습니다.
- 더 고급 기능은 더 깊은 학습이 필요할 수 있습니다.
2. iTextSharp

iTextSharp는 PDF 파일 생성 및 편집을 위한 광범위한 기능을 제공하는 잘 알려진 .NET PDF 라이브러리입니다. 문서가 사용자 정의되고 보안이 필요한 금융 및 법률 같은 산업에서 널리 사용됩니다. iTextSharp를 통해 PDF 파일을 처음부터 생성하고, 양식을 작성하며 PDF 파일을 수정하여 문서 내용에 대한 광범위한 제어권을 제공합니다. 특정 레이아웃과 동적 데이터가 필요한 송장 또는 계약서와 같은 PDF 파일을 생성해야 하는 Enterprise 애플리케이션에 특히 유용합니다.
주요 특징
- 전체 PDF 생성 기능: iTextSharp는 개발자가 텍스트, 이미지, 테이블, 벡터 그래픽을 추가할 수 있도록 하여 C#에서 처음부터 PDF 파일을 쉽게 생성할 수 있습니다. 페이지 크기, 여백 및 메타데이터를 정의할 수 있는 기능을 포함한 문서 레이아웃에 대한 완전한 제어를 제공합니다.
- 양식 작성: iTextSharp의 중요한 강점 중 하나는 PDF 폼(AcroForms)을 처리할 수 있는 능력입니다. 다양한 입력 필드를 가진 폼을 생성하고 나중에 프로그램적으로 채울 수 있으며, 이는 자동 문서 생성 워크플로우에 유용합니다.
- XML에서 PDF로 변환: iTextSharp는 XFA(XML Forms Architecture)를 사용하여 XML 데이터를 PDF로 변환하는 데 강력한 지원을 제공합니다. 이는 XML 데이터를 표준 양식이나 보고서로 서식화해야 하는 산업에서 특히 가치가 있습니다.
- PDF 보안: iTextSharp는 암호화, 디지털 서명, 워터마크 추가와 같은 고급 기능을 포함하여 문서의 진위성을 확인하고 민감한 데이터를 보호합니다.
- 텍스트 추출 및 조작: 기존 PDF에서 텍스트를 추출하고, 문서 내용을 재배치하거나 페이지 요소를 조작할 수 있어 포스트 프로세싱 문서에 유용하거나 복잡한 PDF에서 요약 보고서를 생성할 수 있습니다.
코드 예제
using System;
using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;
using iTextSharp.tool.xml;
namespace Helpers
{
public class PdfGenerator
{
public static byte[] GeneratePdfFromFragment(string htmlFragment)
{
var html = string.Format(@"
<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en'>
<head>
<style type='text/css'>
table,td {{border: 1px solid black;}}
div {{ white-space: nowrap; padding: 2px;}}
table{{ border-collapse: collapse; width: 100%; empty-cells: show;}}
body table {{font-size: 50%;}}
th {{width:500px; height: 28px;}}
td {{width:300px; height: 28px;}}
</style>
</head><body>{0}</body></html>", htmlFragment);
return Generate(html);
}
public static byte[] GeneratePdfFromPage(string htmlPage)
{
return Generate(htmlPage);
}
private static byte[] Generate(string html)
{
using (var memoryStream = new MemoryStream())
{
var pdfDocument = new Document(PageSize.LETTER);
var pdfWriter = PdfWriter.GetInstance(pdfDocument, memoryStream);
pdfDocument.Open();
using (var fw = new StringReader(html))
{
XMLWorkerHelper.GetInstance().ParseXHtml(pdfWriter, pdfDocument, fw);
}
pdfDocument.Close();
return memoryStream.ToArray();
}
}
}
}
using System;
using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;
using iTextSharp.tool.xml;
namespace Helpers
{
public class PdfGenerator
{
public static byte[] GeneratePdfFromFragment(string htmlFragment)
{
var html = string.Format(@"
<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en'>
<head>
<style type='text/css'>
table,td {{border: 1px solid black;}}
div {{ white-space: nowrap; padding: 2px;}}
table{{ border-collapse: collapse; width: 100%; empty-cells: show;}}
body table {{font-size: 50%;}}
th {{width:500px; height: 28px;}}
td {{width:300px; height: 28px;}}
</style>
</head><body>{0}</body></html>", htmlFragment);
return Generate(html);
}
public static byte[] GeneratePdfFromPage(string htmlPage)
{
return Generate(htmlPage);
}
private static byte[] Generate(string html)
{
using (var memoryStream = new MemoryStream())
{
var pdfDocument = new Document(PageSize.LETTER);
var pdfWriter = PdfWriter.GetInstance(pdfDocument, memoryStream);
pdfDocument.Open();
using (var fw = new StringReader(html))
{
XMLWorkerHelper.GetInstance().ParseXHtml(pdfWriter, pdfDocument, fw);
}
pdfDocument.Close();
return memoryStream.ToArray();
}
}
}
}
Imports System
Imports System.IO
Imports iTextSharp.text
Imports iTextSharp.text.pdf
Imports iTextSharp.tool.xml
Namespace Helpers
Public Class PdfGenerator
Public Shared Function GeneratePdfFromFragment(ByVal htmlFragment As String) As Byte()
Dim html = String.Format("
<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en'>
<head>
<style type='text/css'>
table,td {{border: 1px solid black;}}
div {{ white-space: nowrap; padding: 2px;}}
table{{ border-collapse: collapse; width: 100%; empty-cells: show;}}
body table {{font-size: 50%;}}
th {{width:500px; height: 28px;}}
td {{width:300px; height: 28px;}}
</style>
</head><body>{0}</body></html>", htmlFragment)
Return Generate(html)
End Function
Public Shared Function GeneratePdfFromPage(ByVal htmlPage As String) As Byte()
Return Generate(htmlPage)
End Function
Private Shared Function Generate(ByVal html As String) As Byte()
Using memoryStream As New MemoryStream()
Dim pdfDocument = New Document(PageSize.LETTER)
Dim pdfWriter = PdfWriter.GetInstance(pdfDocument, memoryStream)
pdfDocument.Open()
Using fw = New StringReader(html)
XMLWorkerHelper.GetInstance().ParseXHtml(pdfWriter, pdfDocument, fw)
End Using
pdfDocument.Close()
Return memoryStream.ToArray()
End Using
End Function
End Class
End Namespace
- GeneratePdfFromFragment: HTML 조각(부분적인 HTML 문서)을 받아 기본
<html>와<body>템플릿으로 감싸서 전체 HTML 구조로 변환합니다. 그 후 내부Generate메서드를 호출합니다. - GeneratePdfFromPage: 전체 HTML 페이지를 받아
Generate메서드를 직접 호출합니다. - Generate: 이 메서드는 HTML을 PDF로 변환하는 작업을 처리합니다.
- 생성된 PDF를 메모리에 보관하기 위해 MemoryStream을 초기화합니다.
- iTextSharp Document 객체를 사용해 편지 크기의 페이지로 생성합니다.
- XMLWorkerHelper가 HTML 콘텐츠를 구문 분석하고 제공된 StringReader를 사용하여 PDF 문서에 작성합니다.
장점
- 풍부한 기능 세트를 갖춘 높은 사용자 정의 가능성.
- 광범위한 문서 및 커뮤니티 지원.
단점
- iTextSharp는 개인 용도로는 무료이지만 대규모 프로젝트에는 상업적 라이선스가 필요하며 복잡한 CSS 또는 JavaScript를 처리하는 데 한계가 있을 수 있습니다.
- XMLWorker는 HTML/CSS를 구문 분석하기 위해 iTextSharp에서 사용하는 더 이상 사용되지 않는 도구입니다. iText7(iText의 새로운 버전)은 보다 강력한 HTML 구문 분석기인 pdfHTML을 사용하며 현대 웹 표준에 대한 더 나은 지원을 제공할 수 있습니다.
- 초보자에게는 더 가파른 학습 곡선.
3. PDFsharp

PDFSharp는 기본 PDF 생성 작업에 이상적인 가벼운 오픈 소스 .NET PDF 라이브러리입니다. 애플리케이션이 텍스트, 이미지, 테이블 추가와 같은 간단한 작업만 필요로 한다면, PDFSharp는 C#에서 PDF 문서를 생성하는 데 쉬운 선택입니다. PDFSharp는 HTML에서 PDF로의 변환과 같은 고급 기능이 부족하지만, C#에서 작은에서 중간 크기의 PDF 파일을 생성하기 위한 단순함으로 뛰어납니다.
주요 특징
- 기본 PDF 생성: 텍스트와 그래픽을 그리기 위한 간단하고 사용하기 쉬운 API. 단순한 문서를 생성하는 데 이상적입니다.
- 문서 조작: 기존 PDF를 쉽게 병합 및 수정하여 문서 관리를 유연하게 할 수 있습니다.
- 그리기 및 그래픽 지원: PDFsharp는 PDF 페이지에 선, 사각형 및 기타 벡터 그래픽을 그리는 도구 세트를 제공합니다. 또한, PDF에 이미지를 삽입할 수 있습니다.
- 무료 및 오픈 소스: PDFsharp는 상업적 및 비상업적 용도 모두에 대해 완전 무료로 제공되며, 이는 소규모 비즈니스와 오픈 소스 프로젝트를 진행하는 개발자에게 매력적인 선택입니다.
코드 예제
using PdfSharp.Pdf;
using PdfSharp.Drawing;
class Program
{
static void Main()
{
// Create a new PDF document
PdfDocument document = new PdfDocument();
document.Info.Title = "Created with PdfSharp";
// Add a page to the document
PdfPage page = document.AddPage();
// Create an XGraphics object to draw on the page
XGraphics gfx = XGraphics.FromPdfPage(page);
// Set a font to use for drawing text
XFont font = new XFont("Verdana", 20, XFontStyle.Bold);
// Draw the text on the PDF page
gfx.DrawString("Hello, World!", font, XBrushes.Black,
new XRect(0, 0, page.Width, page.Height), XStringFormats.Center);
// Save the document to disk
document.Save("Generated.pdf");
}
}
using PdfSharp.Pdf;
using PdfSharp.Drawing;
class Program
{
static void Main()
{
// Create a new PDF document
PdfDocument document = new PdfDocument();
document.Info.Title = "Created with PdfSharp";
// Add a page to the document
PdfPage page = document.AddPage();
// Create an XGraphics object to draw on the page
XGraphics gfx = XGraphics.FromPdfPage(page);
// Set a font to use for drawing text
XFont font = new XFont("Verdana", 20, XFontStyle.Bold);
// Draw the text on the PDF page
gfx.DrawString("Hello, World!", font, XBrushes.Black,
new XRect(0, 0, page.Width, page.Height), XStringFormats.Center);
// Save the document to disk
document.Save("Generated.pdf");
}
}
Imports PdfSharp.Pdf
Imports PdfSharp.Drawing
Friend Class Program
Shared Sub Main()
' Create a new PDF document
Dim document As New PdfDocument()
document.Info.Title = "Created with PdfSharp"
' Add a page to the document
Dim page As PdfPage = document.AddPage()
' Create an XGraphics object to draw on the page
Dim gfx As XGraphics = XGraphics.FromPdfPage(page)
' Set a font to use for drawing text
Dim font As New XFont("Verdana", 20, XFontStyle.Bold)
' Draw the text on the PDF page
gfx.DrawString("Hello, World!", font, XBrushes.Black, New XRect(0, 0, page.Width, page.Height), XStringFormats.Center)
' Save the document to disk
document.Save("Generated.pdf")
End Sub
End Class
- PdfDocument: 전체 PDF 문서를 나타냅니다. 페이지를 추가하고 메타데이터를 설정하며 문서를 조작할 수 있습니다.
- PdfPage: 문서 내의 단일 페이지를 나타냅니다. AddPage 메서드를 사용하여 새 페이지를 추가합니다.
- XGraphics: 특정 페이지에 텍스트, 이미지 및 모양을 그리는 데 사용됩니다. .NET의 GDI+와 유사합니다.
- XFont: 텍스트 렌더링을 위한 글꼴 및 스타일을 지정합니다. 예제에서는 굵은 스타일로 'Verdana'를 사용합니다.
- DrawString: 문서 내 정의된 위치에 지정된 문자열을 그립니다.
장점
- 라이센스 제한이 없는 무료 및 오픈 소스.
- 간단하고 가벼워서 기본 PDF 생성 작업을 시작하기에 용이합니다.
- 복잡한 기능이 필요하지 않은 프로젝트에 적합합니다.
단점
- 다른 라이브러리와 비교했을 때 제한된 기능.
- HTML을 PDF로 변환하는 기본 지원 없음.
4. Syncfusion PDF 라이브러리

Syncfusion PDF 라이브러리는 PDF를 다양한 응용 프로그램에서 다루어야 하는 기업을 위해 설계된 고성능, 종합적인 도구입니다. 이 라이브러리는 다양한 형식과 플랫폼을 위한 라이브러리를 제공하는 더 넓은 Syncfusion Suite의 일부입니다. 이 PDF 라이브러리는 단순한 문서 생성을 넘어 서식 채우기, 디지털 서명, 문서 보안을 포함한 세부 조작을 허용하는 광범위한 기능 세트로 두드러집니다.
주요 특징
- 종합적인 PDF API: 복잡한 레이아웃, 내장 글꼴, 고해상도 이미지를 포함하는 고도로 맞춤화된 PDF를 생성할 수 있습니다. 페이지 포맷팅에서 고급 레이아웃 옵션까지 PDF 생성의 모든 측면에 대한 세부적인 제어를 제공합니다.
- 양식 처리: 이 라이브러리는 대화형 PDF 양식(AcroForms)을 생성, 채우기 및 데이터 추출하는 데 탁월합니다. 사용자 입력을 위한 채워질 수 있는 PDF를 생성하거나, 데이터 입력을 자동화하고 채운 양식을 처리하는 데 유용합니다.
- 디지털 서명 및 암호화: PDF 문서를 암호화하고, 암호 보호를 추가하며, 디지털 서명을 적용할 수 있는 강력한 보안 기능을 제공합니다. 문서 진본성과 보안을 요구하는 의료 및 법률 서비스 같은 산업에 필수적입니다.
코드 예제
using Syncfusion.Pdf;
using Syncfusion.Pdf.Graphics;
class Program
{
static void Main()
{
// Create a new PDF document.
PdfDocument document = new PdfDocument();
// Add a page to the document.
PdfPage page = document.Pages.Add();
// Create PDF graphics for the page.
PdfGraphics graphics = page.Graphics;
// Set the standard font.
PdfFont font = new PdfStandardFont(PdfFontFamily.Helvetica, 20);
// Draw the text.
graphics.DrawString("Hello World!!!", font, PdfBrushes.Black, new PointF(0, 0));
// Save the document.
document.Save("Output.pdf");
// Close the document.
document.Close(true);
}
}
using Syncfusion.Pdf;
using Syncfusion.Pdf.Graphics;
class Program
{
static void Main()
{
// Create a new PDF document.
PdfDocument document = new PdfDocument();
// Add a page to the document.
PdfPage page = document.Pages.Add();
// Create PDF graphics for the page.
PdfGraphics graphics = page.Graphics;
// Set the standard font.
PdfFont font = new PdfStandardFont(PdfFontFamily.Helvetica, 20);
// Draw the text.
graphics.DrawString("Hello World!!!", font, PdfBrushes.Black, new PointF(0, 0));
// Save the document.
document.Save("Output.pdf");
// Close the document.
document.Close(true);
}
}
Imports Syncfusion.Pdf
Imports Syncfusion.Pdf.Graphics
Friend Class Program
Shared Sub Main()
' Create a new PDF document.
Dim document As New PdfDocument()
' Add a page to the document.
Dim page As PdfPage = document.Pages.Add()
' Create PDF graphics for the page.
Dim graphics As PdfGraphics = page.Graphics
' Set the standard font.
Dim font As PdfFont = New PdfStandardFont(PdfFontFamily.Helvetica, 20)
' Draw the text.
graphics.DrawString("Hello World!!!", font, PdfBrushes.Black, New PointF(0, 0))
' Save the document.
document.Save("Output.pdf")
' Close the document.
document.Close(True)
End Sub
End Class
- PdfDocument: PDF 문서를 나타냅니다. 페이지를 추가하고, 속성을 설정하며 콘텐츠를 조작할 수 있습니다.
- PdfPage: PDF 문서 내의 페이지를 나타냅니다.
- PdfFont: 텍스트 렌더링을 위한 글꼴을 정의합니다. 이 경우, 표준 헬베티카 글꼴이 사용됩니다.
- DrawString: 지정된 문자열을 주어진 좌표에 PDF 페이지에 그립니다.
장점
- 복잡한 PDF를 생성하기에 적합한 풍부한 기능 세트.
- 대규모 응용 프로그램에 이상적인 전문적인 지원 및 문서화.
- 양식 채우기, 암호화, 주석과 같은 고급 PDF 기능을 지원.
단점
- 상업적 사용을 위한 라이선스 비용이 상대적으로 높음.
- 복잡한 API로, 숙달하는 데 시간이 걸릴 수 있음.
5. PDFShift (온라인 도구)

PDFShift는 HTML을 PDF 파일로 변환하도록 설계된 클라우드 기반 서비스입니다. API를 통해 C# 애플리케이션과 매끄럽게 통합되어 동적으로 생성된 HTML 웹 페이지를 전문적인 품질의 PDF로 변환할 수 있습니다. 특히 PDFShift는 송장이나 보고서 같은 HTML 콘텐츠에서 필요에 따라 PDF 문서를 생성하려는 웹 개발자에게 유용합니다. PDFShift는 완전히 REST API를 통해 작동하므로 서비스에 몇 줄의 HTML만 전송하여 다운로드 가능한 PDF 파일을 받을 수 있습니다. 웹 기반 PDF 파일 생성을 위한 간단하고 확장 가능한 솔루션입니다.
주요 특징
- HTML에서 PDF로의 변환: PDFShift는 HTML 문서를 고품질 PDF로 변환하는 데 탁월합니다. 복잡한 CSS 스타일, JavaScript 및 반응형 디자인 레이아웃을 처리하여 웹 페이지가 PDF 형식에서도 동일하게 보이도록 보장합니다.
- API 통합: PDFShift API는 웹 애플리케이션에 원활하게 통합되도록 설계되었습니다. 사용하기 간단합니다: HTML 콘텐츠로 HTTP POST 요청을 보내면 서비스가 PDF 문서를 반환합니다.
- 사용자 정의 옵션: 생성된 PDF의 페이지 크기, 방향, 여백 및 머리글/꼬리글을 설정하여 사용자 정의할 수 있습니다. 또한, 머리글과 꼬리글에 페이지 번호 또는 문서 메타데이터 같은 동적 콘텐츠를 추가할 수 있습니다.
작동 원리
- PDFShift API 엔드포인트로 HTML 콘텐츠를 포함한 POST 요청을 보냅니다.
- 응답으로 생성된 PDF를 받아 다운로드 또는 저장할 준비가 됩니다.
예제 코드
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
using (HttpClient client = new HttpClient())
{
string htmlContent = "<h1>Hello, World!</h1><p>This is generated using PDFShift API.</p>";
var content = new StringContent(htmlContent, Encoding.UTF8, "application/json");
HttpResponseMessage response = await client.PostAsync("https://api.pdfshift.io/v3/convert", content);
byte[] pdfBytes = await response.Content.ReadAsByteArrayAsync();
System.IO.File.WriteAllBytes("Generated.pdf", pdfBytes);
}
}
}
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
using (HttpClient client = new HttpClient())
{
string htmlContent = "<h1>Hello, World!</h1><p>This is generated using PDFShift API.</p>";
var content = new StringContent(htmlContent, Encoding.UTF8, "application/json");
HttpResponseMessage response = await client.PostAsync("https://api.pdfshift.io/v3/convert", content);
byte[] pdfBytes = await response.Content.ReadAsByteArrayAsync();
System.IO.File.WriteAllBytes("Generated.pdf", pdfBytes);
}
}
}
Imports System.Net.Http
Imports System.Text
Imports System.Threading.Tasks
Friend Class Program
Shared Async Function Main(ByVal args() As String) As Task
Using client As New HttpClient()
Dim htmlContent As String = "<h1>Hello, World!</h1><p>This is generated using PDFShift API.</p>"
Dim content = New StringContent(htmlContent, Encoding.UTF8, "application/json")
Dim response As HttpResponseMessage = Await client.PostAsync("https://api.pdfshift.io/v3/convert", content)
Dim pdfBytes() As Byte = Await response.Content.ReadAsByteArrayAsync()
System.IO.File.WriteAllBytes("Generated.pdf", pdfBytes)
End Using
End Function
End Class
- HttpClient: HTML 콘텐츠를 PDFShift API로 POST 요청으로 전송합니다.
- PostAsync: API로 요청을 보내며, HTML을 처리하여 PDF를 반환합니다.
- ReadAsByteArrayAsync: PDF 응답을 바이트 배열로 읽어 파일로 저장할 수 있습니다.
장점
- 최소한의 설정으로 간단한 API.
- 동적 HTML을 PDF로 변환해야 하는 웹 애플리케이션에 이상적.
- PDF 라이브러리나 서버를 관리할 필요 없음.
단점
- HTML에서 PDF로의 변환으로 제한됨; 보다 복잡한 PDF 기능은 지원하지 않음.
- 인터넷 연결이 필요하며, 일정 사용 한도 초과 시 비용이 발생합니다.
6. DocRaptor (온라인 도구)

DocRaptor는 또 다른 강력한 API 기반 PDF 생성 서비스로, HTML 및 CSS를 고품질 PDF로 변환합니다. HTML 문서를 훌륭하게 렌더링하는 것으로 알려져 있으며, 특히 복잡한 CSS 스타일, 미디어 쿼리 및 웹 글꼴을 처리하는 데 탁월합니다. 이로 인해 DocRaptor는 HTML 템플릿에서 직접 보고서, 인보이스 및 eBook과 같은 전문적인 문서를 생성하는 데 이상적인 선택입니다.
주요 특징
- HTML 및 CSS 지원: 미디어 쿼리와 글꼴을 포함하여 복잡한 CSS 스타일을 가진 HTML 문서를 변환합니다.
- API 통합: 웹 애플리케이션에 원활하게 통합할 수 있는 REST API입니다.
- 사용자 정의 머리글/바닥글: 페이지 번호 및 사용자 정의 서식을 포함하여 동적 머리글과 바닥글을 추가합니다.
- PDF 보안: 암호화 및 비밀번호 보호를 지원합니다.
작동 원리
- HTML 콘텐츠와 함께 DocRaptor API에 POST 요청을 보냅니다.
- 페이지 크기, 여백, 머리글, 바닥글에 대한 매개변수로 PDF 출력을 사용자 정의합니다.
- 생성된 PDF를 응답으로 받습니다.
예제 코드
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
using (HttpClient client = new HttpClient())
{
string apiKey = "YOUR_API_KEY";
string htmlContent = "<h1>Professional Report</h1><p>Generated using DocRaptor API.</p>";
string jsonData = $"{{\"test\": true, \"document_content\": \"{htmlContent}\", \"name\": \"Generated.pdf\", \"document_type\": \"pdf\"}}";
var content = new StringContent(jsonData, Encoding.UTF8, "application/json");
HttpResponseMessage response = await client.PostAsync($"https://docraptor.com/docs?user_key={apiKey}", content);
byte[] pdfBytes = await response.Content.ReadAsByteArrayAsync();
System.IO.File.WriteAllBytes("Generated.pdf", pdfBytes);
}
}
}
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
using (HttpClient client = new HttpClient())
{
string apiKey = "YOUR_API_KEY";
string htmlContent = "<h1>Professional Report</h1><p>Generated using DocRaptor API.</p>";
string jsonData = $"{{\"test\": true, \"document_content\": \"{htmlContent}\", \"name\": \"Generated.pdf\", \"document_type\": \"pdf\"}}";
var content = new StringContent(jsonData, Encoding.UTF8, "application/json");
HttpResponseMessage response = await client.PostAsync($"https://docraptor.com/docs?user_key={apiKey}", content);
byte[] pdfBytes = await response.Content.ReadAsByteArrayAsync();
System.IO.File.WriteAllBytes("Generated.pdf", pdfBytes);
}
}
}
Imports System.Net.Http
Imports System.Text
Imports System.Threading.Tasks
Friend Class Program
Shared Async Function Main(ByVal args() As String) As Task
Using client As New HttpClient()
Dim apiKey As String = "YOUR_API_KEY"
Dim htmlContent As String = "<h1>Professional Report</h1><p>Generated using DocRaptor API.</p>"
Dim jsonData As String = $"{{""test"": true, ""document_content"": ""{htmlContent}"", ""name"": ""Generated.pdf"", ""document_type"": ""pdf""}}"
Dim content = New StringContent(jsonData, Encoding.UTF8, "application/json")
Dim response As HttpResponseMessage = Await client.PostAsync($"https://docraptor.com/docs?user_key={apiKey}", content)
Dim pdfBytes() As Byte = Await response.Content.ReadAsByteArrayAsync()
System.IO.File.WriteAllBytes("Generated.pdf", pdfBytes)
End Using
End Function
End Class
- API 키: DocRaptor를 사용할 때 인증을 위해 API 키를 제공해야 합니다. YOUR_API_KEY"를 실제 키로 대체합니다.
- JsonData: 이 JSON 문자열은 HTML 콘텐츠, 문서 이름 및 유형(PDF인 경우)을 포함합니다.
- PostAsync: PDF 생성을 위해 HTML 콘텐츠와 매개변수를 DocRaptor API로 보냅니다.
장점
- HTML, CSS 및 JavaScript를 완벽하게 지원하는 고품질 렌더링.
- 문서 레이아웃 및 보안을 위한 고급 사용자 정의 옵션.
- PDF 생성 라이브러리나 인프라를 유지할 필요가 없습니다.
단점
- 무료 사용 한도를 초과한 후 유료 서비스.
- 인터넷 연결에 의존합니다.
7. 코딩이 필요 없는 온라인 도구들
코드를 작성하지 않거나 PDF 생성을 위한 빠른 솔루션이 필요한 경우 여러 온라인 도구를 통해 PDF를 빠르고 쉽게 생성할 수 있습니다. 다음은 몇 가지 주목할만한 옵션입니다:
7.1. Smallpdf

Smallpdf는 다양한 파일 형식으로부터 PDF를 생성할 수 있는 여러 PDF 관련 도구를 제공하는 온라인 플랫폼입니다. 코드를 작성할 필요 없이 간단한 드래그 앤 드롭 인터페이스를 원하는 사용자에게 적합하게 설계되었습니다. Smallpdf는 Word 문서, Excel 시트, 이미지 등을 PDF로 빠르게 변환하는 데 널리 사용됩니다. PDF 병합, 압축, 분할 도구도 제공하여 기본 PDF 작업에 다재다능한 도구입니다.
주요 특징
- 파일 변환: Word, Excel, PowerPoint 및 이미지 파일(JPG, PNG)을 PDF로 변환하는 것을 지원합니다. 이는 다양한 문서 유형에서 빠르게 PDF를 생성할 필요가 있는 사용자에게 이상적입니다.
- PDF 병합 및 분할: 여러 PDF를 하나의 파일로 병합하거나 PDF를 개별 페이지로 분할하는 간단한 인터페이스를 제공합니다.
- 클라우드 저장소 통합: Google Drive 또는 Dropbox에서 파일을 쉽게 업로드하고 변환된 PDF를 해당 플랫폼으로 다시 저장하여 파일 관리를 간소화할 수 있습니다.
- PDF 편집 도구: 주석을 추가하거나 양식을 작성하는 등 기존 PDF 문서를 편집할 수 있는 기본 PDF 편집 도구를 제공합니다.
장점
- 비개발자가 사용하기 매우 쉽습니다.
- 기본 사용은 무료이고 더 많은 기능을 위해 업그레이드 옵션이 제공됩니다.
- PDF 병합, 분할, 압축 등 다양한 PDF 관련 도구를 제공합니다.
단점
- 코드 기반 솔루션에 비해 사용자 정의가 제한적입니다.
- 무료 계층에는 일부 기능 제한이 있을 수 있습니다.
7.2. PDFescape

PDFescape는 간단한 웹 기반 PDF 편집기로, 사용자가 소프트웨어를 설치할 필요 없이 PDF를 생성, 편집, 조회할 수 있게 해줍니다. 양식 작성, 텍스트 주석 추가, 이미지 삽입 등 PDF에 빠른 수정을 필요로 하는 사람에게 유용한 도구입니다. PDFescape는 새로운 PDF를 처음부터 생성할 수 있는 도구도 제공하여 기본 문서 생성을 위한 유연한 선택입니다.
주요 특징
- 양식 작성 및 수정: PDF 양식 처리에 뛰어납니다. 사용자는 PDF 문서에서 기존 필드를 수정하거나 양식을 쉽게 작성할 수 있어 계약, 신청서 및 기타 양식에 유용합니다.
- 기본 PDF 생성: 텍스트, 도형, 이미지 및 양식 필드를 추가하는 도구를 제공합니다. 편지나 양식과 같은 간단한 문서를 만드는 데 유용합니다.
- 주석 및 코멘트: 기존 PDF에 주석, 스티키 노트, 기타 주석을 추가하여 문서 리뷰 및 협업에 유용한 도구로 만듭니다.
- 설치 필요 없음: 브라우저에서 완전히 작동하여 소프트웨어를 설치할 필요가 없습니다. 이는 이동 중에도 PDF 도구에 빠르게 접근해야 하는 사용자에게 이상적입니다.
장점
- 비기술 사용자가 사용하기 쉽습니다.
- 기본 PDF 생성 및 편집을 위한 무료 등급.
- 간단한 PDF 편집 작업에 적합합니다.
단점
- 복잡한 PDF 생성을 위한 고급 기능 부족.
- 제한된 디자인 및 서식 옵션.
7.3. PDF Candy

PDF Candy는 파일 변환에서 편집까지 넓은 범위의 PDF 관련 작업을 다루는 무료 온라인 PDF 도구 모음입니다. 계정 등록이나 소프트웨어 설치 없이 빠른 PDF 작업을 수행해야 하는 사용자에게 훌륭한 선택입니다. PDF Candy는 워드 문서, 이미지 및 텍스트 파일과 같은 다양한 파일 유형을 PDF로 변환하는 것을 지원합니다. PDF를 병합, 분할 및 압축하는 도구도 제공합니다.
주요 특징
- 다양한 변환 옵션: 워드 문서, 이미지, 텍스트 파일을 포함한 여러 파일 형식을 PDF로 변환할 수 있습니다. 다양한 유형의 콘텐츠를 다룰 수 있는 유연한 도구입니다.
- PDF 병합 및 분할: 여러 PDF를 하나로 병합하거나 큰 PDF를 더 작고 관리하기 쉬운 파일로 분할할 수 있습니다.
- 파일 개인정보 보호: 파일을 짧은 시간 내에 서버에서 자동으로 삭제하여 문서를 비공개로 유지합니다.
- 무료 사용 가능: 대부분의 도구는 등록 없이 무료로 사용할 수 있어 넓은 사용자층에 접근할 수 있습니다. 그러나 더 자주 사용하거나 큰 파일 변환이 필요한 사람들을 위한 더 고급 기능이 포함된 프리미엄 버전도 제공합니다.
장점
- 사용하기 쉽고 대부분의 사용자에게 완전 무료입니다.
- PDF로 변환을 위한 다양한 파일 유형을 지원합니다.
- 기본 사용에 계정 등록이 필요 없습니다.
단점
- 고급 PDF 사용자 정의 기능 제한.
- 일부 도구는 파일 크기나 변환 복잡성에 제한이 있을 수 있습니다.
결론

C#에서 PDF 파일을 생성하는 데 적합한 도구 선택은 필요에 따라 달라집니다. HTML 콘텐츠로부터 PDF 문서를 생성해야 한다면 IronPDF와 PDFShift가 탁월한 선택입니다. iTextSharp와 Syncfusion은 보다 복잡한 프로젝트를 위한 문서 구조에 대한 광범위한 사용자 정의 옵션과 제어를 제공합니다. 더 간단한 오픈 소스 솔루션의 경우, PDFsharp는 PDF 파일을 수정하거나 기본 PDF를 생성하는 데 신뢰할 수 있는 선택입니다. 마지막으로, 비개발자를 위해 Smallpdf, PDFescape, PDF Candy는 코드 없이 쉽게 PDF 파일을 작업할 수 있는 옵션을 제공합니다.
[IronPDF](trial license)를 체험해 보고 싶다면, 유료 라이선스에 헌신하기 전에 HTML-to-PDF 변환 및 PDF 조작 기능을 테스트하는 데 개발자에게 훌륭한 옵션입니다. 체험판은 고품질 PDF 파일 생성, 보안 옵션 및 기존 PDF 문서 수정과 같은 프리미엄 기능을 탐색할 수 있어 도구의 기능을 직접 경험할 수 있습니다. 프로젝트가 빈번한 HTML-to-PDF 변환 또는 복잡한 PDF 편집이 필요한 경우, IronPDF의 무료 체험판은 필요에 맞는지 확인하는 좋은 방법입니다.
각 도구의 특정 기능과 프로젝트 범위를 평가하여 C#에서 PDF 파일을 효율적으로 생성하기 위한 최상의 솔루션을 선택할 수 있습니다.
자주 묻는 질문
C#에서 HTML을 PDF로 변환하는 방법은 무엇인가요?
IronPDF의 RenderHtmlAsPdf 메서드를 사용하여 HTML 문자열을 PDF로 변환할 수 있습니다. 또한 RenderHtmlFileAsPdf 사용하여 HTML 파일을 PDF로 변환할 수도 있습니다.
무료 및 유료 C# PDF 라이브러리의 차이점은 무엇입니까?
PDFsharp와 같은 무료 라이브러리는 기본적인 PDF 생성 및 조작에 적합하지만, 유료 라이브러리인 IronPDF는 HTML을 PDF로 변환, 양식 처리 및 강화된 보안과 같은 고급 기능을 제공합니다.
C#에서 기본 PDF 작업에 가장 적합한 오픈 소스 라이브러리는 무엇입니까?
PDFsharp는 경량의 오픈 소스 .NET PDF 라이브러리로 기본적인 PDF 생성 작업에 이상적입니다. 상업적 및 비상업적 용도로 무료입니다.
iTextSharp는 안전한 PDF 문서 생성을 어떻게 지원합니까?
iTextSharp는 디지털 서명 및 암호화를 지원하는 다양한 맞춤 설정 옵션을 제공하여 보안 문서 처리가 필요한 산업에 적합한 안전한 PDF 문서 생성을 가능합니다.
C# 응용 프로그램에서 HTML을 PDF로 변환하기 위해 온라인 도구를 사용할 수 있습니까?
예, PDFShift와 DocRaptor와 같은 온라인 도구는 API 기반의 HTML을 PDF로 변환을 제공하여 동적 PDF 생성을 필요로 하는 웹 응용 프로그램에 이상적입니다.
Chromium 기반의 렌더링 엔진을 사용하는 라이브러리로 PDF를 생성하는 이점은 무엇입니까?
Chromium 기반 렌더링 엔진을 사용하는 IronPDF와 같은 라이브러리는 복잡한 스타일과 JavaScript를 지원하는 고품질 HTML을 PDF로 변환할 수 있습니다.
Syncfusion PDF 라이브러리는 Enterprise 응용 프로그램에 어떤 이점을 제공합니까?
Syncfusion PDF 라이브러리는 양식 처리, 디지털 서명 및 암호화와 같은 포괄적인 기능을 제공하여 복잡한 전문 요구 사항에 매우 적합합니다.
IronPDF는 곧 출시될 .NET 10과 호환됩니까?
예 — IronPDF는 .NET 10을 기본적으로 지원합니다. 버전 9, 8, 7, 6, Core, Standard 및 Framework와 함께 .NET 10과도 호환 가능합니다. (ironpdf.com)


