푸터 콘텐츠로 바로가기
제품 비교
PDFsharp를 사용하여 C# (.NET 5)에서 PDF 생성하는 방법

PDFSharp를 사용하여 C# (.NET 5)에서 PDF 생성하는 방법

이 비디오는 C# 코드를 사용하여 PDFsharp 라이브러리로 PDF 파일을 생성하는 방법에 대한 지침 가이드입니다. 발표자는 PDFsharp를 트릭하지만 효과적인 PDF 파일 생성 라이브러리로 소개합니다. 이 라이브러리는 고급 기능을 갖추고 있으며 많은 경쟁업체와 달리 완전히 무료입니다. 발표자는 복잡함에도 불구하고 C#를 사용하여 PDF 파일을 생성하는 데 PDFsharp가 훌륭한 선택이라고 강조합니다.

튜토리얼을 시작하기 위해, 발표자는 세 줄의 텍스트로 구성된 생성된 PDF 파일의 예를 제시합니다. 첫 번째 줄의 텍스트는 정확히 첫 번째 것이 아니며, 세 번째 줄의 텍스트는 오른쪽 하단 모서리에 나타납니다. 발표자는 코드를 살펴보면 텍스트의 순서가 이해될 것이라고 언급합니다. 또한, PDFsharp 작동 방식을 설명하기 위해 .NET 5를 사용할 것이라고 설명합니다. C#을 사용하여 PDF를 처음부터 생성하는 방법 에 대한 보다 포괄적인 접근 방식을 원한다면IronPDF간소화된 대안을 제공합니다.

다음은 .NET PDF 프로젝트와 가장 관련성이 높은 기능 측면에서 PDFsharp와IronPDF차이점을 간략하게 살펴본 것입니다.

특징 IronPDF PDFSharp
HTML을 PDF로 변환 Yes 아니오
디지털 서명 Yes 아니오
암호화 Yes 아니오
HTML, CSS 및 JavaScript Yes 아니오
Professional 지원 Yes 아니오
라이선스 상업적 MIT (오픈 소스)

아래 섹션에서는 이러한 차이점 각각에 대한 자세한 설명과 코드 예제를 제공합니다. 두 라이브러리를 비교하는 팀은 [30일 무료 평가판](평가판 라이선스)으로 IronPDF의 기능을 테스트할 수 있습니다.

설치 및 설정

코드에 들어가기 전에 발표자는 PDFsharp 환경 설정이 상당히 어려울 수 있음을 강조합니다. 그들은 PDFsharp NuGet 패키지 정보를 작업하기 전에 세 개의 NuGet 패키지를 설치해야 한다고 설명합니다. 첫 번째 패키지는 PDFsharp 자체로, 구버전이기 때문에 .NET과 일치하지 않을 수 있다는 경고를 생성할 수 있습니다. 다른 두 패키지는 System.Drawing.CommonSystem.Text.Encoding.CodePages입니다.

PdfSharp를 사용하여 C#(.NET 5)에서 PDF를 생성하는 방법: 그림 1

발표자는 PDFsharp를 작업하기 전에 세 패키지 모두를 설치해야 하며, 그렇지 않으면 코드가 오류를 발생시킬 것이라고 강조합니다. 특히 System.Text.Encoding.CodePages 패키지는 PDF 파일 생성에 필요한 인코딩 지원을 제공하므로 특히 중요하다고 설명합니다. 또한, 패키지를 제대로 설치하지 않으면 문제 해결이 어렵다고 발표자는 강조합니다. 여러 패키지를 설치하는 복잡한 과정을 완전히 피하고 싶은 팀은 PDFsharp에서IronPDF로의 마이그레이션 가이드를 따라 단계별로 전환할 수 있습니다.

관련 라이브러리 설치

발표자는 PDFSharp가 제대로 작동하려면 제공업체가 System.Text.Encoding에 등록되어 있어야 한다고 설명합니다. 제공자는 System.Text.Encoding.CodePages 패키지를 제공하며, 발표자는 PDFsharp가 올바르게 작동하도록 하기 위해 패키지를 등록하는 것이 중요하다는 점을 강조합니다. 그들은 공급자를 등록하지 않으면 오류가 발생할 것이며, 이는 문제를 해결하기 어렵게 만들 수 있다고 설명합니다.

