
고객에게 송장 PDF를 보내면서 Excel 명세서를 포함하는 것을 잊었거나, 더 나쁘게는 소스 코드 없이 기술 보고서를 이메일로 보낸 적이 있다고 상상해 보세요. 모든 것을 한곳으로 병합하면 이러한 실수를 방지할 수 있습니다. PDF에 파일을 첨부하는 방법을 알면 독자가 필요한 모든 데이터를 단일 문서에서 확인할 수 있습니다. 이 가이드에서는 Adobe를 사용하여 PDF 파일에 첨부 파일을 추가하는 방법과 Python을 사용하여 이를 자동화하는 방법을 배웁니다.
- PDF에 파일을 첨부하는 2가지 방법 이해하기
- 비교표
- Adobe Acrobat을 사용하여 수동으로 PDF에 파일 첨부하기
- Free Spire.PDF를 사용하여 PDF에 문서 첨부하기
- 모범 사례 및 문제 해결
PDF에 파일을 첨부하는 2가지 방법 이해하기
단계를 살펴보기 전에 PDF가 포함된 파일을 처리하는 방식을 이해하는 것이 중요합니다. 목표에 따라 깔끔하고 숨겨진 방식이나 매우 시각적인 방식 중 하나를 선택할 수 있습니다.
- 문서 수준 첨부 파일(Document-Level Attachments): 문서 수준 첨부 파일은 이메일 첨부 파일과 유사하게 작동합니다. 외부 파일이 PDF 문서에 포함되어 뷰어의 사이드바 패널 내부에 숨겨진 상태로 유지됩니다. 이 방법은 대규모 데이터 세트, 소스 코드 패키지 또는 보조 문서를 번들로 묶는 데 이상적입니다.
팁: 여러 관련 파일을 단일 PDF 컨테이너로 패키징해야 하는 경우, 첨부 파일을 더 체계적으로 구성할 수 있는 PDF 포트폴리오 만들기를 고려할 수도 있습니다.
- 파일 첨부 주석(File Attachment Annotations): 이는 페이지 수준의 첨부 파일입니다. 페이지의 특정 좌표에 시각적 아이콘(클립이나 핀 등)을 표시합니다. 독자는 아이콘을 더블 클릭하여 파일을 즉시 열 수 있습니다. 텍스트나 단락 바로 옆에 소스 문서를 연결하는 데 이상적입니다.
빠른 비교
파일을 첨부하는 올바른 방법을 선택하면 시간을 절약하고 독자의 경험을 향상시킬 수 있습니다. 이 빠른 분석을 사용하여 프로젝트에 적합한 접근 방식을 결정하세요:
| 기능 | 문서 수준 첨부 파일 | 파일 첨부 주석 |
|---|---|---|
| 가시성 | 페이지에서 완전히 숨겨짐. 첨부 파일 사이드바에서만 볼 수 있음. | 특정 페이지 좌표에 클릭 가능한 아이콘 표시. |
| 사용자 작업 | 사용자가 사이드바 패널을 열고 파일 목록을 스크롤해야 함. | 사용자가 단락을 읽고 페이지의 아이콘을 직접 더블 클릭함. |
| 주요 용도 | 원시 데이터 아카이빙, 프로젝트 소스 코드 또는 전체 Excel 시트 첨부. | 문맥 참조, 상세 차트 설명, 법적 증빙 자료. |
| 권장 사항 | 자동화된 데이터 아카이빙에 최적 | 대화형 읽기에 최적 |
결론적으로, PDF 레이아웃을 망치지 않고 원시 데이터를 묶으려면 문서 수준 방식을 선택하세요. 독자가 단락을 읽은 직후 특정 소스 파일을 확인하게 하려면 주석 방식이 더 좋습니다.
방법 1: Adobe Acrobat을 사용하여 수동으로 PDF에 파일 첨부하기
처리할 파일이 몇 개뿐이고 직관적인 인터페이스를 선호한다면 Adobe Acrobat을 통해 수동으로 PDF에 파일을 첨부하는 것이 완벽합니다. 가장 인기 있는 PDF 편집기 중 하나인 Adobe Acrobat을 사용하면 PDF 문서에 첨부 파일을 쉽게 추가할 수 있으며, 문서 수준이나 시각적 주석으로 외부 파일을 원활하게 포함할 수 있습니다.
PDF에 문서 수준 첨부 파일 추가하기
- 1단계. Adobe Acrobat에서 대상 PDF 파일을 엽니다.
- 2단계. 왼쪽 탐색 창을 확장하고 첨부 파일 아이콘(클립 모양)을 클릭합니다.

