푸터 콘텐츠로 바로가기
제품 비교

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.

View Full Comparison

"Portable Document Format" 또는 PDF는 Adobe에서 만든 파일 형식입니다. PDF는 텍스트와 이미지가 일관되게 형식화되어야 하는 문서를 표시할 때 편리합니다. 현재 세계에서는 PDF 파일이 필수적이며 모든 기업 부문에서 문서 작성 및 송장을 위해 활용됩니다. 현재 시장에 있는 여러 PDF 라이브러리 덕분에 PDF 생성이 거의 직관적이 되었습니다. 프로젝트에 사용할 PDF 라이브러리를 선택하기 전에 각각의 장점과 특성을 평가하는 것이 중요합니다.

이 기사에서는 iTextSharp C#을 사용하여 PDF에 페이지 번호를 추가하는 방법을 살펴보겠습니다. 또한 iTextSharpIronPDF를 비교하겠습니다.

iTextSharp C#를 사용하여 PDF에 페이지 번호 추가하는 방법

  1. 원하는 IDE를 사용하여 새로운 C# 프로젝트를 만듭니다.
  2. 새로운 PDF 객체를 생성합니다.
  3. HTML 푸터에 페이지 번호를 추가합니다.
  4. HTML 콘텐츠로부터 PDF를 생성합니다.
  5. 컴퓨터에 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를 사용하여 PDF에 페이지 번호 추가하기: 그림 1 - 패키지 관리자에서 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
SHELL

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
$vbLabelText   $csharpLabel

설명

  1. 렌더러 초기화: 우리는 HTML을 PDF로 변환하는 기능을 제공하는 HtmlToPdf 인스턴스를 생성합니다.
  2. HTML 콘텐츠 정의: PDF로 변환할 필요가 있는 HTML 콘텐츠를 지정합니다.
  3. HTML 콘텐츠 렌더링: HTML을 PDF 문서로 변환하기 위해 RenderHtmlAsPdf 함수를 사용합니다.
  4. 푸터 정의: 페이지 번호는 HTML 푸터 텍스트에 플레이스홀더로 표시됩니다.
  5. 푸터 추가 및 PDF 저장: 문서에 푸터를 적용하고 PDF 파일로 저장합니다.

iTextSharp를 사용하여 PDF에 페이지 번호 추가하기: 그림 2 - IronPDF: 페이지 번호가 있는 출력 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
$vbLabelText   $csharpLabel

설명

  1. PDF 문서 생성: 새로운 DocumentPdfWriter를 초기화하여 빈 PDF 파일을 생성합니다.
  2. 콘텐츠 추가: 문서에 단락과 같은 기본 콘텐츠를 추가합니다.
  3. 페이지 번호 매기기: 페이지 번호를 포함하려면 iTextSharp의 이벤트 처리를 활용합니다. 우리는 PdfPageEventHelper로부터 상속받은 사용자 정의 클래스를 만듭니다.
  4. OnEndPage 재정의: 사용자 정의 클래스에서 각 페이지 하단에 페이지 번호를 추가하기 위해 OnEndPage 메서드를 재정의합니다.
  5. 문서 닫기: 문서를 닫아 완료합니다.

iTextSharp를 사용하여 PDF에 페이지 번호 추가하기: 그림 3 - iTextSharp: 페이지 번호가 있는 출력 PDF

결론

요약하자면, IronPDF의 특화된 기능, 사용 용이성, .NET 환경과의 원활한 통합은 HTML을 PDF로 변환하는 기능과 관련 기능을 요구하는 시나리오에 대해 가장 좋은 선택지로 자리잡고 있으며, iTextSharp가 여전히 C# PDF 조작 라이브러리의 강력한 경쟁자로 남아 있습니다. IronPDF를 사용하면 청구서, 보고서 및 동적으로 생성되는 HTML 콘텐츠 기반의 문서를 현대 개발 환경에서 성공하는 데 필요한 용이성, 효율성 및 적응력으로 생성할 수 있습니다.

IronPDF의 Lite 에디션에는 영구 라이선스, 업그레이드 옵션 및 1년의 소프트웨어 유지 보수가 포함됩니다. 워터마크가 있는 체험 기간을 통해 사용자는 실제적인 환경에서 제품을 평가할 수 있습니다. 라이선스에 대해 더 알아보려면 페이지를 방문하세요. Iron Software에 대한 자세한 내용을 보려면 웹사이트를 방문하세요.

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

자주 묻는 질문

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))

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

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

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

아이언 서포트 팀

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