여러 페이지에서 컴팩트하고 인쇄 가능한 PDF를 생성하는 것은 보고서, 카탈로그 및 매뉴얼에서 자주 필요한 작업입니다. Aspose.PDF for Python via .NET은 세밀한 제어를 통해 Python에서 PDF 소책자를 프로그래밍 방식으로 만들 수 있는 강력한 SDK를 제공합니다. 이 가이드에서는 환경 설정, 소책자 빌드, 선택적으로 북마크 추가 및 최종 문서 내보내는 방법을 살펴봅니다.
PDF 소책자란 무엇인가요?
PDF 소책자는 여러 페이지를 인쇄하고 접어 작은 책, 매뉴얼, 브로셔 또는 카탈로그처럼 읽을 수 있도록 배치된 문서입니다. 페이지를 일반적인 순서대로 유지하는 대신, 소책자 생성은 인쇄 및 접은 후 올바른 페이지가 나란히 표시되도록 페이지 순서를 재배열합니다.
예를 들어, 소책자 레이아웃은 한 페이지를 시트의 왼쪽에, 다른 페이지를 오른쪽에 배치할 수 있습니다. 양면 인쇄 후 접으면 페이지가 올바른 읽기 순서대로 나타납니다.
소책자는 일반적으로 다음 용도로 사용됩니다:
- 제품 카탈로그
- 이벤트 프로그램
- 교육 매뉴얼
- 보고서
- 사용 안내서
- 회사 프로필
- 브로셔
- 소형 인쇄 책
Python에서는 PDF 편집기에서 페이지를 수동으로 재배열하는 대신 이 프로세스를 자동화할 수 있습니다.
Python PDF 소책자 생성기 API
Python에서 PDF 북클릿을 만들려면 Aspose.PDF for Python via .NET을(를) 사용합니다. 이는 Python 개발자가 PDF 파일을 프로그래밍 방식으로 생성, 편집, 변환, 분할, 병합, 보안 설정, 주석 달기 및 조작할 수 있도록 하는 PDF 처리 API입니다.
소책자 생성에 필요한 핵심 클래스는:
pdf.facades.PdfFileEditor()
PdfFileEditor 클래스는 고급 PDF 파일 조작 기능을 제공합니다. 이 튜토리얼에서는 make_booklet() 메서드를 사용하여 기존 PDF를 소책자 레이아웃으로 변환합니다.
1단계: Aspose.PDF SDK 설치
먼저, pip를 사용하여 Aspose.PDF for Python via .NET을 설치합니다:
pip install aspose-pdf
2단계: 입력 PDF 준비
소책자를 만들기 전에 이미 원본 PDF 파일이 있는지 확인하십시오. 이 튜토리얼에서는 다음 파일 이름을 사용할 것입니다:
input.pdf
출력 소책자는 다음에 저장됩니다:
booklet.pdf
입력 PDF 파일을 Python 스크립트와 같은 디렉터리에 두거나, 전체 파일 경로를 제공하십시오.
Example:
project-folder/
│
├── input.pdf
└── create_booklet.py
3단계: Python에서 간단한 PDF 소책자 만들기
소책자를 만드는 가장 간단한 방법은 입력 파일, 출력 파일 및 대상 페이지 크기를 지정하여 make_booklet()을 호출하는 것입니다.
다음 Python 코드는 A5 페이지 크기를 사용하여 소책자를 생성합니다:
import aspose.pdf as pdf
# Create PdfFileEditor object
pdf_editor = pdf.facades.PdfFileEditor()
# Create booklet from input PDF
pdf_editor.make_booklet(
"input.pdf",
"booklet.pdf",
pdf.PageSize.a5
)
print("PDF booklet created successfully.")
이 코드는 input.pdf를 로드하고, 페이지를 소책자 레이아웃으로 배열한 뒤, 결과를 booklet.pdf로 저장합니다.
4단계: 왼쪽 및 오른쪽 페이지가 있는 맞춤 PDF 소책자 만들기
많은 경우에, 소책자 레이아웃에서 왼쪽에 표시되는 페이지와 오른쪽에 표시되는 페이지를 제어하고 싶을 수 있습니다.
다음 예제는 원래 C# 코드를 기반으로 하며 이를 Python으로 변환합니다:
import aspose.pdf as pdf
# Create PdfFileEditor object
pdf_editor = pdf.facades.PdfFileEditor()
# Set left and right pages
left_pages = [1, 5]
right_pages = [2, 3]
# Make booklet
pdf_editor.make_booklet(
"input.pdf",
"booklet.pdf",
pdf.PageSize.a5,
left_pages,
right_pages
)
print("PDF booklet created successfully.")
코드 설명
코드를 분석해 보겠습니다.
먼저, Aspose.PDF 패키지를 가져옵니다:
import aspose.pdf as pdf
그런 다음 PdfFileEditor의 인스턴스를 생성합니다:
pdf_editor = pdf.facades.PdfFileEditor()
이 객체는 소책자 생성을 포함한 고급 PDF 편집 기능에 대한 액세스를 제공합니다.
다음으로 페이지 배치를 정의합니다:
left_pages = [1, 5]
right_pages = [2, 3]
left_pages 리스트는 소책자 펼침의 왼쪽에 표시될 페이지를 정의합니다. right_pages 리스트는 오른쪽에 표시될 페이지를 정의합니다.
마지막으로, make_booklet() 메서드를 호출합니다:
pdf_editor.make_booklet(
"input.pdf",
"booklet.pdf",
pdf.PageSize.a5,
left_pages,
right_pages
)
이 코드는 소책자를 생성하고 booklet.pdf로 저장합니다.
전체 Python 코드
다음은 Python에서 PDF 소책자를 만드는 전체 코드 예제입니다.
import aspose.pdf as pdf
def create_pdf_booklet(input_pdf: str, output_pdf: str) -> None:
"""
Create a PDF booklet from an existing PDF file using Aspose.PDF for Python via .NET.
Args:
input_pdf: Path to the source PDF file.
output_pdf: Path where the generated booklet PDF will be saved.
"""
# Create PdfFileEditor object
pdf_editor = pdf.facades.PdfFileEditor()
# Set left and right pages
left_pages = [1, 5]
right_pages = [2, 3]
# Make booklet
pdf_editor.make_booklet(
input_pdf,
output_pdf,
pdf.PageSize.a5,
left_pages,
right_pages
)
if __name__ == "__main__":
create_pdf_booklet(
input_pdf="input.pdf",
output_pdf="booklet.pdf"
)
print("PDF booklet created successfully.")
5단계: 소책자에 선택적 책갈피 추가
소책자를 만든 후에는 탐색을 쉽게 하기 위해 북마크를 추가하고 싶을 수 있습니다. 북마크는 보고서, 매뉴얼, 카탈로그, 교육 가이드 및 기타 긴 문서에 유용합니다.
다음 예제는 먼저 소책자를 만든 다음 생성된 PDF에 북마크를 추가합니다:
import aspose.pdf as pdf
def create_pdf_booklet(input_pdf: str, output_pdf: str) -> None:
"""
Create a PDF booklet from an existing PDF file.
"""
pdf_editor = pdf.facades.PdfFileEditor()
left_pages = [1, 5]
right_pages = [2, 3]
pdf_editor.make_booklet(
input_pdf,
output_pdf,
pdf.PageSize.a5,
left_pages,
right_pages
)
def add_bookmarks(input_pdf: str, output_pdf: str) -> None:
"""
Add bookmarks to an existing PDF document.
"""
# Open generated booklet PDF
document = pdf.Document(input_pdf)
# Add bookmark for first page
first_bookmark = pdf.OutlineItemCollection(document.outlines)
first_bookmark.title = "Booklet Start"
first_bookmark.bold = True
first_bookmark.action = pdf.annotations.GoToAction(document.pages[1])
document.outlines.append(first_bookmark)
# Add bookmark for second page, if available
if len(document.pages) >= 2:
second_bookmark = pdf.OutlineItemCollection(document.outlines)
second_bookmark.title = "Second Spread"
second_bookmark.action = pdf.annotations.GoToAction(document.pages[2])
document.outlines.append(second_bookmark)
# Save PDF with bookmarks
document.save(output_pdf)
if __name__ == "__main__":
create_pdf_booklet(
input_pdf="input.pdf",
output_pdf="booklet.pdf"
)
add_bookmarks(
input_pdf="booklet.pdf",
output_pdf="booklet-with-bookmarks.pdf"
)
print("PDF booklet with bookmarks created successfully.")
이 코드는 두 개의 출력 파일을 생성합니다:
booklet.pdf
booklet-with-bookmarks.pdf
첫 번째 파일에는 소책자 레이아웃이 포함되어 있습니다. 두 번째 파일에는 북마크가 추가된 소책자가 포함되어 있습니다.
올바른 페이지 크기 선택
위 예시에서는 A5 페이지 크기를 사용했습니다:
pdf.PageSize.a5
A5는 소책자에 일반적으로 사용되며, 컴팩트하고 인쇄 매뉴얼, 브로셔 및 소형 카탈로그에 적합합니다.
출력 요구 사항에 따라 다른 페이지 크기를 사용할 수 있습니다. 예를 들어, 더 큰 소책자를 만들 경우 A4를 사용할 수 있습니다. 컴팩트한 매뉴얼을 준비한다면 A5가 더 적합할 수 있습니다.
일반적인 소책자 사용 사례는 다음과 같습니다:
| 사용 사례 | 권장 페이지 크기 |
|---|---|
| 소형 매뉴얼 | A5 |
| 제품 카탈로그 | A5 또는 A4 |
| 이벤트 프로그램 | A5 |
| 교육 자료 | A4 또는 A5 |
| 회사 브로셔 | A5 |
PDF 책자 만들기를 위한 모범 사례
프로그램 방식으로 책자를 생성할 때는 다음 사항을 염두에 두어야 합니다.
1. 깨끗한 원본 PDF 사용
입력 PDF는 이미 올바르게 형식이 지정되어 있어야 합니다. 책자 생성은 페이지를 재배열하지만 각 페이지의 내부 콘텐츠를 다시 작성하지는 않습니다.
소책자를 만들기 전에 확인하세요:
- 페이지 여백
- 머리글 및 바닥글 배치
- 글꼴 포함
- 이미지 품질
- 페이지 방향
- 블리드 또는 인쇄 안전 영역
2. 페이지 수 확인
책자를 만들 때 페이지 수가 접고 인쇄하기에 적합하면 가장 좋습니다. 페이지 수가 정확히 맞지 않을 경우 빈 페이지를 추가해야 할 수 있습니다.
예를 들어, 각 접힌 시트가 네 면의 페이지를 생성하므로 소책자는 페이지 수가 4의 배수여야 할 수 있습니다.
3. 대량 인쇄 전 테스트 인쇄
대량 인쇄를 위해 소책자를 보내기 전에 항상 시험 인쇄본을 출력하십시오. PDF 뷰어와 프린터 설정은 배율, 여백, 양면 인쇄 모드 및 페이지 방향에 영향을 줄 수 있습니다.
권장 프린터 설정에는 다음이 포함될 수 있습니다:
- 양면 인쇄
- 프린터에 따라 짧은 가장자리 또는 긴 가장자리를 기준으로 뒤집기
- 실제 크기
- 자동 스케일링 없음
- 올바른 용지 크기
4. 디지털 사본에 북마크 추가
소책자를 디지털로도 공유할 경우, 북마크는 탐색을 개선합니다. 북마크는 독자가 중요한 섹션으로 빠르게 이동하도록 도와줍니다.
북마크는 특히 다음과 같은 경우에 유용합니다:
- 긴 보고서
- 기술 매뉴얼
- 정책 문서
- 제품 카탈로그
- 교육 자료
5. 명확한 파일 이름 사용
특히 배치 모드로 문서를 생성할 때는 출력 파일에 설명적인 이름을 사용하십시오.
예를 들어:
employee-handbook-booklet.pdf
product-catalog-booklet.pdf
training-manual-booklet.pdf
일반 오류 및 해결 방법
오류: ModuleNotFoundError: ‘aspose’ 모듈을 찾을 수 없습니다
이는 현재 Python 환경에 Aspose.PDF 패키지가 설치되지 않았음을 의미합니다.
pip install aspose-pdf
가상 환경을 사용 중이라면, 패키지를 설치하기 전에 해당 환경이 활성화되어 있는지 확인하십시오.
오류: 입력 PDF를 찾을 수 없습니다
스크립트가 입력 파일을 찾을 수 없으면 파일 경로를 확인하십시오.
대신:
"input.pdf"
절대 경로를 사용하십시오:
"C:/Users/YourName/Documents/input.pdf"
또는 Linux/macOS에서:
"/home/user/documents/input.pdf"
오류: 소책자 출력이 예상 순서와 다릅니다
사용자 지정 왼쪽 및 오른쪽 페이지 배열을 사용하는 경우, 페이지 번호가 원본 PDF의 페이지와 일치하는지 확인하십시오.
예시:
left_pages = [1, 5]
right_pages = [2, 3]
이 값은 원하는 소책자 펼침 배열에 따라 선택해야 합니다.
오류: 책갈피가 표시되지 않음
PDF 뷰어에 책갈피가 표시되지 않으면, 뷰어에 책갈피 패널이 활성화되어 있는지 확인하십시오. 일부 PDF 뷰어는 기본적으로 책갈피를 숨깁니다.
문서 페이지 모드를 개요를 표시하도록 설정할 수도 있습니다:
document.page_mode = pdf.PageMode.USE_OUTLINES
PDF를 저장하기 전에 이것을 추가하세요:
document.save(output_pdf)
Python에서 PDF 소책자 만들기: 최종 코드
다음 최종 코드는 PDF 소책자를 만들고, 북마크를 추가한 뒤 결과를 저장합니다:
import aspose.pdf as pdf
def create_pdf_booklet(input_pdf: str, booklet_pdf: str) -> None:
"""
Create a custom PDF booklet using Aspose.PDF for Python via .NET.
"""
pdf_editor = pdf.facades.PdfFileEditor()
left_pages = [1, 5]
right_pages = [2, 3]
pdf_editor.make_booklet(
input_pdf,
booklet_pdf,
pdf.PageSize.a5,
left_pages,
right_pages
)
def add_bookmarks_to_booklet(booklet_pdf: str, output_pdf: str) -> None:
"""
Add bookmarks to the generated booklet PDF.
"""
document = pdf.Document(booklet_pdf)
start_bookmark = pdf.OutlineItemCollection(document.outlines)
start_bookmark.title = "Booklet Start"
start_bookmark.bold = True
start_bookmark.action = pdf.annotations.GoToAction(document.pages[1])
document.outlines.append(start_bookmark)
if len(document.pages) >= 2:
second_bookmark = pdf.OutlineItemCollection(document.outlines)
second_bookmark.title = "Second Spread"
second_bookmark.action = pdf.annotations.GoToAction(document.pages[2])
document.outlines.append(second_bookmark)
document.page_mode = pdf.PageMode.USE_OUTLINES
document.save(output_pdf)
if __name__ == "__main__":
input_pdf = "input.pdf"
booklet_pdf = "booklet.pdf"
final_pdf = "booklet-with-bookmarks.pdf"
create_pdf_booklet(input_pdf, booklet_pdf)
add_bookmarks_to_booklet(booklet_pdf, final_pdf)
print("PDF booklet created successfully:", final_pdf)
결론
이 튜토리얼에서는 Aspose.PDF for Python via .NET을 사용하여 Python에서 PDF 소책자를 만드는 방법을 배웠습니다. SDK를 설치하고, 기존 PDF에서 소책자를 생성하고, 왼쪽 및 오른쪽 페이지 배치를 구성하고, 선택적 북마크를 추가한 다음, 최종 소책자를 PDF 파일로 저장했습니다.
PdfFileEditor.make_booklet() 메서드는 보고서, 카탈로그, 매뉴얼, 브로셔 및 인쇄 가능한 문서의 소책자 생성을 자동화해야 할 때 유용합니다. 소책자 생성과 북마크를 결합하면 인쇄와 디지털 배포 모두에 적합한 PDF 파일을 생성할 수 있습니다.
