C#에서 iTextSharp을 사용하여 PDF에 페이지 번호를 추가하는 방법
Full Comparison
Looking for a detailed feature-by-feature breakdown? See how IronPDF stacks up against Itext on pricing, HTML support, and licensing.
"Portable Document Format" 또는 PDF는 Adobe에서 만든 파일 형식입니다. PDF는 텍스트와 이미지가 일관되게 형식화되어야 하는 문서를 표시할 때 편리합니다. 현재 세계에서는 PDF 파일이 필수적이며 모든 기업 부문에서 문서 작성 및 송장을 위해 활용됩니다. 현재 시장에 있는 여러 PDF 라이브러리 덕분에 PDF 생성이 거의 직관적이 되었습니다. 프로젝트에 사용할 PDF 라이브러리를 선택하기 전에 각각의 장점과 특성을 평가하는 것이 중요합니다.
이 기사에서는 iTextSharp C#을 사용하여 PDF에 페이지 번호를 추가하는 방법을 살펴보겠습니다. 또한 iTextSharp와 IronPDF를 비교하겠습니다.
iTextSharp C#를 사용하여 PDF에 페이지 번호 추가하는 방법
- 원하는 IDE를 사용하여 새로운 C# 프로젝트를 만듭니다.
- 새로운 PDF 객체를 생성합니다.
- HTML 푸터에 페이지 번호를 추가합니다.
- HTML 콘텐츠로부터 PDF를 생성합니다.
- 컴퓨터에 PDF 파일을 저장합니다.
IronPDF란 무엇인가
IronPDF는 개발자가 쉽게 PDF를 생성, 보기 및 편집할 수 있는 강력한 PDF .NET Framework입니다. IronPDF는 내부적으로 크로니움 엔진을 사용하는 정교한 도구입니다. HTML5, JavaScript, CSS 및 이미지 파일을 PDF로 변환하고 커스텀 헤더와 푸터를 추가하며 브라우저에서 보는 것과 정확히 같은 PDF를 생성할 수 있습니다. IronPDF는 HTML, ASPX, Razor View 및 MVC를 포함한 많은 온라인 및 네트 포맷을 지원합니다.
IronPDF 기능
- .NET C# 코드를 사용하여 PDF 파일을 생성, 읽기 및 쉽게 편집합니다.
- 웹사이트 URL 링크에서 PDF를 생성하면서 사용자 에이전트, 프록시, 쿠키, HTTP 헤더 및 폼 변수를 관리하여 HTML 로그인 폼을 통한 로그인을 활성화합니다.
- 기존 PDF 파일에서 이미지를 추출합니다.
- PDF에 테이블, 텍스트, 이미지, 북마크, 워터마크, 헤더, 푸터 등을 포함합니다.
- 여러 PDF 문서에서 페이지를 쉽게 분할하고 결합할 수 있는 기능을 제공합니다.
IronPDF 문서에 대해 더 알고 싶다면 여기를 참조하십시오.
IronPDF 설치 중
Visual Studio 도구 내에서 NuGet 패키지 관리자를 선택하고 도구 아래에 Visual 명령줄 인터페이스를 찾을 수 있습니다. 아래 명령을 패키지 관리 터미널 탭에 입력해야 합니다.
Install-Package IronPdf
또는 패키지 관리자를 사용할 수 있습니다. Visual Studio의 NuGet Package Manager 옵션을 사용하여 솔루션에 직접 패키지를 설치할 수 있습니다. NuGet 웹사이트에서 패키지를 찾기 위한 검색 상자가 있습니다. 아래 그림에서와 같이 패키지 관리자에서 "IronPDF"를 찾아야 합니다:

