푸터 콘텐츠로 바로가기
IRONPDF 사용하기

C#을 사용하여 PDF에 페이지 번호 추가하기

"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 파일을 생성, 읽기 및 간단히 편집하는 과정입니다.
  • HTML 로그인 양식을 사용하여 로그인할 수 있도록 사용자 에이전트, 프록시, 쿠키, HTTP 헤더 및 양식 변수를 관리하면서 웹사이트 URL 링크에서 PDF를 생성하는 프로세스입니다.
  • 이미 존재하는 PDF 파일에서 이미지를 제거합니다.
  • PDF의 요소를 포함합니다: 테이블, 텍스트, 사진, 책갈피, 워터마크, 헤더, 푸터 및 기타.
  • 여러 PDF 문서의 페이지를 손쉽게 분리하고 결합할 수 있는 기능입니다.

IronPDF 문서화에 대해 더 알고 싶으시면, 여기를 참조하세요.

IronPDF 설치 중

Visual Studio 도구에서 NuGet 패키지 관리자를 선택하면, 도구 아래에 Visual 커맨드라인 인터페이스가 있습니다. 아래 명령을 패키지 관리 터미널 탭에 입력해야 합니다.

Install-Package IronPdf

또는 패키지 관리자를 사용할 수 있습니다. Visual Studio의 NuGet Package Manager 옵션을 사용하여 솔루션에 직접 패키지를 설치할 수 있습니다. NuGet 웹사이트에서 패키지를 찾기 위한 검색 상자가 있습니다. 아래 그림에서와 같이 패키지 관리자에서 "IronPDF"를 찾아야 합니다:

PDF에 페이지 번호를 추가하는 방법: 그림 1 - IronPDF를 패키지 관리자에서 설치

관련 검색 결과 목록이 위에 표시됩니다. 시스템에 패키지를 설치하려면 필요한 선택을 수행하십시오.

이제 패키지가 다운로드되어 설치되었으므로 현재 프로젝트에서 사용할 수 있습니다.

iTextSharp란 무엇인가

iTextSharp는 C#에서 PDF 문서를 생성하고 수정할 수 있는 유연한 라이브러리입니다. 암호화, PDF 병합, 텍스트 및 이미지 추출 등을 비롯한 여러 기능을 제공합니다. iTextSharp는 PDF에 페이지 번호를 추가하는 것과 같은 여러 작업을 위한 효율적인 도구입니다.

iTextSharp 기능

  • iText 라이브러리를 통해 PDF 문서를 생성하기 위한 API가 제공됩니다.
  • HTML 및 XML 문자열을 PDF 파일로 구문 분석할 수 있습니다.
  • 우리는 PDF 문서에 책갈피, 페이지 번호 및 표지를 추가할 수 있습니다.
  • iText 라이브러리를 사용하여 PDF 문서를 여러 PDF로 분할하거나 여러 PDF 문서를 단일 PDF로 병합할 수 있습니다.
  • iText를 사용하여 PDF 양식을 수정할 수 있습니다.

iTextSharp 설치

NuGet 패키지 관리자를 사용하여 iText를 찾습니다. iText7 및 iText.pdfhtml은 여러 패키지에 걸쳐 iText 기능이 분할되어 있으므로 필수 설치 사항입니다.

Visual 명령줄 인터페이스를 선택하면, 다음 패키지를 설치해야 합니다.

Install-Package iTextSharp

iText 7은 최신 버전이므로 우리 솔루션에서는 이를 사용하고 있습니다.

IronPDF를 사용하여 페이지 번호 추가하기

IronPDF의 종합 라이브러리를 통해 PDF 파일에 페이지 번호를 쉽게 추가할 수 있습니다. 예를 들어, 아래 코드를 참조하세요.

