목차
NuGet으로 설치
PM> Install-Package Spire.PDF
관련 링크
소프트웨어 개발 및 문서 관리 분야에서 C#에서 PDF를 분할하는 방법은 .NET 개발자에게 필수적인 기술입니다. 큰 보고서를 작은 부분으로 나누거나, 배포를 위해 특정 페이지를 추출하거나, 콘텐츠를 더 효율적으로 구성해야 할 때 프로그래밍 방식으로 PDF 파일을 분할하면 상당한 시간과 노력을 절약할 수 있습니다.

이 가이드에서는 강력하고 종속성이 없는 PDF 처리 솔루션인 Spire.PDF for .NET 라이브러리를 사용하여 C#에서 PDF 파일을 분할하는 방법을 살펴봅니다.
Spire.PDF for .NET 소개
Spire.PDF는 다음과 같은 기능을 제공하는 풍부한 기능의 .NET 라이브러리입니다.
- 포괄적인 PDF 조작 기능
- Adobe Acrobat에 대한 종속성 없음
- .NET Framework, .NET Core, .NET 5+, MonoAndroid 및 Xamarin.iOS 지원
C# 애플리케이션에서 PDF를 여러 파일로 분할하기 전에 NuGet 패키지 관리자를 통해 라이브러리를 설치해야 합니다.
- Visual Studio에서 C# 프로젝트를 엽니다.
- 솔루션 탐색기에서 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 "NuGet 패키지 관리"를 선택합니다.
- NuGet 패키지 관리자 창에서 "Spire.PDF"를 검색합니다.
- 적절한 버전의 라이브러리를 선택하고 "설치"를 클릭합니다. NuGet이 필요한 참조를 다운로드하여 프로젝트에 추가합니다.
대체 방법: Spire.PDF 공식 웹사이트에서 DLL을 수동으로 다운로드하여 프로젝트에서 참조합니다.
C#에서 PDF 문서 분할 - 코드 예제
이제 라이브러리가 프로젝트에 설정되었으므로 .NET에서 PDF를 분할하는 방법을 살펴보겠습니다. PDF를 개별 페이지로 분할하거나 특정 페이지 수에 따라 여러 PDF로 분할하는 등 다양한 시나리오가 있습니다. 두 가지 일반적인 경우를 모두 다룰 것입니다.
PDF를 개별 페이지로 분할
다음은 PDF 문서를 각기 원본 문서의 한 페이지만 포함하는 개별 PDF 파일로 분할하는 C# 코드 예제입니다.
using Spire.Pdf;
namespace SplitPDFIntoMultipleFiles
{
class Program
{
static void Main(string[] args)
{
// 입력 파일 경로 지정
string inputFile = "C:\\Users\\Administrator\\Desktop\\Terms of Service.pdf";
// 출력 디렉토리 지정
string outputDirectory = "C:\\Users\\Administrator\\Desktop\\Output\\";
// PdfDocument 객체 생성
PdfDocument pdf = new PdfDocument();
// PDF 파일 로드
pdf.LoadFromFile(inputFile);
// PDF를 여러 개의 한 페이지 PDF로 분할
pdf.Split(outputDirectory + "output-{0}.pdf", 1);
}
}
}
Split() 메서드를 호출하여 입력 PDF 문서(10페이지 포함)를 10개의 개별 파일로 분할할 수 있습니다.