관련 검색 결과 목록은 위 이미지에 표시됩니다. 시스템에 패키지를 설치하려면 필요한 선택을 수행하십시오.
이제 패키지가 다운로드되어 설치되었으므로 현재 프로젝트에서 사용할 수 있습니다.
iTextSharp란 무엇인가
iTextSharp는 C#에서 PDF 문서를 생성하고 수정할 수 있는 유연한 라이브러리입니다. 암호화, PDF 병합, 텍스트 및 이미지 추출 등 여러 기능을 제공합니다. iTextSharp는 PDF에 페이지 번호를 추가하는 것과 같은 여러 작업을 위한 효율적인 도구입니다.
iTextSharp 기능
- iText 라이브러리를 통해 PDF 문서를 생성하기 위한 API가 제공됩니다.
- HTML 및 XML 문자열을 PDF 파일로 구문 분석할 수 있습니다.
- PDF 문서에 북마크, 페이지 번호 및 마커를 추가할 수 있습니다.
- 여러 PDF 문서를 하나로 합치거나 하나의 PDF 문서를 여러 개로 나눌 수 있습니다.
- iText를 사용하여 PDF 양식을 수정할 수 있습니다.
iTextSharp 설치
NuGet 패키지 관리자를 사용하여 iText를 검색하십시오. iText7 및 iText.pdfhtml은 여러 패키지에 걸쳐 iText 기능이 분할되어 있으므로 필수 설치 사항입니다.
Visual 명령줄 인터페이스를 선택하면, 다음 패키지를 설치해야 합니다.
Install-Package iText7
Install-Package itext7.pdfhtml
Install-Package iText7
Install-Package itext7.pdfhtml
iText 7은 최신 버전이므로 우리 솔루션에서는 이를 사용하고 있습니다.
IronPDF를 사용하여 페이지 번호 추가하기
IronPDF의 종합 라이브러리를 통해 PDF 파일에 페이지 번호를 쉽게 추가할 수 있습니다. 예를 들면, 아래 코드를 참조하세요:
using IronPdf;
class Program
{
static void Main(string[] args)
{
// Initialize the IronPdf renderer
var renderer = new IronPdf.HtmlToPdf();
// HTML content to convert to PDF
string header = "<h1>Hello Ironpdf!</h1>";
// Render the HTML content to PDF
PdfDocument pdf = renderer.RenderHtmlAsPdf(header);
// Define the footer with page number placeholders
HtmlHeaderFooter htmlFooter = new HtmlHeaderFooter
{
HtmlFragment = "<center><i>{page} of {total-pages}</i></center>"
};
// Add footer to the PDF
pdf.AddHtmlFooters(htmlFooter);
// Save the output PDF file
pdf.SaveAs("output.pdf");
}
}
using IronPdf;
class Program
{
static void Main(string[] args)
{
// Initialize the IronPdf renderer
var renderer = new IronPdf.HtmlToPdf();
// HTML content to convert to PDF
string header = "<h1>Hello Ironpdf!</h1>";
// Render the HTML content to PDF
PdfDocument pdf = renderer.RenderHtmlAsPdf(header);
// Define the footer with page number placeholders
HtmlHeaderFooter htmlFooter = new HtmlHeaderFooter
{
HtmlFragment = "<center><i>{page} of {total-pages}</i></center>"
};
// Add footer to the PDF
pdf.AddHtmlFooters(htmlFooter);
// Save the output PDF file
pdf.SaveAs("output.pdf");
}
}
Imports IronPdf
Friend Class Program
Shared Sub Main(ByVal args() As String)
' Initialize the IronPdf renderer
Dim renderer = New IronPdf.HtmlToPdf()
' HTML content to convert to PDF
Dim header As String = "<h1>Hello Ironpdf!</h1>"
' Render the HTML content to PDF
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(header)
' Define the footer with page number placeholders
Dim htmlFooter As New HtmlHeaderFooter With {.HtmlFragment = "<center><i>{page} of {total-pages}</i></center>"}
' Add footer to the PDF
pdf.AddHtmlFooters(htmlFooter)
' Save the output PDF file
pdf.SaveAs("output.pdf")
End Sub
End Class
설명
- 렌더러 초기화: 우리는 HTML을 PDF로 변환하는 기능을 제공하는
HtmlToPdf인스턴스를 생성합니다. - HTML 콘텐츠 정의: PDF로 변환할 필요가 있는 HTML 콘텐츠를 지정합니다.
- HTML 콘텐츠 렌더링: HTML을 PDF 문서로 변환하기 위해
RenderHtmlAsPdf함수를 사용합니다. - 푸터 정의: 페이지 번호는 HTML 푸터 텍스트에 플레이스홀더로 표시됩니다.
- 푸터 추가 및 PDF 저장: 문서에 푸터를 적용하고 PDF 파일로 저장합니다.