PDF 파일 생성하기

다음으로 발표자는 PDFsharp를 사용하여 PDF 파일을 생성하는 간단한 콘솔 애플리케이션을 소개합니다. 라이브러리를 사용하기 전에 using 문으로 PDFsharp Drawing 및 PDFsharp PDF를 선언해야 한다고 설명합니다. 발표자는 PDF 파일을 생성하기 위한 코드를 제시하며, 이는 새 문서 생성, 새 페이지 추가, 페이지에 텍스트 그리기를 포함합니다.

using PdfSharp.Drawing;
using PdfSharp.Pdf;

namespace PdfSharpExample
{
    class Program
    {
        static void Main(string[] args)
        {
            // Create a new PDF document
            PdfDocument document = new PdfDocument();
            // Add a new page
            PdfPage page = document.AddPage();
            // Prepare to draw on the page
            XGraphics gfx = XGraphics.FromPdfPage(page);
            // Define a font
            XFont font = new XFont("Verdana", 20, XFontStyle.Bold);

            // Draw a string to the page
            gfx.DrawString("Hello, PDFsharp!", font, XBrushes.Black,
                new XRect(0, 0, page.Width, page.Height),
                XStringFormats.Center);

            // Save the document
            const string filename = "HelloWorld.pdf";
            document.Save(filename);  
        }
    }
}
using PdfSharp.Drawing;
using PdfSharp.Pdf;

namespace PdfSharpExample
{
    class Program
    {
        static void Main(string[] args)
        {
            // Create a new PDF document
            PdfDocument document = new PdfDocument();
            // Add a new page
            PdfPage page = document.AddPage();
            // Prepare to draw on the page
            XGraphics gfx = XGraphics.FromPdfPage(page);
            // Define a font
            XFont font = new XFont("Verdana", 20, XFontStyle.Bold);

            // Draw a string to the page
            gfx.DrawString("Hello, PDFsharp!", font, XBrushes.Black,
                new XRect(0, 0, page.Width, page.Height),
                XStringFormats.Center);

            // Save the document
            const string filename = "HelloWorld.pdf";
            document.Save(filename);  
        }
    }
}
Imports PdfSharp.Drawing
Imports PdfSharp.Pdf

Namespace PdfSharpExample
	Friend Class Program
		Shared Sub Main(ByVal args() As String)
			' Create a new PDF document
			Dim document As New PdfDocument()
			' Add a new page
			Dim page As PdfPage = document.AddPage()
			' Prepare to draw on the page
			Dim gfx As XGraphics = XGraphics.FromPdfPage(page)
			' Define a font
			Dim font As New XFont("Verdana", 20, XFontStyle.Bold)

			' Draw a string to the page
			gfx.DrawString("Hello, PDFsharp!", font, XBrushes.Black, New XRect(0, 0, page.Width, page.Height), XStringFormats.Center)

			' Save the document
			Const filename As String = "HelloWorld.pdf"
			document.Save(filename)
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

발표자는 PDF 파일을 생성하는 코드를 조정하여 이미지 추가(IronPDF사용하여 이미지를 PDF로 변환하는 방법 참조), 표 및 차트 추가와 같은 더 복잡한 기능을 포함할 수 있다고 언급합니다. 그들은 또한 PDFsharp가 글꼴을 사용할 수 있는 다양한 기능을 제공하며, PDF 파일에 글꼴을 포함시키는 것도 가능하다고 설명합니다.

PdfSharp를 사용하여 C#(.NET 5)에서 PDF를 생성하는 방법: 그림 2

발표자는 필요한 NuGet 패키지를 설치하고 System.Text.Encoding에 대한 공급자를 등록하여 환경을 올바르게 설정하는 것의 중요성에 대해 설명합니다. 그들은 또한 PDFsharp를 사용하여 PDF 파일을 생성하는 간단한 콘솔 애플리케이션을 제시하고, 코드를 조정하여 더 복잡한 기능을 포함시키는 방법을 시연합니다. 이 비디오는 C#과 PDFsharp를 사용하여 PDF 파일을 생성하는 데 관심이 있는 모든 사람들에게 훌륭한 리소스입니다.