using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        // Create a new HtmlToPdf renderer instance
        var renderer = new HtmlToPdf();

        // Define the HTML content with a header
        string header = "<h1>Hello IronPDF!</h1>";

        // Render the HTML as a PDF document
        PdfDocument pdf = renderer.RenderHtmlAsPdf(header);

        // Define the HTML footer with page numbers
        HtmlHeaderFooter htmlFooter = new HtmlHeaderFooter()
        {
            HtmlFragment = "<center><i>{page} of {total-pages}</i></center>"
        };

        // Add footer to the PDF
        pdf.AddHtmlFooters(htmlFooter);

        // Save the PDF document to a file
        pdf.SaveAs("output.pdf");
    }
}
using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        // Create a new HtmlToPdf renderer instance
        var renderer = new HtmlToPdf();

        // Define the HTML content with a header
        string header = "<h1>Hello IronPDF!</h1>";

        // Render the HTML as a PDF document
        PdfDocument pdf = renderer.RenderHtmlAsPdf(header);

        // Define the HTML footer with page numbers
        HtmlHeaderFooter htmlFooter = new HtmlHeaderFooter()
        {
            HtmlFragment = "<center><i>{page} of {total-pages}</i></center>"
        };

        // Add footer to the PDF
        pdf.AddHtmlFooters(htmlFooter);

        // Save the PDF document to a file
        pdf.SaveAs("output.pdf");
    }
}
Imports IronPdf

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Create a new HtmlToPdf renderer instance
		Dim renderer = New HtmlToPdf()

		' Define the HTML content with a header
		Dim header As String = "<h1>Hello IronPDF!</h1>"

		' Render the HTML as a PDF document
		Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(header)

		' Define the HTML footer with page numbers
		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 PDF document to a file
		pdf.SaveAs("output.pdf")
	End Sub
End Class
$vbLabelText   $csharpLabel

먼저, PDF로 변환되어야 하는 HTML 텍스트를 정의합니다. 이 HTML 콘텐츠는 단일 HTML 단락 또는 전체 HTML 페이지로 구성될 수 있습니다. 다음으로 HTML을 PDF로 변환하는 기능을 제공하는 HtmlToPdf 클래스의 인스턴스를 만듭니다. RenderHtmlAsPdf.

HTML 콘텐츠는 RenderHtmlAsPdf 함수의 인수로 전달됩니다. PDF로 변환되어야 하는 HTML 자료를 지정합니다. 페이지 번호는 이 HTML 텍스트의 바닥글 부분에 있는 {page} of {total-pages} 자리 표시자로 표시됩니다.