IronPDF 코드에 대해 더 알아보려면 여기를 참조하세요.
iTextSharp를 사용하여 페이지 번호 추가하기
먼저 iTextSharp를 사용하여 새로운 PDF 문서를 생성해 보겠습니다. 페이지 번호가 있는 새 PDF 문서를 만드는 기본 예는 다음과 같습니다:
using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;
namespace ConsoleApp1
{
internal class Program
{
static void Main(string[] args)
{
// Create a new PDF document
Document document = new Document();
PdfWriter writer = PdfWriter.GetInstance(document, new FileStream("output.pdf", FileMode.Create));
// Open the document to add content
document.Open();
document.Add(new Paragraph("Hello, world!"));
// Attach page number event to PDF writer
writer.PageEvent = new PageNumberEventHandler();
// Close the document
document.Close();
}
}
public class PageNumberEventHandler : PdfPageEventHelper
{
public override void OnEndPage(PdfWriter writer, Document document)
{
base.OnEndPage(writer, document);
// Create a table for the page number
PdfPTable table = new PdfPTable(1);
table.TotalWidth = 300f;
table.HorizontalAlignment = Element.ALIGN_CENTER;
// Add page number to the table cell
PdfPCell cell = new PdfPCell(new Phrase($"Page {writer.PageNumber}"));
cell.Border = 0;
table.AddCell(cell);
// Write the table at the bottom of the page
table.WriteSelectedRows(0, -1, 150, document.Bottom, writer.DirectContent);
}
}
}
using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;
namespace ConsoleApp1
{
internal class Program
{
static void Main(string[] args)
{
// Create a new PDF document
Document document = new Document();
PdfWriter writer = PdfWriter.GetInstance(document, new FileStream("output.pdf", FileMode.Create));
// Open the document to add content
document.Open();
document.Add(new Paragraph("Hello, world!"));
// Attach page number event to PDF writer
writer.PageEvent = new PageNumberEventHandler();
// Close the document
document.Close();
}
}
public class PageNumberEventHandler : PdfPageEventHelper
{
public override void OnEndPage(PdfWriter writer, Document document)
{
base.OnEndPage(writer, document);
// Create a table for the page number
PdfPTable table = new PdfPTable(1);
table.TotalWidth = 300f;
table.HorizontalAlignment = Element.ALIGN_CENTER;
// Add page number to the table cell
PdfPCell cell = new PdfPCell(new Phrase($"Page {writer.PageNumber}"));
cell.Border = 0;
table.AddCell(cell);
// Write the table at the bottom of the page
table.WriteSelectedRows(0, -1, 150, document.Bottom, writer.DirectContent);
}
}
}
Imports System.IO
Imports iTextSharp.text
Imports iTextSharp.text.pdf
Namespace ConsoleApp1
Friend Class Program
Shared Sub Main(ByVal args() As String)
' Create a new PDF document
Dim document As New Document()
Dim writer As PdfWriter = PdfWriter.GetInstance(document, New FileStream("output.pdf", FileMode.Create))
' Open the document to add content
document.Open()
document.Add(New Paragraph("Hello, world!"))
' Attach page number event to PDF writer
writer.PageEvent = New PageNumberEventHandler()
' Close the document
document.Close()
End Sub
End Class
Public Class PageNumberEventHandler
Inherits PdfPageEventHelper
Public Overrides Sub OnEndPage(ByVal writer As PdfWriter, ByVal document As Document)
MyBase.OnEndPage(writer, document)
' Create a table for the page number
Dim table As New PdfPTable(1)
table.TotalWidth = 300F
table.HorizontalAlignment = Element.ALIGN_CENTER
' Add page number to the table cell
Dim cell As New PdfPCell(New Phrase($"Page {writer.PageNumber}"))
cell.Border = 0
table.AddCell(cell)
' Write the table at the bottom of the page
table.WriteSelectedRows(0, -1, 150, document.Bottom, writer.DirectContent)
End Sub
End Class
End Namespace
설명
- PDF 문서 생성: 새로운
Document및PdfWriter를 초기화하여 빈 PDF 파일을 생성합니다. - 콘텐츠 추가: 문서에 단락과 같은 기본 콘텐츠를 추가합니다.
- 페이지 번호 매기기: 페이지 번호를 포함하려면 iTextSharp의 이벤트 처리를 활용합니다. 우리는
PdfPageEventHelper로부터 상속받은 사용자 정의 클래스를 만듭니다. OnEndPage재정의: 사용자 정의 클래스에서 각 페이지 하단에 페이지 번호를 추가하기 위해OnEndPage메서드를 재정의합니다.- 문서 닫기: 문서를 닫아 완료합니다.

