소개

Aspose.Slides FOSS for Python이 이제 PyPI에서 제공됩니다: Microsoft Office나 어떤 독점 런타임에도 의존하지 않고 Python만으로 PowerPoint .pptx 파일을 생성, 읽기 및 편집할 수 있는 무료 MIT 라이선스 라이브러리입니다.

이 라이브러리는 개발자가 프레젠테이션 파일을 프로그래밍 방식으로 생성하거나 조작해야 할 때 설계되었습니다: 데이터에서 슬라이드 데크 자동화, 업로드된 PPTX 파일에서 텍스트 및 메타데이터 추출, 프레젠테이션 기반 보고 파이프라인 구축, 또는 웹 애플리케이션에 프레젠테이션 생성 기능을 삽입 등. aspose-slides-foss는 순수 Python이며 의존성이 lxml 하나뿐이므로 Windows, macOS, Linux 및 Docker 컨테이너에서 동일하게 배포됩니다.

주요 기능

  • 전체 라운드 트립 PPTX 지원: 모든 .pptx 파일을 열고, 내용을 수정한 뒤, 라이브러리가 아직 이해하지 못하는 알 수 없는 XML 파트를 잃지 않고 다시 저장합니다.
  • 슬라이드 관리: prs.slides을 사용하여 슬라이드를 추가, 제거 및 순회합니다; 프레젠테이션은 slides.Presentation() 후에 빈 슬라이드 하나로 시작합니다.
  • 자동 도형, 표 및 커넥터: slide.shapes.add_auto_shape()를 통해 도형을 삽입하고, slide.shapes.add_table()을 통해 표 데이터를 삽입하며, slide.shapes.add_connector()을 통해 도형 간 시각적 커넥터를 삽입합니다.
  • 리치 텍스트 서식: PortionFormat를 사용하여 문자 수준에서 텍스트를 서식 지정합니다: 글꼴 크기, 굵게, 기울임꼴, 밑줄 및 FillType.SOLIDColor.from_argb()를 통한 ARGB 색상.
  • 채우기 유형: FillType.SOLID, GRADIENT, PATTERN 또는 PICTURE 채우기를 모든 도형에 적용합니다.
  • 시각 효과: shape.effect_format를 통해 외부 그림자, 광채, 부드러운 가장자리, 흐림, 반사 및 내부 그림자를 적용합니다.
  • 3D 서식: shape.three_d_format를 사용하여 베벨, 카메라, 라이트 릭, 재질 및 압출 깊이를 지정합니다.
  • 발표자 메모: notes_slide_manager.add_notes_slide()을 통해 각 슬라이드에 메모 텍스트를 첨부합니다.
  • 스레드형 댓글: 작성자 메타데이터와 슬라이드 위치가 포함된 댓글을 추가합니다.
  • 임베디드 이미지: 파일 경로, 바이트 배열 또는 io.BytesIO 스트림을 통해 이미지를 삽입합니다.
  • 문서 속성: 핵심, 앱 및 사용자 정의 속성을 읽고 쓸 수 있습니다.

시작하기

PyPI에서 설치합니다. Python 3.10 이상이 필요합니다; lxml이 자동으로 설치됩니다.

pip install aspose-slides-foss

모양을 사용하여 첫 번째 프레젠테이션을 만들고 저장하세요:

import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat
from aspose.slides_foss import ShapeType

with slides.Presentation() as prs:
    slide = prs.slides[0]
    shape = slide.shapes.add_auto_shape(ShapeType.RECTANGLE, 50, 50, 400, 120)
    shape.add_text_frame("Hello from Aspose.Slides FOSS!")
    prs.save("hello.pptx", SaveFormat.PPTX)

항상 Presentationwith 블록 안에서 사용하십시오; 이렇게 하면 블록이 종료될 때 모든 내부 리소스가 해제됩니다.

텍스트 서식 예제

import aspose.slides_foss as slides
from aspose.slides_foss import ShapeType, NullableBool, FillType
from aspose.slides_foss.drawing import Color
from aspose.slides_foss.export import SaveFormat

with slides.Presentation() as prs:
    shape = prs.slides[0].shapes.add_auto_shape(ShapeType.RECTANGLE, 50, 50, 500, 150)
    tf = shape.add_text_frame("Bold heading in corporate blue")
    fmt = tf.paragraphs[0].portions[0].portion_format
    fmt.font_height = 28
    fmt.font_bold = NullableBool.TRUE
    fmt.fill_format.fill_type = FillType.SOLID
    fmt.fill_format.solid_fill_color.color = Color.from_argb(255, 0, 70, 127)
    prs.save("formatted.pptx", SaveFormat.PPTX)

현재 제한 사항

다음 영역은 이번 릴리스에서 NotImplementedError을 발생시킵니다:

  • 차트, SmartArt 및 OLE 개체
  • 애니메이션 및 슬라이드 전환
  • PDF, HTML, SVG 또는 이미지 형식으로 내보내기
  • 하이퍼링크, 동작 설정, VBA 매크로 및 디지털 서명

로드 중에 발견된 알 수 없는 XML 파트는 저장 시 그대로 보존되므로, 다른 도구에서 생성된 PPTX 파일이 안전하게 라운드 트립됩니다.

참고