생성된 PDF 문서는 이 메서드에 의해 PdfDocument 객체로 반환됩니다. SaveAs 메서드를 사용하여 PDF 문서를 'output.pdf'라는 이름으로 파일로 저장합니다. 또한 OpenInDefaultPDFViewer 함수를 사용하여 시스템의 기본 PDF 리더로 생성된 PDF 문서를 열 수 있습니다. 위의 메서드를 사용하여 기존 PDF 파일에 페이지 번호를 추가할 수도 있습니다.

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 doc = new Document();
            PdfWriter writer = PdfWriter.GetInstance(doc, new FileStream("output.pdf", FileMode.Create));

            // Open the document to add content
            doc.Open();
            doc.Add(new Paragraph("Hello, world!"));

            // Attach page number event to PDF writer
            writer.PageEvent = new PageNumberEventHandler();

            // Close the document
            doc.Close();
        }
    }

    public class PageNumberEventHandler : PdfPageEventHelper
    {
        public override void OnOpenDocument(PdfWriter writer, Document document)
        {
            base.OnOpenDocument(writer, document);
        }

        public override void OnEndPage(PdfWriter writer, Document document)
        {
            base.OnEndPage(writer, document);

            // Create a table to hold the page number
            PdfPTable table = new PdfPTable(1);
            table.TotalWidth = 300f;
            table.HorizontalAlignment = Element.ALIGN_CENTER;

            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, 150f, document.Bottom, writer.DirectContent);
        }

        public override void OnCloseDocument(PdfWriter writer, Document document)
        {
            base.OnCloseDocument(writer, document);
        }
    }
}
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 doc = new Document();
            PdfWriter writer = PdfWriter.GetInstance(doc, new FileStream("output.pdf", FileMode.Create));

            // Open the document to add content
            doc.Open();
            doc.Add(new Paragraph("Hello, world!"));

            // Attach page number event to PDF writer
            writer.PageEvent = new PageNumberEventHandler();

            // Close the document
            doc.Close();
        }
    }

    public class PageNumberEventHandler : PdfPageEventHelper
    {
        public override void OnOpenDocument(PdfWriter writer, Document document)
        {
            base.OnOpenDocument(writer, document);
        }

        public override void OnEndPage(PdfWriter writer, Document document)
        {
            base.OnEndPage(writer, document);

            // Create a table to hold the page number
            PdfPTable table = new PdfPTable(1);
            table.TotalWidth = 300f;
            table.HorizontalAlignment = Element.ALIGN_CENTER;

            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, 150f, document.Bottom, writer.DirectContent);
        }

        public override void OnCloseDocument(PdfWriter writer, Document document)
        {
            base.OnCloseDocument(writer, document);
        }
    }
}
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 doc As New Document()
			Dim writer As PdfWriter = PdfWriter.GetInstance(doc, New FileStream("output.pdf", FileMode.Create))

			' Open the document to add content
			doc.Open()
			doc.Add(New Paragraph("Hello, world!"))

			' Attach page number event to PDF writer
			writer.PageEvent = New PageNumberEventHandler()

			' Close the document
			doc.Close()
		End Sub
	End Class

	Public Class PageNumberEventHandler
		Inherits PdfPageEventHelper

		Public Overrides Sub OnOpenDocument(ByVal writer As PdfWriter, ByVal document As Document)
			MyBase.OnOpenDocument(writer, document)
		End Sub

		Public Overrides Sub OnEndPage(ByVal writer As PdfWriter, ByVal document As Document)
			MyBase.OnEndPage(writer, document)

			' Create a table to hold the page number
			Dim table As New PdfPTable(1)
			table.TotalWidth = 300F
			table.HorizontalAlignment = Element.ALIGN_CENTER

			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, 150F, document.Bottom, writer.DirectContent)
		End Sub

		Public Overrides Sub OnCloseDocument(ByVal writer As PdfWriter, ByVal document As Document)
			MyBase.OnCloseDocument(writer, document)
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

먼저, 비어 있는 PDF 파일을 만들 수 있게 해주는 DocumentPdfWriter를 위한 새로운 객체를 생성합니다. PDF 문서에 텍스트, 사진, 표 및 다른 유형의 자료를 포함할 수 있습니다. 데모 목적으로 일부 샘플 텍스트를 추가하기 위해 Paragraph를 사용합시다. 중요한 단계는 이제 PDF 문서에 페이지 번호를 추가하는 것입니다. 이를 위해 iTextSharp의 페이지 이벤트를 사용할 것입니다. 특정 이벤트가 PDF 생성 프로세스 중에 발생할 때 호출되는 메서드를 재정의할 수 있도록 PdfPageEventHelper 클래스를 상속하는 클래스를 정의하는 것으로 시작합니다.

현재 페이지 번호를 포함하는 단일 셀을 가진 테이블을 추가하기 위해 이 클래스에서 OnEndPage 기능을 재정의합니다. 마지막으로 문서를 닫기 전에 PageNumberEventHandler 클래스의 인스턴스를 PdfWriter 객체에 연결해야 합니다. 이 구성으로 PageNumberEventHandler 클래스의 OnEndPage 함수는 새로운 페이지가 PDF 문서에 추가될 때마다 호출되어 각 페이지 하단에 페이지 번호를 추가합니다. 우리는 또한 기존 PDF 문서를 사용하여 페이지 번호를 추가할 수 있습니다.

PDF에 페이지 번호를 추가하는 방법: 그림 3 - iTextSharp: 페이지 번호가 있는 출력된 PDF

결론