- 3단계. 패널 상단의 파일 추가 버튼을 클릭하고 컴퓨터에서 파일을 선택한 다음 PDF를 저장합니다.

PDF에 파일 첨부 주석 추가하기
- 1단계: 오른쪽 사이드바에서 주석을 클릭하여 주석 도구 모음을 엽니다.
- 2단계: 도구 모음에서 파일 첨부 도구를 클릭합니다.

- 3단계: 시각적 첨부 아이콘을 배치할 PDF 페이지의 아무 곳이나 클릭합니다.
- 4단계: 장치에서 대상 파일을 선택하고 팝업 속성 창에서 원하는 아이콘 스타일을 선택한 다음 문서를 저장합니다.

방법 2: Free Spire.PDF를 사용하여 프로그래밍 방식으로 PDF에 문서 첨부하기
몇 개의 파일을 수동으로 첨부하는 것은 관리할 수 있지만, 수십 또는 수백 개의 문서를 다룰 때는 이 과정이 금방 비효율적이 됩니다. 원시 데이터 시트를 송장에 연결하거나 소스 파일을 기술 보고서에 연결하는 등 파일 번들링을 자동화된 엔터프라이즈 워크플로에 통합해야 하는 경우 수동 작업은 매우 번거롭습니다. 문서 파이프라인을 확장하려면 파일 첨부 자동화가 가장 효율적이고 확장 가능한 솔루션입니다. Python용 Free Spire.PDF를 활용하면 단 몇 줄의 코드로 이를 달성할 수 있습니다.
독립형 무료 커뮤니티 구성 요소인 Python용 Free Spire.PDF는 서버에 Adobe Acrobat을 설치할 필요가 없습니다. 이 구성 요소를 사용하면 PDF 구조를 원활하게 조작할 수 있으며 문서 수준 및 주석 스타일의 파일 첨부를 모두 지원합니다.
PDF에 직접 파일 첨부하기
이 스크립트는 파일을 PDF의 전역 첨부 파일 컬렉션에 직접 삽입하는 방법을 보여줍니다. 핵심 아이디어는 로컬 파일을 기반으로 PdfAttachment 객체를 생성한 다음 PdfDocument.Attachments.Add() 메서드를 사용하여 원본 PDF 파일에 첨부하는 것입니다.
from spire.pdf import *
from spire.pdf.common import *
# 문서 객체 초기화
doc = PdfDocument()
# 기존 PDF 파일 로드
doc.LoadFromFile("/input/Booklet.pdf")
# 파일 경로를 전달하여 문서 수준 첨부 파일 생성
attachment_1 = PdfAttachment("/sample.docx")
attachment_2 = PdfAttachment("/invoice.xlsx")
# 전역 첨부 파일 컬렉션에 첨부 파일 추가
doc.Attachments.Add(attachment_1)
doc.Attachments.Add(attachment_2)
# 최종 PDF 문서 저장
doc.SaveToFile("/output/global_attachment.pdf")
doc.Close()