결론
요약하자면, IronPDF의 특화된 기능, 사용 용이성, .NET 환경과의 원활한 통합은 HTML을 PDF로 변환하는 기능과 관련 기능을 요구하는 시나리오에 대해 가장 좋은 선택지로 자리잡고 있으며, iTextSharp가 여전히 C# PDF 조작 라이브러리의 강력한 경쟁자로 남아 있습니다. IronPDF를 사용하면 청구서, 보고서 및 동적으로 생성되는 HTML 콘텐츠 기반의 문서를 현대 개발 환경에서 성공하는 데 필요한 용이성, 효율성 및 적응력으로 생성할 수 있습니다.
IronPDF의 Lite 에디션에는 영구 라이선스, 업그레이드 옵션 및 1년의 소프트웨어 유지 보수가 포함됩니다. 워터마크가 있는 체험 기간을 통해 사용자는 실제적인 환경에서 제품을 평가할 수 있습니다. 라이선스에 대해 더 알아보려면 페이지를 방문하세요. Iron Software에 대한 자세한 내용을 보려면 웹사이트를 방문하세요.
자주 묻는 질문
C#에서 iTextSharp를 사용하여 PDF에 페이지 번호를 추가할 수 있나요?
C#에서 iTextSharp를 사용하여 페이지 번호를 추가하려면 PdfPageEventHelper를 상속하는 사용자 정의 클래스를 생성할 수 있습니다. OnEndPage 메서드를 재정의하여 페이지 번호를 삽입하고 이 이벤트를 PdfWriter 인스턴스에 연결하세요.
왜 PDF가 다양한 분야에서 중요한가요?
PDF는 텍스트와 이미지의 일관된 형식을 유지하며, 이는 기업 분야에서 문서 작성 및 청구에 필수적입니다. PDF는 문서를 전문적으로 제시하는 데 신뢰할 수 있는 포맷입니다.
IronPDF를 사용하여 PDF 조작의 장점은 무엇인가요?
IronPDF는 .NET 환경 내에서 PDF 생성, 보기 및 편집에 대한 강력한 기능을 제공합니다. HTML, JavaScript 및 이미지를 PDF로 변환하는 데 뛰어나며, 사용자 지정 머리말, 바닥글 및 워터마크를 지원합니다.
IronPDF는 JavaScript 지원으로 HTML을 PDF로 변환할 수 있나요?
네, IronPDF는 웹 브라우저에서 보이는 레이아웃과 기능을 유지하며 HTML 컨텐츠, 포함된 JavaScript까지 PDF로 변환할 수 있습니다.
C# 프로젝트에 IronPDF를 어떻게 설치하나요?
Visual Studio에서 NuGet 패키지 관리자을 사용하여 IronPDF를 설치할 수 있습니다. 'IronPDF'를 검색하여 프로젝트에 추가하고 기능을 사용 시작하세요.
IronPDF가 제공하는 체험판의 중요성은 무엇인가요?
IronPDF의 체험판은 실제 응용 프로그램에서 기능 및 성능을 탐색할 수 있게 하며, 라이선스를 구매하기 전에 적합성을 평가하는 데 도움을 줍니다.
페이지 번호 추가 시 iTextSharp과 IronPDF를 비교하면 어떤가요?
iTextSharp는 페이지 번호 추가를 위해 이벤트 핸들링을 사용하지만, IronPDF는 머리말과 바닥글을 위한 HTML 템플릿으로 더 간단한 접근 방식을 제공합니다. 이는 사용의 용이성을 찾는 .NET 개발자에게 이상적입니다.
C# 프로젝트에 PDF 라이브러리를 선택할 때 고려해야 할 것은 무엇인가요?
각 라이브러리가 제공하는 기능을 고려하세요. 예를 들어, IronPDF는 HTML을 PDF로 변환하는 데 전문화되어 있으며 .NET Framework와 잘 통합되지만, iTextSharp는 강력한 암호화 및 텍스트 추출 기능을 제공합니다.
페이지 번호 추가를 위해 .NET 10과 호환되는 iTextSharp 또는 iText 7을 사용해야 하나요?
iTextSharp (버전 5.x)은 공식적으로 더 이상 사용되지 않으며 유지 관리 모드에 있으며, 보안 수정만 받으며, 새로운 기능 업데이트가 없습니다. .NET 10을 직접 타겟팅하지 않으며, 최신 .NET 릴리스에서 사용하면 호환성 제한이 있을 수 있습니다. 새로운 프로젝트 또는 .NET 10으로 업그레이드하는 경우 iText 7 (또는 iText Core)을 강력히 권장하며, 이는 최신 프레임워크를 지원하고 iTextSharp에 비해 향상된 기능을 포함합니다. ([itextpdf.com](https://itextpdf.com/products/itextsharp?utm_source=openai))



