GroupDocs.Merger for .NET을 사용하여 PDF에 파일 첨부하는 방법
오늘날 디지털 시대에 문서를 효율적으로 관리하는 것은 생산성과 협업에 필수적입니다. 가장 일반적인 작업 중 하나는 PDF에 파일 첨부하여 지원 자료가 본문과 함께 전달되도록 하는 것입니다. GroupDocs.Merger for .NET을 사용하면 프레젠테이션, 스프레드시트 또는 이미지와 같은 추가 파일을 몇 줄의 코드만으로 PDF에 직접 삽입할 수 있습니다. 이 튜토리얼은 환경 준비부터 완전한 프로덕션 준비 구현까지 전체 과정을 단계별로 안내합니다.
빠른 답변
- 주요 이점은 무엇인가요? 관련 파일을 하나의 PDF에 묶어 별도의 첨부 파일이 필요 없게 할 수 있습니다.
- 몇 개의 첨부 파일을 추가할 수 있나요? GroupDocs.Merger는 성능 저하 없이 PDF당 최대 100개의 첨부 파일을 지원합니다.
- 라이선스가 필요합니까? 무료 체험판은 개발에 사용할 수 있지만, 프로덕션 사용에는 유료 라이선스가 필요합니다.
- 지원되는 .NET 버전은 무엇인가요? .NET Framework 4.5+, .NET Core 3.1+, .NET 5+, 및 .NET 6+.
- 프로세스가 빠른가요? 200페이지 PDF에 첨부 파일을 추가하는 데 일반 서버에서는 보통 2초 미만이 소요됩니다.
PDF에 파일을 첨부하는 것이란?
PDF에 파일을 첨부하면 외부 문서를 내부 첨부 파일로 삽입하여 PDF 뷰어에서 직접 열 수 있습니다. 이 기술은 모든 관련 자산을 함께 보관하여 배포 및 버전 관리를 단순화합니다. 사용자가 첨부 아이콘을 클릭하면 삽입된 파일이 추출되어 뷰어에 표시되며, 별도의 이메일이나 ZIP 파일 없이도 지원 자료가 본문과 함께 전달됩니다.
왜 GroupDocs.Merger for .NET을 사용해야 할까요?
GroupDocs.Merger는 PDF당 최대 100개의 첨부 파일을 처리하고, 일반적인 클라우드 VM에서 200페이지 문서를 2초 미만에 처리할 수 있습니다. 이는 메모리 효율적인 스트리밍 아키텍처 덕분입니다. 또한 50가지 이상의 입력 및 출력 형식을 지원하여 변환 없이 거의 모든 파일 유형을 첨부할 수 있습니다.
전제 조건
- GroupDocs.Merger for .NET – 최신 버전을 NuGet을 통해 설치합니다.
- .NET Framework 4.5+ or .NET Core 3.1+ (최근 .NET 런타임 중 하나).
- Visual Studio(Community 이상) 또는 .NET 개발을 지원하는 모든 IDE.
- C# 및 파일 시스템 경로에 대한 기본적인 이해.
GroupDocs.Merger for .NET을 사용하여 PDF에 파일을 어떻게 첨부하나요?
소스 PDF를 로드하고, 삽입하려는 파일을 지정한 뒤 Import 메서드와 PdfAttachmentOptions를 호출합니다. 전체 작업이 메모리 내에서 수행되므로 원본 PDF 구조는 변경되지 않고, 첨부 파일은 문서 내부에 안전하게 저장됩니다.
구현 가이드
아래는 핵심 워크플로우에 대한 단계별 안내입니다. 각 단계 뒤에는 원본 코드 스니펫이 들어갈 자리 표시자가 있습니다.
Step 1: 파일 경로 정의
수정하려는 PDF와 삽입하려는 파일의 절대 경로나 상대 경로를 설정합니다.
dotnet add package GroupDocs.Merger
왜? 파일 경로를 명확히 정의하면 런타임이 소스 파일과 첨부 파일을 모호함 없이 찾을 수 있습니다.
Step 2: 출력 설정 구성
새 첨부 파일이 포함된 결과 PDF의 폴더와 파일명을 선택합니다.
Install-Package GroupDocs.Merger
왜? 입력과 출력 위치를 분리하면 실수로 덮어쓰는 것을 방지하고 결과를 쉽게 검증할 수 있습니다.
Step 3: PdfAttachmentOptions 초기화
PdfAttachmentOptions는 첨부 파일이 PDF에 추가되는 방식을 구성하며, 설명 및 MIME 유형을 포함합니다.
정의 앵커: PdfAttachmentOptions는 파일을 PDF 내부의 첨부 파일로 삽입하는 방법을 GroupDocs.Merger에 알려주는 구성 객체입니다.
string filePath = Path.Combine("YOUR_DOCUMENT_DIRECTORY", "SAMPLE_PDF_2.pdf");
string embeddedFilePath = Path.Combine("YOUR_DOCUMENT_DIRECTORY", "SAMPLE_PPTX.pptx");
왜? 이 객체를 사용하면 표시 이름 및 파일 유형과 같은 첨부 파일 메타데이터를 제어할 수 있어 PDF를 열 때 최종 사용자 경험이 향상됩니다.
Merger는 PDF 파일을 로드, 수정 및 저장하는 메서드를 제공하는 GroupDocs.Merger의 주요 클래스입니다.
Step 4: 문서 로드 및 가져오기
Merger 인스턴스를 생성하고, 소스 PDF를 로드한 뒤 위에서 정의한 옵션을 사용해 첨부 파일을 가져옵니다.
string filePathOut = Path.Combine("YOUR_OUTPUT_DIRECTORY", "SamplePdfWithAttachment.pdf");
왜? Merger API를 통해 PDF를 로드하면 기존 페이지나 주석을 손상시키지 않고 첨부 파일을 삽입할 수 있습니다.
Step 5: 업데이트된 PDF 저장
앞서 설정한 출력 위치에 수정된 PDF를 저장합니다.
PdfAttachmentOptions olePdfOptions = new PdfAttachmentOptions(embeddedFilePath);
왜? 저장을 하면 변경 사항이 최종 확정되고 새로운 첨부 파일 스트림이 PDF 파일에 기록됩니다.
일반적인 문제 및 해결책
- FileNotFoundException: Step 1에서 제공한 경로가 실제 파일 시스템에 존재하는지 확인하십시오.
- Permission errors: 애플리케이션 프로세스가 소스 및 대상 폴더에 대한 읽기/쓰기 권한을 가지고 있는지 확인하십시오.
- Unsupported attachment type: GroupDocs.Merger는 문서에 나열된 모든 형식을 지원합니다; 드문 형식의 경우 첨부하기 전에 ZIP으로 패키징하는 것을 고려하십시오.
- Large files: 100 MB보다 큰 파일을 첨부할 때는 프로세스의 메모리 제한을 늘리거나 첨부 파일을 청크로 스트리밍하여
OutOfMemoryException을 방지하십시오.
실제 적용 사례
첨부 파일을 삽입하는 것은 다양한 실제 시나리오에서 유용합니다.
- Legal contracts – 계약 PDF에 지원 증거 자료, 서명 또는 부록을 직접 첨부합니다.
- Financial reports – 감사자를 위해 원시 데이터 스프레드시트 또는 감사 로그를 숨겨진 첨부 파일로 포함합니다.
- Educational handouts – 워크시트, 해답지 또는 멀티미디어 리소스를 하나의 PDF 강의계획서에 묶습니다.
- Project deliverables – 디자인 목업, 소스 코드 아카이브 및 사양 문서를 하나의 휴대용 패키지로 결합합니다.
GroupDocs.Merger를 사용해 자동화하면 수동으로 ZIP을 만들 필요가 없으며 모든 이해관계자가 완전하고 독립적인 파일 세트를 받을 수 있습니다.
성능 고려 사항
- Memory management:
Merger인스턴스를using블록으로 감싸서 관리되지 않는 리소스를 즉시 해제합니다. - Batch processing: 많은 PDF에 파일을 첨부해야 하는 경우, 멀티코어 CPU를 활용하기 위해 병렬 배치로 처리하십시오.
- Streaming I/O: 대용량 첨부 파일의 경우 UI 응답성을 유지하기 위해 비동기 읽기/쓰기가 가능한
FileStream을 사용하는 것이 좋습니다.
이러한 모범 사례를 따르면 수십 개의 수백 페이지 PDF를 처리하더라도 애플리케이션의 응답성을 유지할 수 있습니다.
자주 묻는 질문
Q: 단일 PDF에 여러 첨부 파일을 추가할 수 있나요?
A: 예. 삽입하려는 각 파일에 대해 새로운 PdfAttachmentOptions 인스턴스를 사용해 Import 메서드를 반복 호출하면 됩니다.
Q: 기존 첨부 파일을 제거할 수 있나요?
A: GroupDocs.Merger는 인덱스 또는 이름으로 지정된 첨부 파일을 제거하는 DeleteAttachment 메서드를 제공합니다.
Q: GroupDocs.Merger는 대용량 파일을 어떻게 처리하나요?
A: 이 라이브러리는 전체 문서를 메모리에 로드하는 대신 데이터를 스트리밍하므로, 보통 하드웨어에서도 500 MB 이상의 PDF를 다룰 수 있습니다.
Q: 어떤 파일 형식을 첨부할 수 있나요?
A: GroupDocs에서 지원하는 모든 형식—DOCX, XLSX, PPTX, ZIP, PNG 및 실행 파일까지—을 첨부 파일로 삽입할 수 있습니다.
Q: 더 큰 워크플로우 내에서 이를 자동화할 수 있나요?
A: 물론입니다. 이 API는 백그라운드 서비스, Azure Functions 및 CI/CD 파이프라인과 완전히 호환되어 엔드‑투‑엔드 문서 자동화를 가능하게 합니다.
리소스
PDF에 파일을 첨부해 보시겠습니까? 위 단계에 따라 IDE에서 샘플 자리 표시자를 실행하면 PDF에 임베디드 리소스 기능이 추가되는 것을 확인할 수 있습니다.
마지막 업데이트: 2026-09-11
테스트 환경: GroupDocs.Merger 23.12 for .NET
작성자: GroupDocs
using (Merger merger = new Merger(filePath))
{
// Import the specified document as an attachment
merger.ImportDocument(olePdfOptions);
// Save the resultant PDF with the added attachment
merger.Save(filePathOut);
}