페이지 범위별로 PDF를 여러 파일로 분할
큰 PDF를 각각 지정된 수의 페이지를 포함하는 여러 개의 작은 PDF로 분할하려는 경우 두 개 이상의 새 PDF 문서를 만든 다음 원본 PDF에서 페이지 또는 페이지 범위를 가져올 수 있습니다.
C#에서 페이지별로 PDF 파일을 분할하는 일반적인 단계는 다음과 같습니다.
- 원본 PDF를 로드합니다.
- 분할된 페이지를 담을 두 개의 빈 PDF를 만듭니다.
- PDF 페이지 분할:
- InsertPage() 메서드를 사용하여 원본 PDF에서 지정된 페이지를 첫 번째 새 PDF로 가져옵니다.
- InsertPageRange() 메서드를 사용하여 원본 PDF에서 페이지 범위를 두 번째 새 PDF로 가져옵니다.
- 두 개의 새 PDF를 모두 출력 디렉토리에 저장합니다.
C# 샘플 코드:
using Spire.Pdf;
namespace SplitPdfByPageRanges
{
class Program
{
static void Main(string[] args)
{
// 입력 파일 경로 지정
string inputFile = "C:\\Users\\Administrator\\Desktop\\Terms of Service.pdf";
// 출력 디렉토리 지정
string outputDirectory = "C:\\Users\\Administrator\\Desktop\\Output\\";
// PdfDocument 객체를 초기화하면서 원본 PDF 파일 로드
PdfDocument sourcePdf = new PdfDocument(inputFile);
// 두 개의 새 PDF 문서 생성
PdfDocument pdf1 = new PdfDocument();
PdfDocument pdf2 = new PdfDocument();
// 원본 PDF의 첫 페이지를 첫 번째 문서에 삽입
pdf1.InsertPage(sourcePdf, 0);
// 원본 PDF의 나머지 페이지를 두 번째 문서에 삽입
pdf2.InsertPageRange(sourcePdf, 1, sourcePdf.Pages.Count - 1);
// 두 PDF 문서 저장
pdf1.SaveToFile(outputDirectory + "output-1.pdf");
pdf2.SaveToFile(outputDirectory + "output-2.pdf");
}
}
}
이 코드를 실행하여 입력 PDF의 1페이지와 2-10페이지를 2개의 별도 PDF 파일로 추출할 수 있습니다.

PDF 분할을 위한 고급 팁
-
동적 페이지 범위: 여러 범위(예: 1-3페이지, 5-7페이지)로 분할하려면 추가 PdfDocument 객체를 만들고 InsertPageRange() 메서드의 페이지 삽입 인덱스를 조정하십시오.
-
파일 이름 지정 규칙: Split() 메서드의 destFilePattern 매개변수를 통해 출력 파일의 이름을 지정할 때 설명적인 패턴을 사용하여 파일을 더 잘 정리하십시오(예: report_part-{0}.pdf).
-
오류 처리: 파일 작업 중 예외를 처리하기 위해 try-catch 블록을 추가하십시오.
try
{
/* PDF 분할 코드 */
}
catch (Exception ex)
{
Console.WriteLine("오류: " + ex.Message);
}
자주 묻는 질문 (VB.NET 데모)
Q1: 출력 파일에서 워터마크를 어떻게 제거하나요?
A: 여기에서 평가판 라이선스를 요청하여(30일 유효) 워터마크와 제한 사항을 제거할 수 있습니다. 또는 무료 커뮤니티 에디션을 사용해 볼 수 있습니다.
Q2: 분할 시 하이퍼링크/양식 필드가 보존되나요?
A:
| 요소 | 보존 여부? |
| 하이퍼링크 | ✅ 예 |
| 양식 필드 | ✅ 예 |
| 주석 | ✅ 예 |
| 디지털 서명 | ❌ 아니요 (전체 문서 컨텍스트 필요) |
Q3: 단일 PDF 페이지를 여러 페이지/파일로 분할할 수 있나요?
A: 예. Spire.PDF는 또한 PDF 페이지를 가로 또는 세로로 두 개 이상의 페이지로 분할하는 것을 지원합니다. 튜토리얼: C#에서 PDF 페이지를 여러 페이지로 분할하기
Q4: PDF 파일 분할을 위한 VB.NET 데모가 있나요?
A: 네이티브 .NET 라이브러리인 Spire.PDF는 C#과 VB.NET에서 동일하게 작동합니다. 따라서 일부 코드 변환 도구(예: Telerik Code Converter)를 사용하여 C# 샘플을 VB.NET으로 즉시 변환할 수 있습니다.
결론
Spire.PDF는 직관적인 방법으로 C#에서 PDF 분할을 단순화합니다. 기본 페이지별 분할이 필요하든 페이지 범위에 기반한 고급 분할이 필요하든 라이브러리는 필요한 기능을 제공합니다. 이 가이드를 따르면 C# 또는 VB.NET 애플리케이션에서 PDF 분할을 효율적으로 구현하여 생산성과 문서 관리를 향상시킬 수 있습니다.
도움 받을 곳
프로 팁: Spire.PDF의 변환 기능과 분할을 결합하여 페이지를 이미지나 다른 파일 형식으로 추출하십시오.