요약하자면, IronPDF의 전문성, 사용성, .NET 환경과의 원활한 통합은 HTML을 PDF로 변환하고 관련 기능이 필요한 시나리오에서 최상의 옵션으로 자리매김하고 있으며, iTextSharp가 여전히 C# PDF 조작 라이브러리의 경쟁자라는 점에서도 강력한 입지를 가지고 있습니다. IronPDF를 사용하면 HTML 콘텐츠로부터 송장, 보고서 및 동적으로 생성된 문서를 현대 개발 환경에서 성공하기 위한 용이성과 효율성, 적응성을 갖춰 생성할 수 있습니다.

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

자주 묻는 질문

C#을 사용하여 PDF에 페이지 번호를 어떻게 추가할 수 있습니까?

IronPDF를 사용하여 페이지 번호 자리표시자가 있는 HTML 콘텐츠를 정의하고, AddHtmlFooters 메소드를 사용하여 PDF의 바닥글로 적용하여 PDF에 페이지 번호를 추가할 수 있습니다.

IronPDF를 사용한 PDF 조작의 이점은 무엇입니까?

IronPDF는 HTML5, JavaScript, CSS 및 이미지-포-PDF 변환을 지원하는 강력한 PDF.NET Framework 기능을 제공하여 사용자 정의 헤더 및 바닥글로 PDF를 쉽게 조작할 수 있게 합니다.

페이지 번호 추가 시 iTextSharp과 IronPDF를 비교하면 어떤가요?

iTextSharp는 페이지 번호를 처리하기 위해 PdfPageEventHelper 클래스를 사용하는 반면, IronPDF는 페이지 번호 자리표시자가 있는 HTML 바닥글을 정의할 수 있는 간단한 접근 방식을 제공합니다.

기존 PDF 파일에 페이지 번호를 추가할 수 있나요?

네, IronPDF를 사용하여 HTML 바닥글을 사용하여 페이지 번호 자리표시자로 기존 PDF 파일에 페이지 번호를 추가하고 원본 문서와 병합할 수 있습니다.

HTML을 PDF로 변환하는 데 선호되는 방법은 무엇인가요?

IronPDF는 .NET 환경과 원활한 통합 및 HTML5, JavaScript, CSS를 처리할 수 있는 능력 덕분에 HTML을 PDF로 변환하는 데 선호됩니다.

C# 프로젝트에서 IronPDF를 사용하는 설치 단계는 무엇인가요?

Visual Studio의 NuGet 패키지 관리자를 사용하여 'IronPDF'를 검색하고 프로젝트에 추가하여 C# 프로젝트에 IronPDF를 설치할 수 있습니다.

C#을 사용하여 PDF의 페이지 번호가 정확하게 되도록 하려면 어떻게 해야 하나요?

IronPDF를 사용하여 HTML 템플릿을 페이지 번호 자리표시자로 정의하고 PDF 페이지 전반에 일관되게 적용하여 페이지 번호가 정확하게 되는지 확인하십시오.

IronPDF에 대한 라이선스 옵션이 있습니까?

IronPDF는 영구 라이선스, 업그레이드 옵션, 1년간의 소프트웨어 유지보수 및 평가용 워터마크 체험 기간이 포함된 'Lite' 에디션을 제공합니다.

IronPDF를 사용하는 상세한 예제 및 문서를 어디에서 찾을 수 있나요?

IronPDF를 사용하는 포괄적인 문서 및 예제는 공식 웹사이트 ironpdf.com에서 찾을 수 있습니다.

IronPDF는 .NET 10과 완전히 호환되며, 페이지 번호 기능을 포함해 .NET 10 프로젝트에서 특별한 구성이나 우회 방법 없이 작동하나요?

네, IronPDF는 .NET 10을 지원하며 모든 기능, 포함 페이지 번호 기능이 .NET 10 프로젝트에서 특별한 구성이나 우회 방법 없이 즉시 사용할 수 있습니다.

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

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

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

아이언 서포트 팀

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