목록 생성 및 더 복잡한 항목

비디오의 두 번째 부분에서 발표자는 PDF 문서를 생성하는 더 복잡한 예제를 소개합니다. 그는 빈 PDF 문서를 갖는 것은 무의미하다고 강조하고,PDFSharp라이브러리를 사용하여 새 페이지를 만드는 방법을 설명합니다. 그는 프로세스가 Excel 또는 PowerPoint 추가 기능에서 항목을 만드는 것과 유사하며, 페이지가 생성되면 다른 메서드를 호출할 필요가 없는 참조와 함께 작동한다고 언급합니다.

PdfSharp를 사용하여 C#(.NET 5)에서 PDF를 생성하는 방법: 그림 3

그런 다음 연사는 텍스트, 선, 이미지 등을 그리는 방법을 제공하는 XGraphics 변수를 소개하며, 이는 IronPDF가 수동 좌표 계산 없이도 텍스트 및 이미지 스탬핑 API를 통해 처리하는 기능입니다. PDF 문서에 사용할 글꼴을 설정하는 수단으로 XFont 변수도 소개합니다. 발표자는 폰트를 다른 곳에서 생성할 수는 있지만, 더 복잡한 배치가 있는 경우 전역적으로 설정하는 것이 유용하다고 언급합니다.

다음으로 연사는 PDF 파일에 텍스트를 작성하는 DrawString 방법에 대해 설명합니다. 그는 이 방법의 복잡한 부분은 텍스트가 그려질 위치를 결정하는 것이라고 언급하며 글꼴, 색상 및 텍스트가 정렬될 수 있는 경계와 같은 다양한 매개 변수를 설명합니다. 또한 텍스트 색상을 설정하기 위해 XBrushes 변수를 사용하는 방법도 설명합니다.

DrawString 및 기타 방법 설명

그런 다음 발표자는 텍스트를 중앙에 정렬하기, 왼쪽 하단에 정렬하기, 텍스트가 배치될 정확한 좌표 지정하기 등 다양한 매개 변수를 사용하여 DrawString 방법을 사용하는 몇 가지 예를 제시합니다. 그는 마지막 옵션이 가장 사용자 정의가 가능하며 상당한 유연성을 제공한다고 언급합니다.

PdfSharp를 사용하여 C#(.NET 5)에서 PDF를 생성하는 방법: 그림 4

발표자는 C# 프로그래밍 언어에서 그래픽을 사용하여 테이블을 만드는 방법을 설명합니다. 이 문서에서는 이미지, 문자열 및 선을 삽입하는 방법은 물론 그래픽 기능을 사용하여 호와 바코드를 그리는 방법도 다룹니다.IronPDF여백, 머리글 및 DPI에 대한 렌더링 옵션을 통해 이러한 작업을 간소화합니다. 그들은 또한 좌표 작업 시 시행착오의 중요성과 행을 구분하기 위해 선을 그리는 방법을 설명합니다.

발표자는 또한 테이블 헤더와 값 및 선의 시작점 필요성을 논의합니다. Y 위치를 조정하고 기록 행을 추가하는 방법, 테이블이 일정 수의 기록을 초과할 때 다른 페이지로 이동하는 방법을 설명합니다. 마지막으로, 각 페이지에 대해 값을 리셋하는 것이 중요하다는 점을 언급합니다.

어떤 라이브러리를 선택해야 합니까?

결론적으로, 발표자는 PDFSharp로 작업할 때 Microsoft Office 추가 기능에 익숙해지는 것이 중요하다고 강조하고 주제에 대한 자신의 코스를 제공합니다. 그는 또한 라이브러리가 매우 다재다능하며 간단한 텍스트 문서부터 이미지, 그래픽, 사용자 정의 레이아웃이 포함된 더 복잡한 문서까지 다양한 PDF 문서를 생성하는 데 사용할 수 있다고 언급합니다.

IronPDF란?

IronPDF 는 PDF 문서를 생성, 편집 및 조작하기 위한 C# PDF 라이브러리입니다. 단일 NuGet 패키지(Install-Package IronPdf)로 제공되며 추가 종속성 설정 없이 .NET 애플리케이션과 통합됩니다.