주석으로 PDF에 첨부 파일 추가하기
이 코드 샘플은 외부 파일을 주석 첨부 파일로 PDF에 추가하며, 이는 최종적으로 첫 페이지에 클릭 가능한 그래프 아이콘으로 표시됩니다.
핵심 아이디어는 doc.Pages.get_Item()을 통해 대상 페이지를 검색하고, RectangleF를 사용하여 정확한 페이지 좌표를 정의하며, 외부 파일에 연결된 PdfAttachmentAnnotation 객체를 초기화하는 것입니다. 아이콘 스타일, 색상, 마우스 오버 텍스트와 같은 속성을 사용자 정의한 후 page.AnnotationsWidget.Add() 메서드를 사용하여 페이지의 대화형 레이어에 추가하기만 하면 됩니다.
from spire.pdf import *
from spire.pdf.common import *
# 문서 객체 초기화 및 소스 PDF 파일 로드
doc = PdfDocument()
doc.LoadFromFile("/input/new.pdf")
# 첫 번째 페이지 가져오기
page = doc.Pages.get_Item(0)
# PDF 페이지 캔버스에 텍스트 프롬프트 그리기
text_str = "보고서는 다음과 같습니다:"
font = PdfTrueTypeFont("Times New Roman", 16.0, PdfFontStyle.Bold, True)
x = 50.0
# 실제 페이지 높이를 기반으로 Y 좌표 동적 계산
y = doc.Pages.get_Item(0).ActualSize.Height - 300.0
page.Canvas.DrawString(text_str, font, PdfBrushes.get_Blue(), x, y)
# 로컬 파일을 첨부 파일 콘텐츠로 데이터 스트림 읽기
data_stream = Stream("/input/sample.docx")
# 위치 계산: 텍스트 프롬프트 오른쪽 5.0픽셀에 아이콘 배치
text_size = font.MeasureString(text_str)
bounds = RectangleF((x + text_size.Width + 5.0), y, 15.0, 15.0)
# 파일 첨부 주석 객체 생성
annotation = PdfAttachmentAnnotation(bounds, "sample_attachment.docx", data_stream)
# 주석의 모양 및 툴팁 동작 사용자 정의
annotation.Color = PdfRGBColor(Color.get_Blue())
annotation.Flags = PdfAnnotationFlags.Default
annotation.Icon = PdfAttachmentIcon.Graph
annotation.Text = "파일을 열려면 클릭하세요"
# 페이지 위젯 컬렉션에 대화형 주석 레이어 추가
page.AnnotationsWidget.Add(annotation)
# PDF 문서 저장
doc.SaveToFile("/output/AnnotationAttachment1.pdf")
doc.Close()

참고: 협업 검토 레이아웃에서 작업하는 경우, 이러한 주석은 표준 PDF 수정 추적 필드와 완벽하게 동기화됩니다.
PDF에 파일을 첨부할 때의 모범 사례 및 문제 해결
새로 업데이트된 문서를 보내기 전에 일반적인 오류를 방지하기 위해 몇 가지 사항을 염두에 두어야 합니다.
- 파일 크기 관리: PDF 구조에 파일을 첨부할 때, 예를 들어 50MB 비디오를 포함하면 PDF가 너무 커져 이메일로 보낼 수 없게 됩니다. 먼저 파일을 압축하거나 대용량 파일의 경우 보안 클라우드 URL을 사용하세요.
-
보안 및 차단된 형식: 최신 PDF 리더는 맬웨어에 매우 민감합니다.
.txt,.docx또는.xlsx와 같은 안전한 형식으로 파일을 첨부하는 것이 좋습니다. -
첨부 파일 추출 방법: 들어간 것은 나와야 합니다. 자동화된 파이프라인을 구축하는 경우
PdfAttachment.Data또는PdfAttachmentAnnotation.Data를 사용하여 나중에 이 파일을 읽고 데이터베이스로 추출할 수 있습니다.
결론
이 게시물에서는 문서 수준 파일 첨부와 페이지 수준 주석 첨부라는 두 가지 주요 접근 방식을 사용하여 PDF에 파일을 첨부하는 방법을 살펴보았습니다. 또한 Adobe Acrobat을 통한 수동 작업과 Python용 Free Spire.PDF를 사용한 코드 기반 자동화에 대해서도 설명했습니다.
몇 개의 문서에 대한 빠른 수동 수정이 필요하든, 파일 번들링을 자동화된 워크플로에 통합하든, 두 접근 방식 모두 PDF 문서와 함께 보조 파일을 배포하는 방식을 간소화하는 데 도움이 될 수 있습니다. 비즈니스 시나리오에 가장 적합한 방법을 선택하고 지금 바로 PDF 파이프라인 최적화를 시작하세요!