PDFsharp는 탄탄한 저수준 드로잉 제어 기능을 제공하며 관대한 MIT 라이선스 하에 배포됩니다. 이러한 두 가지 진정한 강점 덕분에 PDFsharp는 많은 .NET 프로젝트에서 필수적인 도구로 자리 잡았습니다. 팀이 마찰을 겪는 경우는 흔히 좌표 기반 렌더링을 넘어 HTML을 PDF로 변환하거나 디지털 서명, 문서 암호화와 같은 영역으로 요구 사항이 확장될 때 발생합니다.IronPDF는 이러한 시나리오를 주요 기능으로 처리하는 상용 라이브러리로, HTML, CSS 및 JavaScript 렌더링을 포함한 일반적인 문서 생성 워크플로를 중심으로 설계된 API와 Professional 지원을 제공합니다.

특징

특징 IronPDF PDFSharp
HTML을 PDF로 변환 아니오
전문 지원 아니오
HTML, CSS, JavaScript 지원 아니오
디지털 서명 아니오
암호화 아니오

IronPDF 의 주요 기능 중 하나는 HTML을IronPDF로 변환할 수 있다는 점으로 , 웹 페이지에서 PDF 문서를 간편하게 생성할 수 있도록 해줍니다. HTML을 PDF로 변환하는 기능은 현재 PDFsharp의 범위에 포함되지 않습니다. PDFsharp는 좌표 드로잉 수준에서 작동하므로 해당 기능이 필요한 팀은 일반적으로 별도의 렌더링 라이브러리를 추가하거나 IronPDF에 내장된 Chromium 엔진을 검토해야 합니다.

IronPDF 디지털 서명 및 암호 보호를 통한 PDF 암호화 기능 도 지원하는데, 이는 안전한 처리가 필요한 중요한 문서에 매우 중요합니다. PDFsharp는 이러한 보안 시나리오를 해결하도록 설계되지 않았으므로 규정 준수 또는 문서 보호 요구 사항이 있는 팀은IronPDF평가하는 자연스러운 전환점을 맞이하게 됩니다.

IronPDF PDFsharp에 비해 더 폭넓은 기능 세트와 포괄적인 지원을 제공하며, HTML 렌더링, 암호화 및 디지털 서명을 단일 NuGet 패키지에 포함합니다. 하지만 PDFsharp는 상용 제품이므로 HTML 변환이나 내장 보안 기능이 필요하지 않고 PDFsharp의 좌표 드로잉 모델에 맞는 요구 사항을 가진 팀은 MIT 라이선스가 적용된 오픈 소스 방식의 PDFsharp를 선호할 수 있습니다.

라이선스 비용 외에도 총 프로젝트 비용에는 별도의 렌더링 라이브러리를 조립하고, 복잡한 문서에 대한 좌표 기반 페이지 레이아웃을 관리하고, PDFsharp에 필요한 여러 패키지 설정 문제를 해결하는 데 소요된 개발자 시간이 포함됩니다. 수년에 걸친 프로젝트 수명 주기 동안 비용을 평가하는 팀의 경우, 이러한 통합 및 유지 관리 비용이 오픈 소스 라이선스와 상용 라이선스 간의 차이를 훨씬 능가하는 경우가 많습니다.

IronPDF 여러분의 워크플로우에 어떻게 적용되는지 확인해 보실 준비가 되셨나요? [30일 무료 평가판 다운로드](이 비교에서 다루는 모든 기능을 테스트할 수 있는 평가판 라이선스.

(PDFsharp는 해당 소유자의 등록 상표입니다. 본 사이트는 PDFsharp와 관련이 없으며, PDFsharp의 승인을 받거나 후원을 받지 않았습니다. 모든 제품 이름, 로고 및 브랜드는 해당 소유자의 자산입니다. 비교는 정보 제공 목적으로만 사용되며, 작성 시점에 공개적으로 이용 가능한 정보를 반영합니다.

자주 묻는 질문

C#에서 PDFsharp를 사용하여 PDF 파일을 어떻게 생성할 수 있습니까?

PDFsharp를 사용하여 PDF를 생성하려면 새 PDF 문서를 만들고, 페이지를 추가하며, XGraphics 객체를 사용하여 텍스트 또는 그래픽을 그리십시오. PdfSharp.DrawingPdfSharp.Pdf 네임스페이스를 사용하는 사용 구문을 꼭 포함하세요.

PDFsharp에 필요한 필수 NuGet 패키지는 무엇입니까?

PDFsharp를 효율적으로 작업하려면 다음 NuGet 패키지를 설치해야 합니다: PDFsharp, System.Drawing.Common 및 System.Text.Encoding.CodePages. 이 패키지들은 인코딩 지원 및 적절한 PDF 생성을 위해 필수적입니다.

IronPDF와 PDFsharp의 C#에서의 PDF 생성 비교는 어떻습니까?

IronPDF는 HTML을 PDF로 변환, 디지털 서명 및 암호화와 같은 고급 기능을 제공하는 상용 라이브러리입니다. PDFsharp에서는 제공되지 않습니다. 또한 IronPDF는 더 나은 문서화 및 전문적인 지원을 제공하여 복잡한 작업에 대해 사용자 친화적입니다.

PDF 생성에서 PDFsharp을 사용할 때의 제한은 무엇입니까?

PDFsharp는 HTML, CSS 또는 JavaScript를 지원하지 않아 사용 사례가 제한됩니다. 복잡한 문서를 위한 인코딩 설정 및 Microsoft Office 애드인을 잘 이해해야 하여 IronPDF에 비해 직관성이 떨어질 수 있습니다.

PDFsharp에서 System.Text.Encoding.CodePages 패키지가 중요한 이유는 무엇입니까?

System.Text.Encoding.CodePages 패키지는 PDFsharp로 PDF 파일을 생성할 때 필요한 인코딩 지원을 제공합니다. 이 패키지를 올바르게 설치하고 등록하지 않으면 인코딩 관련 오류가 발생할 수 있습니다.

무료 C# 라이브러리를 사용하여 HTML을 PDF로 변환할 수 있습니까?

아니요, PDFsharp는 HTML을 PDF로 변환하는 기능을 지원하지 않습니다. 이러한 기능을 위해서는 IronPDF처럼 이러한 기능과 다른 고급 기능을 제공하는 상용 라이브러리가 필요합니다.

PDFsharp에서 일반적인 오류를 어떻게 해결할 수 있습니까?

PDFsharp에서 일반적으로 발생하는 오류는 NuGet 패키지 또는 인코딩 문제의 잘못된 설정에서 비롯됩니다. 이러한 문제를 해결하려면 System.Text.Encoding.CodePages를 포함하여 모든 필요한 패키지가 설치되고 제대로 등록되었는지 확인하세요.

C# 개발자를 위한 IronPDF의 고급 기능은 무엇입니까?

IronPDF는 HTML을 PDF로 변환, 디지털 서명, 암호화 및 CSS 및 JavaScript 처리 기능과 같은 고급 기능을 제공합니다. 또한 .NET 응용 프로그램과의 통합 및 전문가 지원을 제공하여 개발자에게 강력한 도구가 됩니다.

PDFsharp를 사용하여 PDF에서 텍스트 레이아웃을 어떻게 사용자 지정할 수 있습니까?

PDFsharp를 사용하면 XGraphics 클래스의 DrawString 메서드를 활용하여 PDF에서 텍스트 레이아웃을 사용자 지정할 수 있습니다. 이를 통해 지정된 경계 내에서 글꼴, 색상 및 텍스트 정렬과 같은 속성을 설정할 수 있습니다.

PDFsharp는 C#에서 복잡한 PDF 문서를 작성하는 데 적합합니까?

PDFsharp는 복잡한 PDF 문서를 작성할 수 있지만 인코딩 및 Microsoft Office 추가 기능에 대한 철저한 이해가 필요합니다. IronPDF는 보다 직관적인 API와 추가 기능으로 인해 복잡한 작업에 더 나은 옵션일 수 있습니다.

커티스 차우
기술 문서 작성자

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

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

아이언 서포트 팀

저희는 주 5일, 24시간 온라인으로 운영합니다.
채팅
이메일
전화해